From 8588154b7b1e4fc9cc12395e76f380161f6cf156 Mon Sep 17 00:00:00 2001 From: Emanuel Mutschlechner Date: Fri, 25 Jan 2019 10:55:00 +0100 Subject: [PATCH 0001/1371] fix: Fix component refs (#814) --- src/backend/index.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/backend/index.js b/src/backend/index.js index c70f783c6..98cf2e3e6 100644 --- a/src/backend/index.js +++ b/src/backend/index.js @@ -687,12 +687,9 @@ function processState (instance) { */ function processRefs (instance) { - if (Object.keys(instance.$refs).length === 0) { - return [] - } - console.log(instance.$refs) - let refs = Object.keys(instance.$refs).map(key => getCustomRefDetails(instance, key, instance.$refs[key])) - return refs.length > 0 ? refs : [] + return Object.keys(instance.$refs) + .filter(key => instance.$refs[key]) + .map(key => getCustomRefDetails(instance, key, instance.$refs[key])) } /** From ada7f58b9c2d8fd07358fc1ca7a92e494bc7fb92 Mon Sep 17 00:00:00 2001 From: AnwarElbo Date: Fri, 25 Jan 2019 11:20:41 +0100 Subject: [PATCH 0002/1371] fix: Show 0 as a valid key in the component tree, closes #827 (#828) * #827: Show 0 as a valid key in the component tree * Delete spaces * test(e2e): 0 key Co-authored-by: Guillaume Chau --- cypress/integration/components-tab.js | 8 ++++++++ shells/dev/target/Target.vue | 2 +- src/devtools/views/components/ComponentInstance.vue | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/cypress/integration/components-tab.js b/cypress/integration/components-tab.js index 27e17fb96..69048607c 100644 --- a/cypress/integration/components-tab.js +++ b/cypress/integration/components-tab.js @@ -28,6 +28,14 @@ suite('components tab', () => { }) }) + it('should display 0 key', () => { + cy.get('.tree > .instance .instance:nth-child(2)').within(() => { + cy.get('.arrow').click().then(() => { + cy.get('.instance:nth-child(3) .attr').contains('key=0') + }) + }) + }) + it('should detect components in transition', () => { cy.get('.tree > .instance .instance:nth-child(7)').within(() => { cy.get('.arrow').click().then(() => { diff --git a/shells/dev/target/Target.vue b/shells/dev/target/Target.vue index f8481d4b9..6d743deb2 100644 --- a/shells/dev/target/Target.vue +++ b/shells/dev/target/Target.vue @@ -27,7 +27,7 @@ - + Date: Fri, 25 Jan 2019 13:41:11 +0300 Subject: [PATCH 0003/1371] fix: payload on replaying mutation, closes #773 , closes #792, closes #802 (#829) * test(e2e): test mutation payload * Fix payload on replaying mutation * test(e2e): fix expect Co-authored-by: Guillaume Chau --- cypress/integration/vuex-tab.js | 7 ++++++- shells/dev/target/store.js | 11 +++++++++-- src/backend/vuex.js | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/cypress/integration/vuex-tab.js b/cypress/integration/vuex-tab.js index a222fa1a5..90a9c745e 100644 --- a/cypress/integration/vuex-tab.js +++ b/cypress/integration/vuex-tab.js @@ -23,7 +23,7 @@ suite('vuex tab', () => { it('should filter state & getters', () => { cy.get('.right .search input').clear().type('cou') - cy.get('.data-field').should('have.length', 1) + cy.get('.data-field').should('have.length', 2) cy.get('.right .search input').clear().type('no value') cy.get('.data-field').should('have.length', 0) cy.get('.right .search input').clear() @@ -59,6 +59,11 @@ suite('vuex tab', () => { expect(el.text()).to.include('type:"INCREMENT"') expect(el.text()).to.include('count:2') }) + cy.get('.data-field .key').contains('lastCountPayload').click() + cy.get('.vuex-state-inspector').then(el => { + expect(el.text()).to.include('a:1') + expect(el.text()).to.include('b:Object') + }) cy.get('#target').iframe().then(({ get }) => { get('#counter p').contains('1') }) diff --git a/shells/dev/target/store.js b/shells/dev/target/store.js index 34a68a52f..c99ed2f78 100644 --- a/shells/dev/target/store.js +++ b/shells/dev/target/store.js @@ -7,6 +7,7 @@ export default new Vuex.Store({ state: { inited: 0, count: 0, + lastCountPayload: null, date: new Date(), set: new Set(), map: new Map(), @@ -23,8 +24,14 @@ export default new Vuex.Store({ }, mutations: { TEST_INIT: state => state.inited++, - INCREMENT: state => state.count++, - DECREMENT: state => state.count--, + INCREMENT: (state, payload) => { + state.count++ + state.lastCountPayload = payload + }, + DECREMENT: (state, payload) => { + state.count-- + state.lastCountPayload = payload + }, UPDATE_DATE: state => { state.date = new Date() }, diff --git a/src/backend/vuex.js b/src/backend/vuex.js index 08fec18cf..e74fe2b00 100644 --- a/src/backend/vuex.js +++ b/src/backend/vuex.js @@ -146,7 +146,7 @@ export function initVuexBackend (hook, bridge) { // Replay mutations for (let i = snapshot.index + 1; i <= index; i++) { const mutation = mutations[i] - mutation.handlers.forEach(handler => handler(state, mutation.payload)) + mutation.handlers.forEach(handler => handler(mutation.payload)) if (i !== index && i % SharedData.cacheVuexSnapshotsEvery === 0) { takeSnapshot(i, state) } From 793a97b057458e1a30c57a6becef0cba3b4dbda6 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Fri, 25 Jan 2019 11:45:05 +0100 Subject: [PATCH 0004/1371] chore: put store strict mode --- shells/dev/target/store.js | 1 + 1 file changed, 1 insertion(+) diff --git a/shells/dev/target/store.js b/shells/dev/target/store.js index c99ed2f78..ad0bff025 100644 --- a/shells/dev/target/store.js +++ b/shells/dev/target/store.js @@ -4,6 +4,7 @@ import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ + strict: true, state: { inited: 0, count: 0, From 9305a517fd3d9ed19f485396c9e31b1a8425abb1 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Fri, 25 Jan 2019 11:48:31 +0100 Subject: [PATCH 0005/1371] fix: vuex throws warning when editing state in strict mode, closes #757 --- src/backend/vuex.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/vuex.js b/src/backend/vuex.js index e74fe2b00..9aeb2bfba 100644 --- a/src/backend/vuex.js +++ b/src/backend/vuex.js @@ -178,7 +178,9 @@ export function initVuexBackend (hook, bridge) { if (value) { parsedValue = parse(value, true) } + store._committing = true set(store.state, path, parsedValue) + store._committing = false bridge.send('vuex:inspected-state', { index, snapshot: getSnapshot() From 8eebefe9c9f276f27728e5144a4bc1334b5ca4d0 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Fri, 25 Jan 2019 12:09:46 +0100 Subject: [PATCH 0006/1371] fix: don't allow state edition if not active mutation --- src/devtools/mixins/data-field-edit.js | 7 +++++ .../views/vuex/VuexStateInspector.vue | 29 ++++++++++++++++--- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/devtools/mixins/data-field-edit.js b/src/devtools/mixins/data-field-edit.js index d32fef867..7bba7d46f 100644 --- a/src/devtools/mixins/data-field-edit.js +++ b/src/devtools/mixins/data-field-edit.js @@ -21,6 +21,12 @@ function numberQuickEditMod (event) { } export default { + inject: { + InspectorInjection: { + default: null + } + }, + props: { editable: { type: Boolean, @@ -54,6 +60,7 @@ export default { }, isEditable () { + if (this.InspectorInjection && !this.InspectorInjection.editable) return false return this.editable && !this.fieldOptions.abstract && !this.fieldOptions.readOnly && diff --git a/src/devtools/views/vuex/VuexStateInspector.vue b/src/devtools/views/vuex/VuexStateInspector.vue index 76cb79c08..999be2386 100644 --- a/src/devtools/views/vuex/VuexStateInspector.vue +++ b/src/devtools/views/vuex/VuexStateInspector.vue @@ -100,7 +100,7 @@ import StateInspector from 'components/StateInspector.vue' import { searchDeepInObject, sortByKey, stringify, parse } from 'src/util' import debounce from 'lodash.debounce' import groupBy from 'lodash.groupby' -import { mapGetters, mapActions } from 'vuex' +import { mapState, mapGetters, mapActions } from 'vuex' export default { components: { @@ -109,22 +109,32 @@ export default { StateInspector }, + provide () { + return { + InspectorInjection: this.injection + } + }, + data () { return { showStateCopiedMessage: false, showBadJSONMessage: false, showImportStatePopup: false, - filter: '' + filter: '', + injection: { + editable: false + } } }, computed: { - ...mapGetters('vuex', [ - 'inspectedState', + ...mapState('vuex', [ + 'activeIndex', 'inspectedIndex' ]), ...mapGetters('vuex', [ + 'inspectedState', 'filteredHistory' ]), @@ -162,6 +172,10 @@ export default { isOnlyMutationPayload () { return Object.keys(this.inspectedState).length === 1 && this.inspectedState.mutation + }, + + isActive () { + return this.activeIndex === this.inspectedIndex } }, @@ -172,6 +186,13 @@ export default { this.$el.querySelector('textarea').focus() }) } + }, + + isActive: { + handler (value) { + this.injection.editable = value + }, + immediate: true } }, From 6338a63fc4f7e5f79fd350d8ce322f4678e8c531 Mon Sep 17 00:00:00 2001 From: Ilkwon Sim Date: Sat, 26 Jan 2019 02:09:00 +0900 Subject: [PATCH 0007/1371] feat: Add $attrs to StateInspector, closes #734 (#861) This PR fixes #734 Co-authored-by: Guillaume Chau --- cypress/integration/components-tab.js | 9 +++++++++ shells/dev/target/Other.vue | 1 + shells/dev/target/Target.vue | 2 +- src/backend/index.js | 13 ++++++++++++- src/devtools/components/StateInspector.vue | 3 ++- 5 files changed, 25 insertions(+), 3 deletions(-) diff --git a/cypress/integration/components-tab.js b/cypress/integration/components-tab.js index 69048607c..0cfafedcd 100644 --- a/cypress/integration/components-tab.js +++ b/cypress/integration/components-tab.js @@ -137,4 +137,13 @@ suite('components tab', () => { expect(el.text()).to.contain('tester:

{ + cy.get('.instance .instance:nth-child(2) .arrow-wrapper').click() + cy.get('.instance .instance .instance:nth-child(1) .item-name').click() + cy.get('.right .data-wrapper').then(el => { + expect(el.text()).to.contain('$attrs') + expect(el.text()).to.contain('attr:"some-attr"') + }) + }) }) diff --git a/shells/dev/target/Other.vue b/shells/dev/target/Other.vue index 474020c6c..3dfa81203 100644 --- a/shells/dev/target/Other.vue +++ b/shells/dev/target/Other.vue @@ -18,6 +18,7 @@ const computedPropMixin = { export default { name: 'other-with-mine', + inheritAttrs: false, mixins: [computedPropMixin], provide: { foo: 'bar', diff --git a/shells/dev/target/Target.vue b/shells/dev/target/Target.vue index 6d743deb2..f0af9eb3d 100644 --- a/shells/dev/target/Target.vue +++ b/shells/dev/target/Target.vue @@ -8,7 +8,7 @@ - +

- + @@ -169,7 +169,7 @@ export default { From c6a46f159bf5b68ad76fbdf5092174ed535fe524 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Wed, 20 Mar 2019 17:15:03 +0100 Subject: [PATCH 0039/1371] fix(background): fix chrome context menu error, closes #629 --- shells/chrome/src/background.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/shells/chrome/src/background.js b/shells/chrome/src/background.js index d9fd2a061..04ad5f80e 100644 --- a/shells/chrome/src/background.js +++ b/shells/chrome/src/background.js @@ -103,15 +103,15 @@ chrome.tabs.onActivated.addListener(({ tabId }) => { }) function updateContextMenuItem () { - if (ports[activeTabId]) { - chrome.contextMenus.create({ - id: 'vue-inspect-instance', - title: 'Inspect Vue component', - contexts: ['all'] - }) - } else { - chrome.contextMenus.remove('vue-inspect-instance') - } + chrome.contextMenus.removeAll(() => { + if (ports[activeTabId]) { + chrome.contextMenus.create({ + id: 'vue-inspect-instance', + title: 'Inspect Vue component', + contexts: ['all'] + }) + } + }) } chrome.contextMenus.onClicked.addListener((info, tab) => { From c51eab802658bf5ddd7fba6469b82afbcc46cd88 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Wed, 20 Mar 2019 17:30:10 +0100 Subject: [PATCH 0040/1371] fix: vue 1.0 support issues, closes #741 --- src/backend/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/index.js b/src/backend/index.js index ec21e4bd0..284324208 100644 --- a/src/backend/index.js +++ b/src/backend/index.js @@ -370,7 +370,7 @@ function capture (instance, index, list) { captureCount++ } - if (instance.$options && instance.$options.abstract && instance._vnode.componentInstance) { + if (instance.$options && instance.$options.abstract && instance._vnode && instance._vnode.componentInstance) { instance = instance._vnode.componentInstance } @@ -432,7 +432,7 @@ function capture (instance, index, list) { .filter(Boolean) } - if (instance._vnode.children) { + if (instance._vnode && instance._vnode.children) { ret.children = ret.children.concat( flatten(instance._vnode.children.map(captureChild)) .filter(Boolean) @@ -642,7 +642,7 @@ function processProps (instance) { } function processAttrs (instance) { - return Object.entries(instance.$attrs).map(([key, value]) => { + return Object.entries(instance.$attrs || {}).map(([key, value]) => { return { type: '$attrs', key, From 247443b800e0e662221fcef2e7e517d893aa93a8 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Wed, 20 Mar 2019 17:48:54 +0100 Subject: [PATCH 0041/1371] fix(vuex): vuex 1.0 support --- src/backend/index.js | 4 ++-- src/backend/vuex.js | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/backend/index.js b/src/backend/index.js index 284324208..fe14c9966 100644 --- a/src/backend/index.js +++ b/src/backend/index.js @@ -125,10 +125,10 @@ function connect (Vue) { // vuex if (hook.store) { - initVuexBackend(hook, bridge) + initVuexBackend(hook, bridge, isLegacy) } else { hook.once('vuex:init', store => { - initVuexBackend(hook, bridge) + initVuexBackend(hook, bridge, isLegacy) }) } diff --git a/src/backend/vuex.js b/src/backend/vuex.js index 5ea4cd1b7..e2b8048df 100644 --- a/src/backend/vuex.js +++ b/src/backend/vuex.js @@ -3,7 +3,7 @@ import SharedData from 'src/shared-data' import { set } from '../util' import Vue from 'vue' -export function initVuexBackend (hook, bridge) { +export function initVuexBackend (hook, bridge, isLegacy) { const store = hook.store let originalVm = store._vm @@ -147,7 +147,16 @@ export function initVuexBackend (hook, bridge) { for (let i = snapshot.index + 1; i <= index; i++) { const mutation = mutations[i] if (mutation.handlers) { - mutation.handlers.forEach(handler => handler(mutation.payload)) + if (Array.isArray(mutation.handlers)) { + mutation.handlers.forEach(handler => handler(mutation.payload)) + } else { + if (isLegacy) { + // Vuex 1 + mutation.handlers(store.state, mutation.payload) + } else { + mutation.handlers(mutation.payload) + } + } } if (i !== index && i % SharedData.cacheVuexSnapshotsEvery === 0) { From 68ff43f2ee39625da0d4b876812aa218be364623 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Wed, 20 Mar 2019 18:28:58 +0100 Subject: [PATCH 0042/1371] refactor(vuex): removed state loading progress => now indeterminate --- src/backend/vuex.js | 16 +--------------- src/devtools/index.js | 2 +- src/devtools/views/vuex/VuexStateInspector.vue | 4 +--- src/devtools/views/vuex/actions.js | 10 ++-------- src/shared-data.js | 2 +- 5 files changed, 6 insertions(+), 28 deletions(-) diff --git a/src/backend/vuex.js b/src/backend/vuex.js index e2b8048df..e5b9e1123 100644 --- a/src/backend/vuex.js +++ b/src/backend/vuex.js @@ -136,12 +136,7 @@ export function initVuexBackend (hook, bridge, isLegacy) { const { state } = parse(snapshot.state, true) store.replaceState(state) - const total = index - snapshot.index - SharedData.snapshotLoading = { - current: 0, - total - } - let time = Date.now() + SharedData.snapshotLoading = true // Replay mutations for (let i = snapshot.index + 1; i <= index; i++) { @@ -162,15 +157,6 @@ export function initVuexBackend (hook, bridge, isLegacy) { if (i !== index && i % SharedData.cacheVuexSnapshotsEvery === 0) { takeSnapshot(i, state) } - - const now = Date.now() - if (now - time <= 100) { - time = now - SharedData.snapshotLoading = { - current: i - snapshot.index, - total - } - } } // Send final state after replay diff --git a/src/devtools/index.js b/src/devtools/index.js index 52cc77fe5..fcc97eb88 100644 --- a/src/devtools/index.js +++ b/src/devtools/index.js @@ -155,7 +155,7 @@ function initApp (shell) { } requestAnimationFrame(() => { - SharedData.snapshotLoading = null + SharedData.snapshotLoading = false }) }) diff --git a/src/devtools/views/vuex/VuexStateInspector.vue b/src/devtools/views/vuex/VuexStateInspector.vue index fe0a42228..3d8665492 100644 --- a/src/devtools/views/vuex/VuexStateInspector.vue +++ b/src/devtools/views/vuex/VuexStateInspector.vue @@ -65,9 +65,7 @@ Loading state... - +
Date: Wed, 20 Mar 2019 18:34:41 +0100 Subject: [PATCH 0043/1371] fix(vuex): state label design tweaks --- src/devtools/views/vuex/VuexStateInspector.vue | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/devtools/views/vuex/VuexStateInspector.vue b/src/devtools/views/vuex/VuexStateInspector.vue index 3d8665492..79e01482f 100644 --- a/src/devtools/views/vuex/VuexStateInspector.vue +++ b/src/devtools/views/vuex/VuexStateInspector.vue @@ -73,7 +73,7 @@ >
Recording state... @@ -260,13 +260,12 @@ function copyToClipboard (state) { flex-direction column box-center() min-height 140px - font-size 24px + font-size 16px margin 0 42px .label display flex align-items center - font-weight lighter color $blueishGrey margin-bottom 12px @@ -274,8 +273,6 @@ function copyToClipboard (state) { margin-right 12px >>> svg fill @color - .vue-ui-loading-bar - width 100% .message margin-left 5px From 8942bcbfbd454c5dbc0986ee0a5e7ccbd0645df8 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Wed, 20 Mar 2019 18:55:45 +0100 Subject: [PATCH 0044/1371] refactor(vuex): only take snapshots of the store state, closes #848 --- shells/dev/target/store.js | 6 +- src/backend/hook.js | 5 +- src/backend/vuex.js | 91 +++++++++++++++++++------------ src/devtools/index.js | 4 +- src/devtools/views/vuex/module.js | 4 +- 5 files changed, 69 insertions(+), 41 deletions(-) diff --git a/shells/dev/target/store.js b/shells/dev/target/store.js index 6fa3b6a26..4b54d83c8 100644 --- a/shells/dev/target/store.js +++ b/shells/dev/target/store.js @@ -57,7 +57,11 @@ export default new Vuex.Store({ } }, getters: { - twoFoos: state => state.foo.repeat(2) + twoFoos: state => state.foo.repeat(2), + dummy: () => { + console.log('dummy getter was computed') + return 'dummy' + } }, mutations: { ADD_BAR: (state) => { diff --git a/src/backend/hook.js b/src/backend/hook.js index 1705a8ad9..988e582e1 100644 --- a/src/backend/hook.js +++ b/src/backend/hook.js @@ -98,7 +98,10 @@ export function installHook (target) { hook.once('vuex:init', store => { hook.store = store - hook.initialStore = clone(store) + hook.initialStore = { + state: clone(store.state), + getters: store.getters + } }) Object.defineProperty(target, '__VUE_DEVTOOLS_GLOBAL_HOOK__', { diff --git a/src/backend/vuex.js b/src/backend/vuex.js index e5b9e1123..f3fa4687a 100644 --- a/src/backend/vuex.js +++ b/src/backend/vuex.js @@ -14,29 +14,26 @@ export function initVuexBackend (hook, bridge, isLegacy) { computed: originalVm.$options.computed }) - const getSnapshot = (_store = store) => stringify({ - state: _store.state, - getters: _store.getters || {} - }) + const getStateSnapshot = (_store = store) => stringify(_store.state) - let baseSnapshot, snapshots, mutations, lastState + let baseStateSnapshot, stateSnapshots, mutations, lastState function reset () { - baseSnapshot = getSnapshot(hook.initialStore) + baseStateSnapshot = getStateSnapshot(hook.initialStore) hook.initialStore = undefined mutations = [] resetSnapshotCache() } function resetSnapshotCache () { - snapshots = [ - { index: -1, state: baseSnapshot } + stateSnapshots = [ + { index: -1, state: baseStateSnapshot } ] } reset() - bridge.send('vuex:init', baseSnapshot) + bridge.send('vuex:init') // deal with multiple backend injections hook.off('vuex:mutation') @@ -66,11 +63,11 @@ export function initVuexBackend (hook, bridge, isLegacy) { // devtool -> application bridge.on('vuex:travel-to-state', ({ index, apply }) => { - const snapshot = replayMutations(index) - const { state } = parse(snapshot, true) + const stateSnapshot = replayMutations(index) + const state = parse(stateSnapshot, true) bridge.send('vuex:inspected-state', { index, - snapshot + snapshot: getSnapshot(stateSnapshot) }) if (apply) { hook.emit('vuex:travel-to-state', state) @@ -86,7 +83,7 @@ export function initVuexBackend (hook, bridge, isLegacy) { }) bridge.on('vuex:commit', index => { - baseSnapshot = lastState + baseStateSnapshot = lastState resetSnapshotCache() mutations = mutations.slice(index + 1) mutations.forEach((mutation, index) => { @@ -101,15 +98,22 @@ export function initVuexBackend (hook, bridge, isLegacy) { bridge.on('vuex:import-state', state => { hook.emit('vuex:travel-to-state', parse(state, true)) - bridge.send('vuex:init', getSnapshot()) + bridge.send('vuex:init') }) bridge.on('vuex:inspect-state', index => { - const snapshot = replayMutations(index) - bridge.send('vuex:inspected-state', { - index, - snapshot - }) + if (index === -1) { + bridge.send('vuex:inspected-state', { + index, + snapshot: getSnapshot(baseStateSnapshot) + }) + } else { + const stateSnapshot = replayMutations(index) + bridge.send('vuex:inspected-state', { + index, + snapshot: getSnapshot(stateSnapshot) + }) + } }) function replayMutations (index) { @@ -117,29 +121,29 @@ export function initVuexBackend (hook, bridge, isLegacy) { // Get most recent snapshot for target index // for faster replay - let snapshot - for (let i = 0; i < snapshots.length; i++) { - const s = snapshots[i] + let stateSnapshot + for (let i = 0; i < stateSnapshots.length; i++) { + const s = stateSnapshots[i] if (s.index > index) { break } else { - snapshot = s + stateSnapshot = s } } let resultState // Snapshot was already replayed - if (snapshot.index === index) { - resultState = snapshot.state + if (stateSnapshot.index === index) { + resultState = stateSnapshot.state } else { - const { state } = parse(snapshot.state, true) + const state = parse(stateSnapshot.state, true) store.replaceState(state) SharedData.snapshotLoading = true // Replay mutations - for (let i = snapshot.index + 1; i <= index; i++) { + for (let i = stateSnapshot.index + 1; i <= index; i++) { const mutation = mutations[i] if (mutation.handlers) { if (Array.isArray(mutation.handlers)) { @@ -155,12 +159,12 @@ export function initVuexBackend (hook, bridge, isLegacy) { } if (i !== index && i % SharedData.cacheVuexSnapshotsEvery === 0) { - takeSnapshot(i, state) + takeStateSnapshot(i, state) } } // Send final state after replay - resultState = getSnapshot() + resultState = getStateSnapshot() } lastState = resultState @@ -185,15 +189,34 @@ export function initVuexBackend (hook, bridge, isLegacy) { }) }) - function takeSnapshot (index) { - snapshots.push({ + function takeStateSnapshot (index) { + stateSnapshots.push({ index, - state: getSnapshot() + state: getStateSnapshot() }) // Delete old cached snapshots - if (snapshots.length > SharedData.cacheVuexSnapshotsLimit) { - snapshots.splice(1, 1) + if (stateSnapshots.length > SharedData.cacheVuexSnapshotsLimit) { + stateSnapshots.splice(1, 1) + } + } + + function getSnapshot (stateSnapshot = null) { + if (stateSnapshot) { + store._vm = snapshotsVm + store.replaceState(parse(stateSnapshot, true)) } + + const result = stringify({ + state: store.state, + getters: store.getters || {} + }) + + if (stateSnapshot) { + // Restore user state + store._vm = originalVm + } + + return result } } diff --git a/src/devtools/index.js b/src/devtools/index.js index fcc97eb88..3d5c74636 100644 --- a/src/devtools/index.js +++ b/src/devtools/index.js @@ -133,8 +133,8 @@ function initApp (shell) { store.commit('components/TOGGLE_INSTANCE', parse(payload)) }) - bridge.on('vuex:init', snapshot => { - store.commit('vuex/INIT', snapshot) + bridge.on('vuex:init', () => { + store.commit('vuex/INIT') }) bridge.on('vuex:mutation', payload => { diff --git a/src/devtools/views/vuex/module.js b/src/devtools/views/vuex/module.js index f05bd013d..41f9485fe 100644 --- a/src/devtools/views/vuex/module.js +++ b/src/devtools/views/vuex/module.js @@ -10,7 +10,6 @@ let uid = 0 const state = { hasVuex: false, - initial: null, base: null, // type Snapshot = { state: {}, getters: {} } inspectedIndex: -1, activeIndex: -1, @@ -25,8 +24,7 @@ const state = { } const mutations = { - 'INIT' (state, snapshot) { - state.initial = state.base = snapshot + 'INIT' (state) { state.hasVuex = true reset(state) }, From ba8b349063ccaf9598d778d977f907ffb385817b Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 21 Mar 2019 02:57:45 +0100 Subject: [PATCH 0045/1371] feat(vuex): new backend now supports dynamic modules, closes #875 Known issue: modules registered before Vuex backend is ready may cause issues --- shells/dev/target/Counter.vue | 35 +++- shells/dev/target/Target.vue | 2 +- shells/dev/target/dynamic-module.js | 19 +++ src/backend/vuex.js | 156 +++++++++++++++--- .../views/vuex/VuexStateInspector.vue | 3 +- 5 files changed, 187 insertions(+), 28 deletions(-) create mode 100644 shells/dev/target/dynamic-module.js diff --git a/shells/dev/target/Counter.vue b/shells/dev/target/Counter.vue index cb5be9522..5247615d7 100644 --- a/shells/dev/target/Counter.vue +++ b/shells/dev/target/Counter.vue @@ -1,12 +1,12 @@ diff --git a/shells/dev/target/Target.vue b/shells/dev/target/Target.vue index f0af9eb3d..1f469084f 100644 --- a/shells/dev/target/Target.vue +++ b/shells/dev/target/Target.vue @@ -1,6 +1,6 @@ @@ -41,6 +43,17 @@ export default { this.$firebaseRefs = { hello: 'world' } + + this.$store.registerModule('instant', { + namespaced: true, + state: () => ({ + hey: 'hi' + }), + getters: { + ho: state => state.hey + ' ho' + } + }) + console.log('registered instant') }, computed: { test () { return 1 }, @@ -55,7 +68,7 @@ export default { ...mapGetters('nested', [ 'twoFoos' - ]) + ]), }, watch: { count (value) { diff --git a/src/backend/hook.js b/src/backend/hook.js index 988e582e1..a51fd07ed 100644 --- a/src/backend/hook.js +++ b/src/backend/hook.js @@ -102,6 +102,27 @@ export function installHook (target) { state: clone(store.state), getters: store.getters } + // Dynamic modules + hook.storeModules = [] + const origRegister = store.registerModule.bind(store) + store.registerModule = (path, module, options) => { + if (typeof path === 'string') path = [path] + hook.storeModules.push({ path, module, options }) + origRegister(path, module, options) + } + const origUnregister = store.unregisterModule.bind(store) + store.unregisterModule = (path) => { + if (typeof path === 'string') path = [path] + const key = path.join('/') + const index = hook.storeModules.findIndex(m => m.path.join('/') === key) + if (index !== -1) hook.storeModules.splice(0, 1) + origUnregister(path) + } + hook.flushStoreModules = () => { + store.registerModule = origRegister + store.unregisterModule = origUnregister + return hook.storeModules + } }) Object.defineProperty(target, '__VUE_DEVTOOLS_GLOBAL_HOOK__', { diff --git a/src/backend/vuex.js b/src/backend/vuex.js index 17f47281f..63b8b3f4e 100644 --- a/src/backend/vuex.js +++ b/src/backend/vuex.js @@ -38,11 +38,20 @@ export function initVuexBackend (hook, bridge, isLegacy) { reset() - const origRegisterModule = store.registerModule.bind(store) - store.registerModule = (path, module, options) => { + const earlyModules = hook.flushStoreModules() + + function addModule (path, module, options) { if (typeof path === 'string') path = [path] + + const key = path.join('/') + registeredModules[key] = allTimeModules[key] = { + path, + module, + options + } + if (SharedData.recordVuex) { - addMutation(`Register module: ${path.join('/')}`, { + addMutation(`Register module: ${key}`, { path, module, options @@ -50,20 +59,20 @@ export function initVuexBackend (hook, bridge, isLegacy) { registerModule: true }) } + } - const key = path.join('/') - registeredModules[key] = allTimeModules[key] = { - path, - module, - options - } - + const origRegisterModule = store.registerModule.bind(store) + store.registerModule = (path, module, options) => { + addModule(path, module, options) origRegisterModule(path, module, options) } const origUnregisterModule = store.unregisterModule.bind(store) store.unregisterModule = (path) => { if (typeof path === 'string') path = [path] + + delete registeredModules[path.join('/')] + if (SharedData.recordVuex) { addMutation(`Unregister module: ${path.join('/')}`, { path @@ -72,13 +81,15 @@ export function initVuexBackend (hook, bridge, isLegacy) { }) } - delete registeredModules[path.join('/')] - origUnregisterModule(path) } bridge.send('vuex:init') + earlyModules.forEach(({ path, module, options }) => { + addModule(path, module, options) + }) + // deal with multiple backend injections hook.off('vuex:mutation') From e085cd8d8a63dfff21fa727ba440e091d24b07f5 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 21 Mar 2019 03:41:07 +0100 Subject: [PATCH 0047/1371] fix(vuex): base state with early registered modules not loading --- src/backend/vuex.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/backend/vuex.js b/src/backend/vuex.js index 63b8b3f4e..4d7965824 100644 --- a/src/backend/vuex.js +++ b/src/backend/vuex.js @@ -16,14 +16,25 @@ export function initVuexBackend (hook, bridge, isLegacy) { }) } - updateSnapshotsVm() - const getStateSnapshot = (_store = store) => stringify(_store.state) let baseStateSnapshot, stateSnapshots, mutations, lastState let registeredModules = {} let allTimeModules = {} + const earlyModules = hook.flushStoreModules() + + // Init additional state + earlyModules.forEach(({ path, module, options }) => { + if (!options || options.preserveState !== true) { + const state = typeof module.state === 'function' ? module.state() : module.state + const parentState = path.length === 1 ? hook.initialStore.state : get(hook.initialStore.state, path.slice(0, -1)) + set(parentState, path[path.length - 1], state) + } + }) + + updateSnapshotsVm() + function reset () { baseStateSnapshot = getStateSnapshot(hook.initialStore) mutations = [] @@ -38,8 +49,6 @@ export function initVuexBackend (hook, bridge, isLegacy) { reset() - const earlyModules = hook.flushStoreModules() - function addModule (path, module, options) { if (typeof path === 'string') path = [path] From 0fb2dacf4072fa7436c4eab383eb4a725fb27f04 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 21 Mar 2019 04:01:42 +0100 Subject: [PATCH 0048/1371] fix(vuex): import state --- src/backend/vuex.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/backend/vuex.js b/src/backend/vuex.js index 4d7965824..3881241ce 100644 --- a/src/backend/vuex.js +++ b/src/backend/vuex.js @@ -169,8 +169,15 @@ export function initVuexBackend (hook, bridge, isLegacy) { }) bridge.on('vuex:import-state', state => { - hook.emit('vuex:travel-to-state', parse(state, true)) + const parsed = parse(state, true) + hook.initialStore.state = parsed + reset() + hook.emit('vuex:travel-to-state', parsed) bridge.send('vuex:init') + bridge.send('vuex:inspected-state', { + index: -1, + snapshot: getSnapshot(baseStateSnapshot) + }) }) bridge.on('vuex:inspect-state', index => { From dd67b4d43f3369dfaddd0ad7d707fddf5a09ea39 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 21 Mar 2019 04:01:50 +0100 Subject: [PATCH 0049/1371] test(e2e): fix --- cypress/integration/vuex-tab.js | 41 ++++++++++++++++--------------- shells/dev/target/NativeTypes.vue | 4 +-- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/cypress/integration/vuex-tab.js b/cypress/integration/vuex-tab.js index a40b7ee76..a52f5d833 100644 --- a/cypress/integration/vuex-tab.js +++ b/cypress/integration/vuex-tab.js @@ -10,7 +10,7 @@ suite('vuex tab', () => { get('#counter p').contains('1') }) cy.get('.vuex-tab').click() - cy.get('.history .entry').should('have.length', 5) + cy.get('.history .entry').should('have.length', 6) cy.get('[data-id="load-vuex-state"]').click() cy.get('.recording-vuex-state').should('not.be.visible') cy.get('.loading-vuex-state').should('not.be.visible') @@ -18,7 +18,7 @@ suite('vuex tab', () => { expect(el.text()).to.include('type:"DECREMENT"') expect(el.text()).to.include('count:1') }) - cy.get('.history .entry').eq(4).should('have.class', 'inspected').should('have.class', 'active') + cy.get('.history .entry').eq(5).should('have.class', 'inspected').should('have.class', 'active') }) it('should filter state & getters', () => { @@ -41,7 +41,7 @@ suite('vuex tab', () => { cy.get('.history .entry[data-active="true"].active').should('have.length', 0) cy.get('.left .search input').clear().type('/dec)/i') - cy.get('.history .entry[data-active="true"]').should('have.length', 4) + cy.get('.history .entry[data-active="true"]').should('have.length', 5) cy.get('.history .entry[data-active="true"].inspected').should('have.length', 0) cy.get('.history .entry[data-active="true"].active').should('have.length', 1) @@ -70,19 +70,19 @@ suite('vuex tab', () => { }) it('should time-travel', () => { - cy.get('.history .entry[data-index="3"] .entry-actions .action-time-travel').click({ force: true }) - cy.get('.history .entry[data-index="3"]') + cy.get('.history .entry[data-index="4"] .entry-actions .action-time-travel').click({ force: true }) + cy.get('.history .entry[data-index="4"]') .should('have.class', 'inspected') .should('have.class', 'active') cy.get('#target').iframe().then(({ get }) => { get('#counter p').contains('2') }) - cy.get('.history .entry[data-index="2"] .mutation-type').click({ force: true }) - cy.get('.history .entry[data-index="2"]') + cy.get('.history .entry[data-index="3"] .mutation-type').click({ force: true }) + cy.get('.history .entry[data-index="3"]') .should('have.class', 'inspected') .should('not.have.class', 'active') - cy.get('.history .entry[data-index="3"]') + cy.get('.history .entry[data-index="4"]') .should('not.have.class', 'inspected') .should('have.class', 'active') cy.get('.recording-vuex-state').should('not.be.visible') @@ -95,11 +95,11 @@ suite('vuex tab', () => { cy.get('#target').iframe().then(({ get }) => { get('#counter p').contains('2') }) - cy.get('.history .entry[data-index="2"] .entry-actions .action-time-travel').click({ force: true }) - cy.get('.history .entry[data-index="2"]') + cy.get('.history .entry[data-index="3"] .entry-actions .action-time-travel').click({ force: true }) + cy.get('.history .entry[data-index="3"]') .should('have.class', 'inspected') .should('have.class', 'active') - cy.get('.history .entry[data-index="3"]') + cy.get('.history .entry[data-index="4"]') .should('not.have.class', 'inspected') .should('not.have.class', 'active') cy.get('#target').iframe().then(({ get }) => { @@ -117,8 +117,8 @@ suite('vuex tab', () => { cy.get('#target').iframe().then(({ get }) => { get('#counter p').contains('1') }) - cy.get('.history .entry[data-index="1"] .entry-actions .action-time-travel').click({ force: true }) - cy.get('.history .entry[data-index="1"]') + cy.get('.history .entry[data-index="2"] .entry-actions .action-time-travel').click({ force: true }) + cy.get('.history .entry[data-index="2"]') .should('have.class', 'inspected') .should('have.class', 'active') cy.get('#target').iframe().then(({ get }) => { @@ -127,10 +127,10 @@ suite('vuex tab', () => { }) it('should revert', () => { - cy.get('.history .entry[data-index="4"] .mutation-type').click({ force: true }) - cy.get('.history .entry[data-index="4"]').find('.action-revert').click({ force: true }) - cy.get('.history .entry[data-active="true"]').should('have.length', 4) - cy.get('.history .entry[data-index="3"]') + cy.get('.history .entry[data-index="5"] .mutation-type').click({ force: true }) + cy.get('.history .entry[data-index="5"]').find('.action-revert').click({ force: true }) + cy.get('.history .entry[data-active="true"]').should('have.length', 5) + cy.get('.history .entry[data-index="4"]') .should('have.class', 'inspected') .should('have.class', 'active') cy.get('.vuex-state-inspector').then(el => { @@ -142,7 +142,7 @@ suite('vuex tab', () => { }) it('should commit', () => { - cy.get('.history .entry[data-index="3"] .action-commit').click({ force: true }) + cy.get('.history .entry[data-index="4"] .action-commit').click({ force: true }) cy.get('.history .entry[data-active="true"]').should('have.length', 1) cy.get('.history .entry[data-index="0"]') .should('have.class', 'inspected') @@ -185,7 +185,7 @@ suite('vuex tab', () => { cy.get('#target').iframe().then(({ get }) => { get('.increment').click({ force: true }) }) - cy.get('.history .entry').should('have.length', 5) + cy.get('.history .entry[data-active="true"]').should('have.length', 4) }) it('should copy vuex state', () => { @@ -200,9 +200,10 @@ suite('vuex tab', () => { cy.get('.import-state').should('be.visible') cy.get('.import-state textarea').clear().type('{{}invalid: json}') cy.get('.message.invalid-json').should('be.visible') - cy.get('.import-state textarea').clear().type('{{}"count":42,"date":"[native Date Fri Dec 22 2017 10:12:04 GMT+0100 (CET)]","nested":{{}"foo":"meow"}}') + cy.get('.import-state textarea').clear().type('{{}"count":42,"date":"[native Date Fri Dec 22 2017 10:12:04 GMT+0100 (CET)]","nested":{{}"foo":"meow"},"instant":{{}"hey":"hi"}}') cy.wait(500) cy.get('.message.invalid-json').should('not.be.visible') + cy.wait(500) cy.get('.vuex-state-inspector').then(el => { expect(el.text()).to.include('count:42') expect(el.text()).to.include('date:' + new Date('Fri Dec 22 2017 10:12:04 GMT+0100 (CET)')) diff --git a/shells/dev/target/NativeTypes.vue b/shells/dev/target/NativeTypes.vue index 6e82de4c7..bcdf3e32b 100644 --- a/shells/dev/target/NativeTypes.vue +++ b/shells/dev/target/NativeTypes.vue @@ -155,11 +155,11 @@ export default { }, setDisplay () { - return Array.from(this.set) + if (this.set) return Array.from(this.set) }, mapDisplay () { - return [...this.map] + if (this.map) return [...this.map] }, forceRefresh () { From 426820b8f988f0bdbc12c826434d791f0df52a03 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 21 Mar 2019 04:08:22 +0100 Subject: [PATCH 0050/1371] test(e2e): fix --- cypress/integration/vuex-edit.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cypress/integration/vuex-edit.js b/cypress/integration/vuex-edit.js index 86a53e472..1f3bc21ed 100644 --- a/cypress/integration/vuex-edit.js +++ b/cypress/integration/vuex-edit.js @@ -76,7 +76,7 @@ suite('vuex edit', () => { it('should edit state nested field', () => { // using the decrease button - cy.get('.data-field > .children > .data-field').eq(3) + cy.get('.data-field > .children > .data-field').eq(4) .find('.actions .vue-ui-button').eq(1) .click({ force: true }) .click({ force: true }) @@ -87,7 +87,7 @@ suite('vuex edit', () => { }) // using the increase button - cy.get('.data-field > .children > .data-field').eq(3) + cy.get('.data-field > .children > .data-field').eq(4) .find('.actions .vue-ui-button').eq(2) .click({ force: true }) .click({ force: true }) @@ -98,7 +98,7 @@ suite('vuex edit', () => { }) // using the input - cy.get('.data-field > .children > .data-field').eq(3) + cy.get('.data-field > .children > .data-field').eq(4) .find('.actions .vue-ui-button').eq(0).click({ force: true }) cy.get('.edit-input').eq(1).type('12') cy.get('.edit-overlay > .actions > :nth-child(2) > .content > .vue-ui-icon').click() From a31437eec562fa59cc81ed964ebc82102d95abdb Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 21 Mar 2019 04:20:05 +0100 Subject: [PATCH 0051/1371] chore: v5.0.0-beta.5 --- package.json | 4 ++-- shells/chrome/manifest.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 41d6e30f9..ea0b2c6ee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-devtools", - "version": "5.0.0-beta.4", + "version": "5.0.0-beta.5", "description": "devtools for Vue.js!", "main": "index.js", "scripts": { @@ -85,4 +85,4 @@ "engines": { "node": ">=8.10" } -} +} \ No newline at end of file diff --git a/shells/chrome/manifest.json b/shells/chrome/manifest.json index 5d64aba2f..0582600d8 100644 --- a/shells/chrome/manifest.json +++ b/shells/chrome/manifest.json @@ -1,7 +1,7 @@ { "name": "Vue.js devtools", - "version": "5.0.0.4", - "version_name": "5.0.0 beta 4", + "version": "5.0.0.5", + "version_name": "5.0.0 beta 5", "description": "Chrome and Firefox DevTools extension for debugging Vue.js applications.", "manifest_version": 2, "icons": { From 65018e72399377403e513cacdf8c34560f090ae1 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 21 Mar 2019 04:37:37 +0100 Subject: [PATCH 0052/1371] chore: @vue/devtools 5.0.0-beta.5 --- shells/electron/package.json | 2 +- shells/electron/yarn.lock | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/shells/electron/package.json b/shells/electron/package.json index 90d3b9202..fbd2b6622 100644 --- a/shells/electron/package.json +++ b/shells/electron/package.json @@ -1,6 +1,6 @@ { "name": "@vue/devtools", - "version": "5.0.0-beta.3", + "version": "5.0.0-beta.5", "description": "StandAlone vue-devtools", "repository": { "url": "https://github.com/vuejs/vue-devtools.git", diff --git a/shells/electron/yarn.lock b/shells/electron/yarn.lock index 014eb312b..f7482b223 100644 --- a/shells/electron/yarn.lock +++ b/shells/electron/yarn.lock @@ -967,9 +967,10 @@ electron-download@^3.0.1: semver "^5.3.0" sumchecker "^1.2.0" -electron@1.7.11: - version "1.7.11" - resolved "https://registry.yarnpkg.com/electron/-/electron-1.7.11.tgz#993b6aa79e0e79a7cfcc369f4c813fbd9a0b08d9" +electron@1.7.16: + version "1.7.16" + resolved "https://registry.yarnpkg.com/electron/-/electron-1.7.16.tgz#40e6b5553e3a87ce7ea52eb05f7926bc40cab11c" + integrity sha512-k17+2K3hny6g1etWMkWvzEL06yapZGpqG66O3e5vxfzeHT3FgqrNa3xRF7znjaqvWQmmEdGFdSktQADjUZ0gog== dependencies: "@types/node" "^7.0.18" electron-download "^3.0.1" From 26b2ed7cf363cc28d880688bc0b1ddc10fe35125 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sat, 23 Mar 2019 19:48:26 +0100 Subject: [PATCH 0053/1371] chore: no prop example --- shells/dev/target/Counter.vue | 58 +++++++++++++++++++++++++++++------ shells/dev/target/NoProp.vue | 13 ++++++++ 2 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 shells/dev/target/NoProp.vue diff --git a/shells/dev/target/Counter.vue b/shells/dev/target/Counter.vue index a7e495996..0129906d6 100644 --- a/shells/dev/target/Counter.vue +++ b/shells/dev/target/Counter.vue @@ -1,12 +1,24 @@ - - - + + +
{{ $store.state.instant }}
+ +
From 0243b14e30db91b04d4684aa0ddbde1a127ced7c Mon Sep 17 00:00:00 2001 From: Gavrilov Evgeniy Date: Sat, 23 Mar 2019 21:48:44 +0300 Subject: [PATCH 0054/1371] fix: error on edit data of component without properties in devtools (#907) --- src/util.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/util.js b/src/util.js index 9da143a91..fe16fae5a 100644 --- a/src/util.js +++ b/src/util.js @@ -524,6 +524,10 @@ export function get (object, path) { } export function has (object, path, parent = false) { + if (typeof object === 'undefined') { + return false + } + const sections = path.split('.') const size = !parent ? 1 : 2 while (sections.length > size) { From 29c786f388ccd5d3ce731328cb243bb8b425c12c Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sat, 23 Mar 2019 20:10:37 +0100 Subject: [PATCH 0055/1371] chore: dev:chrome & dev:chrome:prod --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ea0b2c6ee..5c3bf8698 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "scripts": { "dev": "cross-env PORT=8100 npm run dev:shell", "dev:shell": "cd shells/dev && webpack-dev-server --inline --hot --no-info", - "dev:chrome": "cd shells/chrome && cross-env NODE_ENV=production webpack --watch --hide-modules", + "dev:chrome": "cd shells/chrome && webpack --watch --hide-modules", + "dev:chrome:prod": "cd shells/chrome && cross-env NODE_ENV=production webpack --watch --hide-modules", "lint": "eslint src --ext=js,vue && eslint shells/chrome/src && eslint shells/dev/src && eslint shells/electron/src", "build": "cd shells/chrome && cross-env NODE_ENV=production webpack --progress --hide-modules", "run:firefox": "web-ext run -s shells/chrome -a dist -i src", From de13143c621ac7a4c0de70ae55cae705b2088582 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sat, 23 Mar 2019 20:11:38 +0100 Subject: [PATCH 0056/1371] fix: detect polyfilled Map & Set objects, closes #744 --- src/util.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util.js b/src/util.js index fe16fae5a..9f33ac5f8 100644 --- a/src/util.js +++ b/src/util.js @@ -131,9 +131,9 @@ function replacer (key) { } else if (type === 'symbol') { return `[native Symbol ${Symbol.prototype.toString.call(val)}]` } else if (val !== null && type === 'object') { - if (val instanceof Map) { + if (val instanceof Map || val.toString() === '[object Map]') { return encodeCache.cache(val, () => getCustomMapDetails(val)) - } else if (val instanceof Set) { + } else if (val instanceof Set || val.toString() === '[object Set]') { return encodeCache.cache(val, () => getCustomSetDetails(val)) } else if (val instanceof RegExp) { // special handling of native type From 8f68d50d2a6a78f12582162ab9a0eadcf2269101 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sat, 23 Mar 2019 20:13:08 +0100 Subject: [PATCH 0057/1371] test(e2e): fix --- cypress/integration/components-tab.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/integration/components-tab.js b/cypress/integration/components-tab.js index 0cfafedcd..88b51a0fa 100644 --- a/cypress/integration/components-tab.js +++ b/cypress/integration/components-tab.js @@ -92,7 +92,7 @@ suite('components tab', () => { it('should filter components', () => { cy.get('.left .search input').clear().type('counter') - cy.get('.instance').should('have.length', 1) + cy.get('.instance').should('have.length', 2) cy.get('.left .search input').clear().type('target') cy.get('.instance').should('have.length', 12) cy.get('.left .search input').clear() From a9b658b37ce3cd77b4615775f4686df7ab2456c8 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 24 Mar 2019 19:15:19 +0100 Subject: [PATCH 0058/1371] fix: maximum JSON serialization size to prevent message being too long --- shells/dev/target/NativeTypes.vue | 26 +++++++++++----- src/bridge.js | 51 +++++++++++++++++++++++++++---- src/transfer.js | 19 ++++++++++-- 3 files changed, 80 insertions(+), 16 deletions(-) diff --git a/shells/dev/target/NativeTypes.vue b/shells/dev/target/NativeTypes.vue index bcdf3e32b..dd0cee9c0 100644 --- a/shells/dev/target/NativeTypes.vue +++ b/shells/dev/target/NativeTypes.vue @@ -3,7 +3,9 @@

Date: {{ date.toString() }} - Hours: {{ hours }} - Prototype: {{ date | prototypeString }}

- +


@@ -11,7 +13,9 @@

- + - - + + +

@@ -105,9 +115,9 @@ export default { 'html key': (h, t, m, l) => {}, proxy1, sym: Symbol('test'), - multiLineParameterFunction: function(a, - b, - c) {}, + multiLineParameterFunction: function (a, + b, + c) {}, veryLongText } }, diff --git a/src/bridge.js b/src/bridge.js index 4662f034d..f6fb0dbef 100644 --- a/src/bridge.js +++ b/src/bridge.js @@ -14,7 +14,10 @@ export default class Bridge extends EventEmitter { this._emit(messages) } }) - this._queue = [] + this._batchingQueue = [] + this._sendingQueue = [] + this._receivingQueue = [] + this._sending = false this._time = null } @@ -26,11 +29,21 @@ export default class Bridge extends EventEmitter { */ send (event, payload) { - if (this._time === null) { - this.wall.send([{ event, payload }]) + if (Array.isArray(payload)) { + const lastIndex = payload.length - 1 + payload.forEach((chunk, index) => { + this._send({ + event, + _chunk: chunk, + last: index === lastIndex + }) + }) + this._flush() + } else if (this._time === null) { + this._send([{ event, payload }]) this._time = Date.now() } else { - this._queue.push({ + this._batchingQueue.push({ event, payload }) @@ -55,17 +68,43 @@ export default class Bridge extends EventEmitter { } _flush () { - if (this._queue.length) this.wall.send(this._queue) + if (this._batchingQueue.length) this._send(this._batchingQueue) clearTimeout(this._timer) - this._queue = [] + this._batchingQueue = [] this._time = null } _emit (message) { if (typeof message === 'string') { this.emit(message) + } else if (message._chunk) { + this._receivingQueue.push(message._chunk) + if (message.last) { + this.emit(message.event, this._receivingQueue) + this._receivingQueue = [] + } } else { this.emit(message.event, message.payload) } } + + _send (messages) { + this._sendingQueue.push(messages) + this._nextSend() + } + + _nextSend () { + if (!this._sendingQueue.length || this._sending) return + this._sending = true + const messages = this._sendingQueue.shift() + try { + this.wall.send(messages) + } catch (err) { + if (err.message === 'Message length exceeded maximum allowed length.') { + this._sendingQueue.splice(0, 0, messages.map(message => [message])) + } + } + this._sending = false + requestAnimationFrame(() => this._nextSend()) + } } diff --git a/src/transfer.js b/src/transfer.js index 6ece679f6..0b86e15bd 100644 --- a/src/transfer.js +++ b/src/transfer.js @@ -1,3 +1,5 @@ +const MAX_SERIALIZED_SIZE = 512 * 1024 // 1MB + function encode (data, replacer, list, seen) { var stored, key, value, i, l var seenIndex = seen.get(data) @@ -57,16 +59,29 @@ function decode (list, reviver) { } export function stringify (data, replacer, space) { + let result try { - return arguments.length === 1 + result = arguments.length === 1 ? JSON.stringify(data) : JSON.stringify(data, replacer, space) } catch (e) { - return stringifyStrict(data, replacer, space) + result = stringifyStrict(data, replacer, space) } + if (result.length > MAX_SERIALIZED_SIZE) { + const chunkCount = Math.ceil(result.length / MAX_SERIALIZED_SIZE) + const chunks = [] + for (let i = 0; i < chunkCount; i++) { + chunks.push(result.slice(i * MAX_SERIALIZED_SIZE, (i + 1) * MAX_SERIALIZED_SIZE)) + } + return chunks + } + return result } export function parse (data, reviver) { + if (Array.isArray(data)) { + data = data.join('') + } var hasCircular = /^\s/.test(data) if (!hasCircular) { return arguments.length === 1 From 57ec2ab62ad8ad64784f68bd1902020d92b01b57 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 24 Mar 2019 19:25:38 +0100 Subject: [PATCH 0059/1371] fix(perf): stringify replacer --- src/util.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/util.js b/src/util.js index 9f33ac5f8..80c7a4a4c 100644 --- a/src/util.js +++ b/src/util.js @@ -120,7 +120,15 @@ export function stringify (data) { function replacer (key) { const val = this[key] const type = typeof val - if (type === 'undefined') { + if (Array.isArray(val)) { + return val + } else if (typeof val === 'string') { + if (val.length > MAX_STRING_SIZE) { + return val.substr(0, MAX_STRING_SIZE) + `... (${(val.length)} total length)` + } else { + return val + } + } else if (type === 'undefined') { return UNDEFINED } else if (val === Infinity) { return INFINITY @@ -131,14 +139,15 @@ function replacer (key) { } else if (type === 'symbol') { return `[native Symbol ${Symbol.prototype.toString.call(val)}]` } else if (val !== null && type === 'object') { - if (val instanceof Map || val.toString() === '[object Map]') { + const proto = Object.prototype.toString.call(val) + if (proto === '[object Map]') { return encodeCache.cache(val, () => getCustomMapDetails(val)) - } else if (val instanceof Set || val.toString() === '[object Set]') { + } else if (proto === '[object Set]') { return encodeCache.cache(val, () => getCustomSetDetails(val)) - } else if (val instanceof RegExp) { + } else if (proto === '[object RegExp]') { // special handling of native type return `[native RegExp ${RegExp.prototype.toString.call(val)}]` - } else if (val instanceof Date) { + } else if (proto === '[object Date]') { return `[native Date ${Date.prototype.toString.call(val)}]` } else if (val.state && val._vm) { return encodeCache.cache(val, () => getCustomStoreDetails(val)) @@ -151,8 +160,6 @@ function replacer (key) { } } else if (Number.isNaN(val)) { return NAN - } else if (typeof val === 'string' && val.length > MAX_STRING_SIZE) { - return val.substr(0, MAX_STRING_SIZE) + `... (${(val.length)} total length)` } return sanitize(val) } From 561a8928b75f21f9e3125cce35cdec9f731d7e77 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 24 Mar 2019 19:36:24 +0100 Subject: [PATCH 0060/1371] feat(perf): small encode gains --- src/transfer.js | 20 ++++++++++---------- src/util.js | 3 +-- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/transfer.js b/src/transfer.js index 0b86e15bd..1fcf8ab07 100644 --- a/src/transfer.js +++ b/src/transfer.js @@ -1,22 +1,22 @@ const MAX_SERIALIZED_SIZE = 512 * 1024 // 1MB function encode (data, replacer, list, seen) { - var stored, key, value, i, l - var seenIndex = seen.get(data) + let stored, key, value, i, l + const seenIndex = seen.get(data) if (seenIndex != null) { return seenIndex } - var index = list.length - var proto = Object.prototype.toString.call(data) + const index = list.length + const proto = Object.prototype.toString.call(data) if (proto === '[object Object]') { stored = {} seen.set(data, index) list.push(stored) - var keys = Object.keys(data) + const keys = Object.keys(data) for (i = 0, l = keys.length; i < l; i++) { key = keys[i] value = data[key] - if (replacer) value = replacer.call(data, key, value) + if (replacer) value = replacer(key, value) stored[key] = encode(value, replacer, list, seen) } } else if (proto === '[object Array]') { @@ -25,7 +25,7 @@ function encode (data, replacer, list, seen) { list.push(stored) for (i = 0, l = data.length; i < l; i++) { value = data[i] - if (replacer) value = replacer.call(data, i, value) + if (replacer) value = replacer(i, value) stored[i] = encode(value, replacer, list, seen) } } else { @@ -35,13 +35,13 @@ function encode (data, replacer, list, seen) { } function decode (list, reviver) { - var i = list.length - var j, k, data, key, value, proto + let i = list.length + let j, k, data, key, value, proto while (i--) { data = list[i] proto = Object.prototype.toString.call(data) if (proto === '[object Object]') { - var keys = Object.keys(data) + const keys = Object.keys(data) for (j = 0, k = keys.length; j < k; j++) { key = keys[j] value = list[data[key]] diff --git a/src/util.js b/src/util.js index 80c7a4a4c..22e9384c5 100644 --- a/src/util.js +++ b/src/util.js @@ -117,8 +117,7 @@ export function stringify (data) { return CircularJSON.stringify(data, replacer) } -function replacer (key) { - const val = this[key] +function replacer (key, val) { const type = typeof val if (Array.isArray(val)) { return val From b3baab5b0ef1625817a02154b5e52ba99b65e2dd Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 24 Mar 2019 20:07:02 +0100 Subject: [PATCH 0061/1371] feat(perf): limit size of arrays sent to devtools --- src/devtools/components/DataField.vue | 36 +++++++++++++++++++-------- src/util.js | 9 +++++++ 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/src/devtools/components/DataField.vue b/src/devtools/components/DataField.vue index bb035a478..72bdd6e79 100644 --- a/src/devtools/components/DataField.vue +++ b/src/devtools/components/DataField.vue @@ -172,7 +172,7 @@ class="children" > ... @@ -273,7 +274,7 @@ export default { data () { return { contextMenuOpen: false, - limit: Array.isArray(this.field.value) ? 10 : Infinity, + limit: 20, expanded: this.depth === 0 && this.field.key !== '$route' && (subFieldCount(this.field.value) < 5) } }, @@ -309,7 +310,7 @@ export default { } else { return 'string' } - } else if (Array.isArray(value)) { + } else if (Array.isArray(value) || (value && value._isArray)) { return 'array' } else if (isPlainObject(value)) { return 'plain-object' @@ -367,7 +368,7 @@ export default { } }, - formattedSubFields () { + rawValue () { let value = this.field.value // CustomValue API @@ -378,8 +379,17 @@ export default { value = value._custom.value } + if (value && value._isArray) { + value = value.items + } + return { value, inherit } + }, + + formattedSubFields () { + let { value, inherit } = this.rawValue + if (Array.isArray(value)) { - value = value.map((item, i) => ({ + return value.slice(0, this.limit).map((item, i) => ({ key: i, value: item, ...inherit @@ -394,11 +404,13 @@ export default { value = sortByKey(value) } } - return value + + return value.slice(0, this.limit) }, - limitedSubFields () { - return this.formattedSubFields.slice(0, this.limit) + subFieldCount () { + const { value } = this.rawValue + return subFieldCount(value) }, valueTooltip () { @@ -505,6 +517,10 @@ export default { this.$_contextMenuTimer = setTimeout(() => { this.contextMenuOpen = false }, 4000) + }, + + showMoreSubfields () { + this.limit += 20 } } } diff --git a/src/util.js b/src/util.js index 22e9384c5..92ee2c893 100644 --- a/src/util.js +++ b/src/util.js @@ -60,6 +60,7 @@ export const SPECIAL_TOKENS = { } export const MAX_STRING_SIZE = 10000 +export const MAX_ARRAY_SIZE = 5000 export function specialTokenToString (value) { if (value === null) { @@ -120,6 +121,14 @@ export function stringify (data) { function replacer (key, val) { const type = typeof val if (Array.isArray(val)) { + const l = val.length + if (l > MAX_ARRAY_SIZE) { + return { + _isArray: true, + length: l, + items: val.slice(0, MAX_ARRAY_SIZE) + } + } return val } else if (typeof val === 'string') { if (val.length > MAX_STRING_SIZE) { From 3d11cabac416bae8678eccc86a15206b40db692e Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 24 Mar 2019 20:12:26 +0100 Subject: [PATCH 0062/1371] fix: better show more button style --- src/devtools/components/DataField.vue | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/devtools/components/DataField.vue b/src/devtools/components/DataField.vue index 72bdd6e79..7b2e73114 100644 --- a/src/devtools/components/DataField.vue +++ b/src/devtools/components/DataField.vue @@ -184,15 +184,14 @@ :force-collapse="forceCollapse" :is-state-field="isStateField" /> - - ... - + /> >> .vue-ui-icon + width 16px + height @width From 27e4d66e8ebcb0f012d6686091e199fe78e78f42 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 24 Mar 2019 20:14:43 +0100 Subject: [PATCH 0063/1371] chore(dev): display large array size --- shells/dev/target/NativeTypes.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/shells/dev/target/NativeTypes.vue b/shells/dev/target/NativeTypes.vue index dd0cee9c0..d9cd126c0 100644 --- a/shells/dev/target/NativeTypes.vue +++ b/shells/dev/target/NativeTypes.vue @@ -24,6 +24,10 @@

+

+ Large array size: {{ largeArray.length }} +

+

Set

{{ setDisplay() }}
From 0f88dfab42f9ab1b7b354147733412140fe199ac Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 24 Mar 2019 20:34:03 +0100 Subject: [PATCH 0064/1371] feat(perf): better select instance perceived per and UX --- src/devtools/views/components/ComponentInspector.vue | 8 ++++++++ src/devtools/views/components/ComponentInstance.vue | 10 ++++++++-- src/devtools/views/components/ComponentsTab.vue | 10 ++++++---- src/devtools/views/components/module.js | 9 +++++++++ 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/devtools/views/components/ComponentInspector.vue b/src/devtools/views/components/ComponentInspector.vue index da747095f..3a18cb08c 100644 --- a/src/devtools/views/components/ComponentInspector.vue +++ b/src/devtools/views/components/ComponentInspector.vue @@ -16,6 +16,10 @@ placeholder="Filter inspected data" > + + diff --git a/src/devtools/views/vuex/VuexStateInspector.vue b/src/devtools/views/vuex/VuexStateInspector.vue index 22bd893cc..4dd6a44bf 100644 --- a/src/devtools/views/vuex/VuexStateInspector.vue +++ b/src/devtools/views/vuex/VuexStateInspector.vue @@ -197,6 +197,17 @@ export default { } }, + mounted () { + bridge.on('vuex:mutation', this.onMutation) + if (this.isOnlyMutationPayload && this.$shared.vuexAutoload) { + this.loadState() + } + }, + + destroyed () { + bridge.off('vuex:mutation', this.onMutation) + }, + methods: { ...mapActions('vuex', [ 'inspect' @@ -241,7 +252,13 @@ export default { loadState () { const history = this.filteredHistory this.inspect(history[history.length - 1]) - } + }, + + onMutation: debounce(function () { + if (this.$shared.vuexAutoload) { + this.loadState() + } + }, 800) } } diff --git a/src/shared-data.js b/src/shared-data.js index 58d476cd8..bfc0b6f67 100644 --- a/src/shared-data.js +++ b/src/shared-data.js @@ -12,7 +12,8 @@ const internalSharedData = { snapshotLoading: false, recordPerf: false, editableProps: false, - logDetected: true + logDetected: true, + vuexAutoload: false } const persisted = [ @@ -21,7 +22,8 @@ const persisted = [ 'displayDensity', 'recordVuex', 'editableProps', - 'logDetected' + 'logDetected', + 'vuexAutoload' ] // ---- INTERNALS ---- // diff --git a/yarn.lock b/yarn.lock index cc3c798c6..10d69b0ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -51,15 +51,14 @@ source-map "~0.6.1" vue-template-es2015-compiler "^1.9.0" -"@vue/ui@^0.5.6": - version "0.5.6" - resolved "https://registry.yarnpkg.com/@vue/ui/-/ui-0.5.6.tgz#7c39b04a3b08ae3f217d2323987ae13347a90b29" - integrity sha512-NmxJsFk8umipCbKLusz6L27DQIicpt8jLOjN1aLjyBIeX3t4H5RFshxH7IUtjDPtgOYGwwq7gy86bmFkDDBsIQ== +"@vue/ui@^0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@vue/ui/-/ui-0.7.2.tgz#c4501719267dd35e048a5be68aeea17f67ba47cd" + integrity sha512-LDhPgumKVeVSFpfLlrKOpbWPJB8pAacsBGEYLifOSNpEQhSZDTA7cMAfZ35GkXnrfUh3tovne0X+KyBewz3pOg== dependencies: - focus-visible "^4.1.4" - material-design-icons "^3.0.1" + focus-visible "^4.1.5" v-tooltip "^2.0.0-rc.33" - vue-resize "^0.4.4" + vue-resize "^0.4.5" "@webassemblyjs/ast@1.8.5": version "1.8.5" @@ -2445,7 +2444,7 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -focus-visible@^4.1.4: +focus-visible@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/focus-visible/-/focus-visible-4.1.5.tgz#50b44e2e84c24b831ceca3cce84d57c2b311c855" integrity sha512-yo/njtk/BB4Z2euzaZe3CZrg4u5s5uEi7ZwbHBJS2quHx51N0mmcx9nTIiImUGlgy+vf26d0CcQluahBBBL/Fw== @@ -3681,11 +3680,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -material-design-icons@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/material-design-icons/-/material-design-icons-3.0.1.tgz#9a71c48747218ebca51e51a66da682038cdcb7bf" - integrity sha1-mnHEh0chjrylHlGmbaaCA4zct78= - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -6107,7 +6101,7 @@ vue-observe-visibility@^0.4.3: resolved "https://registry.yarnpkg.com/vue-observe-visibility/-/vue-observe-visibility-0.4.3.tgz#b2694a83c94b274f566e03a497df51540e2daedc" integrity sha512-YyyO3a5OUkgpmC0NEf+xWJR0jVdFWzVbKRDzUumOVMhfr3+jxXEycYNHCM3rEO5lcj3ZNJpDomZEYEx0Wqqh9A== -vue-resize@^0.4.3, vue-resize@^0.4.4, vue-resize@^0.4.5: +vue-resize@^0.4.3, vue-resize@^0.4.5: version "0.4.5" resolved "https://registry.yarnpkg.com/vue-resize/-/vue-resize-0.4.5.tgz#4777a23042e3c05620d9cbda01c0b3cc5e32dcea" integrity sha512-bhP7MlgJQ8TIkZJXAfDf78uJO+mEI3CaLABLjv0WNzr4CcGRGPIAItyWYnP6LsPA4Oq0WE+suidNs6dgpO4RHg== From a54c55a2e8e8522f4b67a94d0c3d5fcb725593fa Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 25 Mar 2019 19:56:23 +0100 Subject: [PATCH 0071/1371] fix: setting label tweak --- src/devtools/views/settings/GlobalPreferences.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/devtools/views/settings/GlobalPreferences.vue b/src/devtools/views/settings/GlobalPreferences.vue index e54d0b0dd..d4eee50cf 100644 --- a/src/devtools/views/settings/GlobalPreferences.vue +++ b/src/devtools/views/settings/GlobalPreferences.vue @@ -67,7 +67,7 @@ icon="warning" class="medium" /> - This may print warnings in the console + May print warnings in the console From 702f07c11a3acd7bcfc09041cfa0cb6989642fb0 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 25 Mar 2019 20:19:18 +0100 Subject: [PATCH 0072/1371] chore: v5.0.0 --- package.json | 4 ++-- shells/chrome/manifest.json | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 75ec2c36a..a5dc31e05 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-devtools", - "version": "5.0.0-beta.5", + "version": "5.0.0", "description": "devtools for Vue.js!", "main": "index.js", "scripts": { @@ -86,4 +86,4 @@ "engines": { "node": ">=8.10" } -} +} \ No newline at end of file diff --git a/shells/chrome/manifest.json b/shells/chrome/manifest.json index 0582600d8..0a6db9a3b 100644 --- a/shells/chrome/manifest.json +++ b/shells/chrome/manifest.json @@ -1,13 +1,13 @@ { "name": "Vue.js devtools", - "version": "5.0.0.5", - "version_name": "5.0.0 beta 5", + "version": "5.0.0", + "version_name": "5.0.0", "description": "Chrome and Firefox DevTools extension for debugging Vue.js applications.", "manifest_version": 2, "icons": { - "16": "icons/16-beta.png", - "48": "icons/48-beta.png", - "128": "icons/128-beta.png" + "16": "icons/16.png", + "48": "icons/48.png", + "128": "icons/128.png" }, "browser_action": { "default_icon": { From 44e8b128f88422b550211056982c57ff31fa4de0 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 25 Mar 2019 20:45:33 +0100 Subject: [PATCH 0073/1371] chore: update screenshots --- media/screenshot-shadow.png | Bin 56893 -> 87407 bytes media/screenshot.png | Bin 54687 -> 77485 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/media/screenshot-shadow.png b/media/screenshot-shadow.png index d747569e0bdf8f6b08a094f7e3f376609e361c23..94ceb0d80f9b313faa2bb69633ba349ae4c8dec0 100644 GIT binary patch literal 87407 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 WhN9WB;BGkZ3!FJ4QuJEK`~Lx3Zmr}1 literal 56893 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 Si7^uRPv)J%+amFgzW*1oN2gW* diff --git a/media/screenshot.png b/media/screenshot.png index 5c3628d11b5c02aca7acb09fe8fdf420f4846633..4fa3615bc4aae85affd87012a52ba308b6b857e1 100644 GIT binary patch literal 77485 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≶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 From 7f9f168fcac61b9816bf4bd388b8c5381a89c655 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 25 Mar 2019 21:45:15 +0100 Subject: [PATCH 0074/1371] fix: clone Buffer check, closes #874 --- src/backend/hook.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/hook.js b/src/backend/hook.js index a51fd07ed..1cbe2f3af 100644 --- a/src/backend/hook.js +++ b/src/backend/hook.js @@ -169,7 +169,7 @@ export function installHook (target) { var allParents = [] var allChildren = [] - var useBuffer = typeof Buffer !== 'undefined' + var useBuffer = typeof Buffer !== 'undefined' && typeof Buffer.isBuffer === 'function' if (typeof circular === 'undefined') { circular = true } From df40dc451399447fb07a9e44eb3743469fddda7f Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 25 Mar 2019 21:54:26 +0100 Subject: [PATCH 0075/1371] chore: v5.0.1 --- package.json | 2 +- shells/chrome/manifest.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index a5dc31e05..54942d019 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-devtools", - "version": "5.0.0", + "version": "5.0.1", "description": "devtools for Vue.js!", "main": "index.js", "scripts": { diff --git a/shells/chrome/manifest.json b/shells/chrome/manifest.json index 0a6db9a3b..00058da9b 100644 --- a/shells/chrome/manifest.json +++ b/shells/chrome/manifest.json @@ -1,7 +1,7 @@ { "name": "Vue.js devtools", - "version": "5.0.0", - "version_name": "5.0.0", + "version": "5.0.1", + "version_name": "5.0.1", "description": "Chrome and Firefox DevTools extension for debugging Vue.js applications.", "manifest_version": 2, "icons": { From c8b2e863cf1445ea065bc969f5561588ebded618 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 25 Mar 2019 21:56:26 +0100 Subject: [PATCH 0076/1371] chore: fix screenshot url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f10e8423a..277a0cf6a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # vue-devtools -

screenshot

+

screenshot

## Installation From df7b3050c213b6ae58a6e3c98f952b95cf291313 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 25 Mar 2019 22:09:57 +0100 Subject: [PATCH 0077/1371] fix: settings not scrollable --- src/devtools/views/settings/SettingsTab.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/devtools/views/settings/SettingsTab.vue b/src/devtools/views/settings/SettingsTab.vue index 9c6c21e46..01d7464d8 100644 --- a/src/devtools/views/settings/SettingsTab.vue +++ b/src/devtools/views/settings/SettingsTab.vue @@ -19,6 +19,7 @@ export default { diff --git a/src/devtools/components/StateInspector.vue b/src/devtools/components/StateInspector.vue index fff24469f..b789d095a 100644 --- a/src/devtools/components/StateInspector.vue +++ b/src/devtools/components/StateInspector.vue @@ -1,13 +1,14 @@ + diff --git a/packages/app-frontend/src/components/StateInspector.vue b/packages/app-frontend/src/components/StateInspector.vue index b789d095a..c8ffbca3c 100644 --- a/packages/app-frontend/src/components/StateInspector.vue +++ b/packages/app-frontend/src/components/StateInspector.vue @@ -23,40 +23,18 @@ /> {{ toDisplayType(dataType) }} -
- - -
+ :fields="state[dataType]" + :force-collapse="forceCollapse" + /> diff --git a/packages/shell-dev/target/router.js b/packages/shell-dev/target/router.js index 1b37e0d8f..ad7d11112 100644 --- a/packages/shell-dev/target/router.js +++ b/packages/shell-dev/target/router.js @@ -27,8 +27,9 @@ const routes = [ component: RouteWithBeforeEnter, beforeEnter: (to, from, next) => { next() - }}, + } }, { path: '/route-with-redirect', redirect: '/route-one' }, + { path: '/route-with-redirect-function', redirect: () => '/route-one' }, { path: '/route-with-alias', component: RouteWithAlias, alias: '/this-is-the-alias' }, { path: '/route-with-dynamic-component', component: DynamicComponent, props: true }, { path: '/route-with-props', @@ -36,7 +37,7 @@ const routes = [ props: { username: 'My Username', id: 99 - }}, + } }, { path: '/route-with-props-default', component: RouteWithProps }, { path: '/route-parent', component: ParentRoute, From 6b0f8eb302077245318466966227a739b9dee071 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 31 Oct 2019 00:22:31 +0100 Subject: [PATCH 0220/1371] fix(DataField): replace is not a function --- packages/app-frontend/src/components/DataField.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app-frontend/src/components/DataField.vue b/packages/app-frontend/src/components/DataField.vue index 20d818e21..cd33d038b 100644 --- a/packages/app-frontend/src/components/DataField.vue +++ b/packages/app-frontend/src/components/DataField.vue @@ -399,7 +399,7 @@ export default { displayedKey () { let key = this.field.key - if (key) { + if (typeof key === 'string') { key = key.replace('__vue__', '') } return key From f2efbe3859e7d87198c62596ff84efa1f6608970 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 31 Oct 2019 00:32:06 +0100 Subject: [PATCH 0221/1371] chore: v5.3.2 --- package.json | 2 +- packages/shell-chrome/manifest.json | 4 ++-- packages/shell-electron/package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index bde1b499f..6dd273458 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-devtools", - "version": "5.3.1", + "version": "5.3.2", "description": "devtools for Vue.js!", "private": true, "workspaces": [ diff --git a/packages/shell-chrome/manifest.json b/packages/shell-chrome/manifest.json index b14be2e28..bfb347972 100644 --- a/packages/shell-chrome/manifest.json +++ b/packages/shell-chrome/manifest.json @@ -1,7 +1,7 @@ { "name": "Vue.js devtools", - "version": "5.3.1", - "version_name": "5.3.1", + "version": "5.3.2", + "version_name": "5.3.2", "description": "Chrome and Firefox DevTools extension for debugging Vue.js applications.", "manifest_version": 2, "icons": { diff --git a/packages/shell-electron/package.json b/packages/shell-electron/package.json index e8bf4f54b..c9c3cff0a 100644 --- a/packages/shell-electron/package.json +++ b/packages/shell-electron/package.json @@ -1,6 +1,6 @@ { "name": "@vue/devtools", - "version": "5.3.1", + "version": "5.3.2", "description": "StandAlone vue-devtools", "repository": { "url": "https://github.com/vuejs/vue-devtools.git", From d971b4adb959f393fcdc95cc3c61dccdbc9a6ad7 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 25 Nov 2019 16:40:48 +0100 Subject: [PATCH 0222/1371] fix: use stoage for settings version, closes #1097 --- packages/app-frontend/src/App.vue | 5 +++-- packages/app-frontend/src/views/settings/SettingsTab.vue | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/app-frontend/src/App.vue b/packages/app-frontend/src/App.vue index 2f66ac745..eebca0270 100644 --- a/packages/app-frontend/src/App.vue +++ b/packages/app-frontend/src/App.vue @@ -166,6 +166,7 @@ + + diff --git a/packages/shell-dev-vue3/src/Child.vue b/packages/shell-dev-vue3/src/Child.vue new file mode 100644 index 000000000..a76ff793d --- /dev/null +++ b/packages/shell-dev-vue3/src/Child.vue @@ -0,0 +1,21 @@ + + + diff --git a/packages/shell-dev-vue3/src/main.js b/packages/shell-dev-vue3/src/main.js new file mode 100644 index 000000000..01433bca2 --- /dev/null +++ b/packages/shell-dev-vue3/src/main.js @@ -0,0 +1,4 @@ +import { createApp } from 'vue' +import App from './App.vue' + +createApp(App).mount('#app') diff --git a/packages/shell-dev-vue3/target.html b/packages/shell-dev-vue3/target.html new file mode 100644 index 000000000..142c8413f --- /dev/null +++ b/packages/shell-dev-vue3/target.html @@ -0,0 +1,13 @@ + + + + + + + +
+
+ + + + diff --git a/packages/shell-dev-vue3/webpack.config.js b/packages/shell-dev-vue3/webpack.config.js new file mode 100644 index 000000000..e81149534 --- /dev/null +++ b/packages/shell-dev-vue3/webpack.config.js @@ -0,0 +1,52 @@ +const path = require('path') +const { createConfig } = require('@vue-devtools/build-tools') +const { VueLoaderPlugin } = require('vue-loader') +const openInEditor = require('launch-editor-middleware') + +module.exports = createConfig({ + context: __dirname, + entry: { + target: './src/main.js', + hook: require.resolve('@vue-devtools/shell-host/src/hook.js'), + backend: require.resolve('@vue-devtools/shell-host/src/backend.js'), + }, + output: { + path: path.join(__dirname, '/build'), + publicPath: '/target/', + filename: '[name].js' + }, + resolve: { + alias: { + vue: require.resolve('vue/dist/vue.esm.js'), + }, + symlinks: false, + }, + module: { + rules: [ + { + test: /\.vue$/, + loader: require.resolve('vue-loader'), + }, + ], + }, + devtool: '#cheap-module-source-map', + devServer: { + port: 8090, + quiet: true, + before (app) { + app.use('/__open-in-editor', openInEditor()) + }, + proxy: { + '/': { + target: 'http://localhost:8091', + bypass: (req, res, proxyOptions) => { + if (req.url.startsWith('/target')) { + return req.url + } + }, + }, + }, + }, +}) + +module.exports.plugins[0] = new VueLoaderPlugin() diff --git a/packages/shell-dev/package.json b/packages/shell-dev/package.json index 5f46de139..6af149d9d 100644 --- a/packages/shell-dev/package.json +++ b/packages/shell-dev/package.json @@ -2,9 +2,7 @@ "name": "@vue-devtools/shell-dev", "version": "0.0.0", "dependencies": { - "@vue-devtools/app-backend": "^0.0.0", - "@vue-devtools/app-frontend": "^0.0.0", - "@vue-devtools/shared-utils": "^0.0.0" + "@vue-devtools/shell-host": "^0.0.0" }, "devDependencies": { "@vue-devtools/build-tools": "^0.0.0", @@ -13,4 +11,4 @@ "webpack-cli": "^3.1.0", "webpack-dev-server": "^3.1.8" } -} \ No newline at end of file +} diff --git a/packages/shell-dev/target/Counter.vue b/packages/shell-dev/src/Counter.vue similarity index 100% rename from packages/shell-dev/target/Counter.vue rename to packages/shell-dev/src/Counter.vue diff --git a/packages/shell-dev/target/EventChild.vue b/packages/shell-dev/src/EventChild.vue similarity index 100% rename from packages/shell-dev/target/EventChild.vue rename to packages/shell-dev/src/EventChild.vue diff --git a/packages/shell-dev/target/EventChild1.vue b/packages/shell-dev/src/EventChild1.vue similarity index 100% rename from packages/shell-dev/target/EventChild1.vue rename to packages/shell-dev/src/EventChild1.vue diff --git a/packages/shell-dev/target/EventChildCond.vue b/packages/shell-dev/src/EventChildCond.vue similarity index 100% rename from packages/shell-dev/target/EventChildCond.vue rename to packages/shell-dev/src/EventChildCond.vue diff --git a/packages/shell-dev/target/Events.vue b/packages/shell-dev/src/Events.vue similarity index 100% rename from packages/shell-dev/target/Events.vue rename to packages/shell-dev/src/Events.vue diff --git a/packages/shell-dev/target/Functional.vue b/packages/shell-dev/src/Functional.vue similarity index 100% rename from packages/shell-dev/target/Functional.vue rename to packages/shell-dev/src/Functional.vue diff --git a/packages/shell-dev/target/Init.vue b/packages/shell-dev/src/Init.vue similarity index 100% rename from packages/shell-dev/target/Init.vue rename to packages/shell-dev/src/Init.vue diff --git a/packages/shell-dev/target/MyClass.js b/packages/shell-dev/src/MyClass.js similarity index 100% rename from packages/shell-dev/target/MyClass.js rename to packages/shell-dev/src/MyClass.js diff --git a/packages/shell-dev/target/NativeTypes.vue b/packages/shell-dev/src/NativeTypes.vue similarity index 100% rename from packages/shell-dev/target/NativeTypes.vue rename to packages/shell-dev/src/NativeTypes.vue diff --git a/packages/shell-dev/target/NoProp.vue b/packages/shell-dev/src/NoProp.vue similarity index 100% rename from packages/shell-dev/target/NoProp.vue rename to packages/shell-dev/src/NoProp.vue diff --git a/packages/shell-dev/target/Other.vue b/packages/shell-dev/src/Other.vue similarity index 100% rename from packages/shell-dev/target/Other.vue rename to packages/shell-dev/src/Other.vue diff --git a/packages/shell-dev/target/RefTester.vue b/packages/shell-dev/src/RefTester.vue similarity index 100% rename from packages/shell-dev/target/RefTester.vue rename to packages/shell-dev/src/RefTester.vue diff --git a/packages/shell-dev/target/Target.vue b/packages/shell-dev/src/Target.vue similarity index 100% rename from packages/shell-dev/target/Target.vue rename to packages/shell-dev/src/Target.vue diff --git a/packages/shell-dev/target/TransitionExample.vue b/packages/shell-dev/src/TransitionExample.vue similarity index 100% rename from packages/shell-dev/target/TransitionExample.vue rename to packages/shell-dev/src/TransitionExample.vue diff --git a/packages/shell-dev/target/VuexObject.vue b/packages/shell-dev/src/VuexObject.vue similarity index 100% rename from packages/shell-dev/target/VuexObject.vue rename to packages/shell-dev/src/VuexObject.vue diff --git a/packages/shell-dev/target/dynamic-module.js b/packages/shell-dev/src/dynamic-module.js similarity index 100% rename from packages/shell-dev/target/dynamic-module.js rename to packages/shell-dev/src/dynamic-module.js diff --git a/packages/shell-dev/target/index.js b/packages/shell-dev/src/index.js similarity index 100% rename from packages/shell-dev/target/index.js rename to packages/shell-dev/src/index.js diff --git a/packages/shell-dev/target/router.js b/packages/shell-dev/src/router.js similarity index 100% rename from packages/shell-dev/target/router.js rename to packages/shell-dev/src/router.js diff --git a/packages/shell-dev/target/router/ChildRoute.vue b/packages/shell-dev/src/router/ChildRoute.vue similarity index 100% rename from packages/shell-dev/target/router/ChildRoute.vue rename to packages/shell-dev/src/router/ChildRoute.vue diff --git a/packages/shell-dev/target/router/NamedRoute.vue b/packages/shell-dev/src/router/NamedRoute.vue similarity index 100% rename from packages/shell-dev/target/router/NamedRoute.vue rename to packages/shell-dev/src/router/NamedRoute.vue diff --git a/packages/shell-dev/target/router/ParentRoute.vue b/packages/shell-dev/src/router/ParentRoute.vue similarity index 100% rename from packages/shell-dev/target/router/ParentRoute.vue rename to packages/shell-dev/src/router/ParentRoute.vue diff --git a/packages/shell-dev/target/router/RouteOne.vue b/packages/shell-dev/src/router/RouteOne.vue similarity index 100% rename from packages/shell-dev/target/router/RouteOne.vue rename to packages/shell-dev/src/router/RouteOne.vue diff --git a/packages/shell-dev/target/router/RouteTwo.vue b/packages/shell-dev/src/router/RouteTwo.vue similarity index 100% rename from packages/shell-dev/target/router/RouteTwo.vue rename to packages/shell-dev/src/router/RouteTwo.vue diff --git a/packages/shell-dev/target/router/RouteWithAlias.vue b/packages/shell-dev/src/router/RouteWithAlias.vue similarity index 100% rename from packages/shell-dev/target/router/RouteWithAlias.vue rename to packages/shell-dev/src/router/RouteWithAlias.vue diff --git a/packages/shell-dev/target/router/RouteWithBeforeEnter.vue b/packages/shell-dev/src/router/RouteWithBeforeEnter.vue similarity index 100% rename from packages/shell-dev/target/router/RouteWithBeforeEnter.vue rename to packages/shell-dev/src/router/RouteWithBeforeEnter.vue diff --git a/packages/shell-dev/target/router/RouteWithParams.vue b/packages/shell-dev/src/router/RouteWithParams.vue similarity index 100% rename from packages/shell-dev/target/router/RouteWithParams.vue rename to packages/shell-dev/src/router/RouteWithParams.vue diff --git a/packages/shell-dev/target/router/RouteWithProps.vue b/packages/shell-dev/src/router/RouteWithProps.vue similarity index 100% rename from packages/shell-dev/target/router/RouteWithProps.vue rename to packages/shell-dev/src/router/RouteWithProps.vue diff --git a/packages/shell-dev/target/router/RouteWithQuery.vue b/packages/shell-dev/src/router/RouteWithQuery.vue similarity index 100% rename from packages/shell-dev/target/router/RouteWithQuery.vue rename to packages/shell-dev/src/router/RouteWithQuery.vue diff --git a/packages/shell-dev/target/router/Router.vue b/packages/shell-dev/src/router/Router.vue similarity index 100% rename from packages/shell-dev/target/router/Router.vue rename to packages/shell-dev/src/router/Router.vue diff --git a/packages/shell-dev/target/store.js b/packages/shell-dev/src/store.js similarity index 100% rename from packages/shell-dev/target/store.js rename to packages/shell-dev/src/store.js diff --git a/packages/shell-dev/webpack.config.js b/packages/shell-dev/webpack.config.js index 7b031bcac..861a444f2 100644 --- a/packages/shell-dev/webpack.config.js +++ b/packages/shell-dev/webpack.config.js @@ -4,10 +4,10 @@ const openInEditor = require('launch-editor-middleware') module.exports = createConfig({ entry: { - devtools: './src/devtools.js', - backend: './src/backend.js', - hook: './src/hook.js', - target: './target/index.js' + devtools: require.resolve('@vue-devtools/shell-host/src/devtools.js'), + backend: require.resolve('@vue-devtools/shell-host/src/backend.js'), + hook: require.resolve('@vue-devtools/shell-host/src/hook.js'), + target: './src/index.js' }, output: { path: path.join(__dirname, '/build'), diff --git a/packages/shell-electron/package.json b/packages/shell-electron/package.json index 74b463f9a..03fd0874c 100644 --- a/packages/shell-electron/package.json +++ b/packages/shell-electron/package.json @@ -37,4 +37,4 @@ "webpack": "^4.19.0", "webpack-cli": "^3.1.0" } -} \ No newline at end of file +} diff --git a/packages/shell-host/index.html b/packages/shell-host/index.html new file mode 100644 index 000000000..8e0241c4a --- /dev/null +++ b/packages/shell-host/index.html @@ -0,0 +1,39 @@ + + + + + Plain Shell + + + + +
Not Vue
+ +
+
+
+ + + diff --git a/packages/shell-host/package.json b/packages/shell-host/package.json new file mode 100644 index 000000000..53b40115e --- /dev/null +++ b/packages/shell-host/package.json @@ -0,0 +1,17 @@ +{ + "name": "@vue-devtools/shell-host", + "version": "0.0.0", + "scripts": { + "dev": "webpack-dev-server --inline --hot --no-info" + }, + "dependencies": { + "@vue-devtools/app-backend": "^0.0.0", + "@vue-devtools/app-frontend": "^0.0.0", + "@vue-devtools/shared-utils": "^0.0.0" + }, + "devDependencies": { + "webpack": "^4.19.0", + "webpack-cli": "^3.1.0", + "webpack-dev-server": "^3.1.8" + } +} diff --git a/packages/shell-dev/src/backend.js b/packages/shell-host/src/backend.js similarity index 100% rename from packages/shell-dev/src/backend.js rename to packages/shell-host/src/backend.js diff --git a/packages/shell-dev/src/devtools.js b/packages/shell-host/src/devtools.js similarity index 95% rename from packages/shell-dev/src/devtools.js rename to packages/shell-host/src/devtools.js index bd692d2d2..1b6809a4d 100644 --- a/packages/shell-dev/src/devtools.js +++ b/packages/shell-host/src/devtools.js @@ -11,7 +11,7 @@ target.onload = () => { initDevTools({ connect (cb) { // 3. called by devtools: inject backend - inject('./build/backend.js', () => { + inject('./target/backend.js', () => { // 4. send back bridge cb(new Bridge({ listen (fn) { diff --git a/packages/shell-dev/src/hook.js b/packages/shell-host/src/hook.js similarity index 100% rename from packages/shell-dev/src/hook.js rename to packages/shell-host/src/hook.js diff --git a/packages/shell-host/webpack.config.js b/packages/shell-host/webpack.config.js new file mode 100644 index 000000000..93b971d07 --- /dev/null +++ b/packages/shell-host/webpack.config.js @@ -0,0 +1,22 @@ +const path = require('path') +const { createConfig } = require('@vue-devtools/build-tools') +const openInEditor = require('launch-editor-middleware') + +module.exports = createConfig({ + entry: { + devtools: './src/devtools.js', + }, + output: { + path: path.join(__dirname, '/build'), + publicPath: '/build/', + filename: '[name].js' + }, + devtool: '#cheap-module-source-map', + devServer: { + port: 8091, + quiet: true, + before (app) { + app.use('/__open-in-editor', openInEditor()) + } + } +}) diff --git a/yarn.lock b/yarn.lock index 4851d3290..a37ce797b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,21 +3,35 @@ "@babel/code-frame@^7.0.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + 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.0.0" + "@babel/highlight" "^7.8.3" -"@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== +"@babel/highlight@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" + integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/parser@^7.8.6": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.8.tgz#4c3b7ce36db37e0629be1f0d50a571d2f86f6cd4" + integrity sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA== + +"@babel/types@^7.8.6": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.7.tgz#1fc9729e1acbb2337d5b6977a63979b4819f5d1d" + integrity sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@cypress/listr-verbose-renderer@0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" @@ -37,46 +51,53 @@ lodash.once "^4.1.1" "@electron/get@^1.0.1": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.6.0.tgz#3e1437fa0f436ce9d4e0c27a4c330835ae6d74ed" - integrity sha512-xuvAzbN9iBApfAMvW0hKUpxHR5wPVbG9RaoSTbpu/WaHISDu0MVfMWYhfeU0X730CpBV0G2RkLgwAs9WDan3GA== + version "1.9.0" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.9.0.tgz#7fa6e61d7ff50fb82a8a41f437af7de3b97aa9a5" + integrity sha512-OBIKtF6ttIJotDXe4KJMUyTBO4xMii+mFjlA8R4CORuD4HvCUaCK3lPjhdTRCvuEv6gzWNbAvd9DNBv0v780lw== dependencies: debug "^4.1.1" env-paths "^2.2.0" fs-extra "^8.1.0" got "^9.6.0" + progress "^2.0.3" sanitize-filename "^1.6.2" - sumchecker "^3.0.0" + sumchecker "^3.0.1" optionalDependencies: global-agent "^2.0.2" global-tunnel-ng "^2.7.1" -"@hapi/address@2.x.x": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.2.tgz#1c794cd6dbf2354d1eb1ef10e0303f573e1c7222" - integrity sha512-O4QDrx+JoGKZc6aN64L04vqa7e41tIiLU+OvKdcYaEMP97UttL0f9GIi9/0A4WAMx0uBd6SidDIhktZhgOcN8Q== - -"@hapi/bourne@1.x.x": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" - integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== - -"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": - version "8.3.2" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.3.2.tgz#91e7188edebc5d876f0b91a860f555ff06f0782b" - integrity sha512-NP5SG4bzix+EtSMtcudp8TvI0lB46mXNo8uFpTDw6tqxGx4z5yx+giIunEFA0Z7oUO4DuWrOJV9xqR2tJVEdyA== +"@hapi/address@^2.1.2": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== -"@hapi/joi@^15.0.3": - version "15.1.1" - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" - integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== - dependencies: - "@hapi/address" "2.x.x" - "@hapi/bourne" "1.x.x" - "@hapi/hoek" "8.x.x" - "@hapi/topo" "3.x.x" +"@hapi/formula@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@hapi/formula/-/formula-1.2.0.tgz#994649c7fea1a90b91a0a1e6d983523f680e10cd" + integrity sha512-UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewGA== + +"@hapi/hoek@^8.2.4", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/joi@^16.1.8": + version "16.1.8" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-16.1.8.tgz#84c1f126269489871ad4e2decc786e0adef06839" + integrity sha512-wAsVvTPe+FwSrsAurNt5vkg3zo+TblvC5Bb1zMVK6SJzZqw9UrJnexxR+76cpePmtUZKHAPxcQ2Bf7oVHyahhg== + dependencies: + "@hapi/address" "^2.1.2" + "@hapi/formula" "^1.2.0" + "@hapi/hoek" "^8.2.4" + "@hapi/pinpoint" "^1.0.2" + "@hapi/topo" "^3.1.3" + +"@hapi/pinpoint@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@hapi/pinpoint/-/pinpoint-1.0.2.tgz#025b7a36dbbf4d35bf1acd071c26b20ef41e0d13" + integrity sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ== -"@hapi/topo@3.x.x": +"@hapi/topo@^3.1.3": version "3.1.6" resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== @@ -95,6 +116,11 @@ dependencies: defer-to-connect "^1.0.1" +"@types/color-name@^1.1.1": + version "1.1.1" + 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" @@ -114,26 +140,95 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/node@*", "@types/node@^12.0.12": - version "12.11.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.11.7.tgz#57682a9771a3f7b09c2497f28129a0462966524a" - integrity sha512-JNbGaHFCLwgHn/iCckiGSOZ1XYHsKFwREtzPwSGCVld1SGhOlmZw2D4ZI94HQCrBHbADzW9m4LER/8olJTRGHA== +"@types/node@*": + version "13.9.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.1.tgz#96f606f8cd67fb018847d9b61e93997dabdefc72" + integrity sha512-E6M6N0blf/jiZx8Q3nb0vNaswQeEyn0XlupO+xN6DtJ6r6IT4nXrTry7zhIfYvFCl3/8Cu6WIysmUBKiqV0bqQ== + +"@types/node@^12.0.12": + version "12.12.30" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.30.tgz#3501e6f09b954de9c404671cefdbcc5d9d7c45f6" + integrity sha512-sz9MF/zk6qVr3pAnM0BSQvYIBK44tS75QC5N+VbWSE4DjCV/pJ+UzCW/F+vVnl7TkOPcuwQureKNtSSwjBTaMg== + +"@vue/compiler-core@3.0.0-alpha.8": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.0-alpha.8.tgz#849dab7a96c482a00e03a273f075e5d12fd7aaa8" + integrity sha512-TCio1nuzuVUS9oeQycHsjRFTO9Bs4qO43S/73+MyBe/8ZHfhXn0nx6sxYfLytxnoyeo2Z4TGTevGQq7LUKO32g== + dependencies: + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + "@vue/shared" "3.0.0-alpha.8" + estree-walker "^0.8.1" + source-map "^0.6.1" -"@vue/component-compiler-utils@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.0.0.tgz#d16fa26b836c06df5baaeb45f3d80afc47e35634" - integrity sha512-am+04/0UX7ektcmvhYmrf84BDVAD8afFOf4asZjN84q8xzxFclbk5x0MtxuKGfp+zjN5WWPJn3fjFAWtDdIGSw== +"@vue/compiler-dom@3.0.0-alpha.8": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.0-alpha.8.tgz#82431ffaec5e889cd069954f4f5b90406f123108" + integrity sha512-y/zGe9mIDIqm6l0xVKA0+AQ2iCQZoqt16JKViP6r4TEcF8FdB9cAGV4vC07fGv3HeI2FpaHL5j8KQ15k9BP+Gg== + dependencies: + "@vue/compiler-core" "3.0.0-alpha.8" + "@vue/shared" "3.0.0-alpha.8" + +"@vue/compiler-sfc@^3.0.0-alpha.4": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.0.0-alpha.8.tgz#e4f9a98df1af6e60f9e704e3dfd7fa3ca5edd65a" + integrity sha512-BQezRHe7F7z+J9Qb3UbVP5G34nW5xiWoxvDjDJIkqwMMJ6p8s9ITz8LRSXMP+cTgpRbN0l5VqmA2NuhCffAdPg== + dependencies: + "@vue/compiler-core" "3.0.0-alpha.8" + "@vue/compiler-dom" "3.0.0-alpha.8" + "@vue/shared" "3.0.0-alpha.8" + consolidate "^0.15.1" + hash-sum "^2.0.0" + lru-cache "^5.1.1" + merge-source-map "^1.1.0" + postcss "^7.0.21" + postcss-selector-parser "^6.0.2" + source-map "^0.6.1" + +"@vue/component-compiler-utils@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.1.1.tgz#d4ef8f80292674044ad6211e336a302e4d2a6575" + integrity sha512-+lN3nsfJJDGMNz7fCpcoYIORrXo0K3OTsdr8jCM7FuqdI4+70TY6gxY6viJ2Xi1clqyPg7LpeOWwjF31vSMmUw== dependencies: consolidate "^0.15.1" hash-sum "^1.0.2" lru-cache "^4.1.2" merge-source-map "^1.1.0" postcss "^7.0.14" - postcss-selector-parser "^5.0.0" - prettier "1.16.3" + postcss-selector-parser "^6.0.2" + prettier "^1.18.2" source-map "~0.6.1" vue-template-es2015-compiler "^1.9.0" +"@vue/reactivity@3.0.0-alpha.8": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.0-alpha.8.tgz#18ece6e7f6872b586035038e868b9a60ee347929" + integrity sha512-E5FLripB13siehg/40TYSWhtV1DrgyjeSEjxm28RreJ2Rr1YS8yX+v9o8jS13RbkZeqhoHnY5DEnb5dsHMf/JA== + dependencies: + "@vue/shared" "3.0.0-alpha.8" + +"@vue/runtime-core@3.0.0-alpha.8": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.0-alpha.8.tgz#a45a8020a059c78c316642a22932255ace58d212" + integrity sha512-nxFzUAZIeY/5P7wTQdkBWyWcINESHINb8sO5fzEs/QKqd0NwoFKopxuWUyeU81L5kbYG03dhiik1q2+VFABS2A== + dependencies: + "@vue/reactivity" "3.0.0-alpha.8" + "@vue/shared" "3.0.0-alpha.8" + +"@vue/runtime-dom@3.0.0-alpha.8": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.0-alpha.8.tgz#717ee80e73c2a4070d5db808f13227a9f0cd25d2" + integrity sha512-vGKtS81UE1AbRFwJyLhbezd+WrrsGrCt96idrygl4JAJhkNHVkLVJHoNRaF7UCqurAt3ay2O1JEyqRhyJHA/nA== + dependencies: + "@vue/runtime-core" "3.0.0-alpha.8" + "@vue/shared" "3.0.0-alpha.8" + csstype "^2.6.8" + +"@vue/shared@3.0.0-alpha.8": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.0-alpha.8.tgz#59dd820e8a7b98847624cb94cdfa89e97993fa3c" + integrity sha512-HcYWx9tU426lQOWOJ4Ht9DCNb1yN3dxe87Fhf1pMNPt4qdHycmCszyimwe48O3VgYWsPndWg7E/RmCh3yjkPpA== + "@vue/ui@^0.11.5": version "0.11.6" resolved "https://registry.yarnpkg.com/@vue/ui/-/ui-0.11.6.tgz#4b249774812e0025812adeb74b7078a4be43dfaf" @@ -299,11 +394,6 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -318,14 +408,14 @@ acorn-dynamic-import@^4.0.0: integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== acorn-jsx@^5.0.0, acorn-jsx@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" - integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== acorn@^6.0.2, acorn@^6.0.7, acorn@^6.1.1, acorn@^6.2.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" - integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== after@0.8.2: version "0.8.2" @@ -342,12 +432,12 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5, ajv@^6.9.1: + version "6.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" + integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== 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" @@ -399,6 +489,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -407,7 +505,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -aproba@^1.0.3, aproba@^1.1.1: +aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== @@ -417,14 +515,6 @@ arch@2.1.1: resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -458,12 +548,13 @@ array-flatten@^2.1.0: integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== array-includes@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" - integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= + version "3.1.1" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.7.0" + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" array-union@^1.0.1: version "1.0.2" @@ -482,6 +573,14 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +array.prototype.flat@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + arraybuffer.slice@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" @@ -531,7 +630,7 @@ async-each@^1.0.1: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== -async-limiter@^1.0.0, async-limiter@~1.0.0: +async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== @@ -555,22 +654,22 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -atob@^2.1.1: +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== autoprefixer@^9.1.5: - version "9.7.0" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.0.tgz#905ec19e50f04545fe9ff131182cc9ab25246901" - integrity sha512-j2IRvaCfrUxIiZun9ba4mhJ2omhw4OY88/yVzLO+lHhGBumAAK72PgM6gkbSN8iregPOn1ZlxGkmZh2CQ7X4AQ== + version "9.7.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.4.tgz#f8bf3e06707d047f0641d87aee8cfb174b2a5378" + integrity sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g== dependencies: - browserslist "^4.7.2" - caniuse-lite "^1.0.30001004" + browserslist "^4.8.3" + caniuse-lite "^1.0.30001020" chalk "^2.4.2" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^7.0.19" + postcss "^7.0.26" postcss-value-parser "^4.0.2" aws-sign2@~0.7.0: @@ -579,9 +678,9 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + version "1.9.1" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" + integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== babel-code-frame@^6.26.0: version "6.26.0" @@ -659,6 +758,13 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + blob@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" @@ -669,10 +775,10 @@ bluebird@3.5.0: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" integrity sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw= -bluebird@3.7.1, bluebird@^3.1.1, bluebird@^3.5.1, bluebird@^3.5.5: - version "3.7.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de" - integrity sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg== +bluebird@3.7.2, bluebird@^3.1.1, bluebird@^3.5.1, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" @@ -707,10 +813,10 @@ bonjour@^3.5.0: multicast-dns "^6.0.1" multicast-dns-service-types "^1.1.0" -boolean@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-2.0.2.tgz#f272d09a1a9372b080ddfe948232145d224c12b7" - integrity sha512-ymsbJQlux/uogyEWfsXJUYzuyoOzPyp6NvEV71s6/ptQR7ptKO9uHF+WZL2GRATDeN52EFhNyrIu+exNZKh3Cw== +boolean@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f" + integrity sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA== brace-expansion@^1.1.7: version "1.1.11" @@ -800,14 +906,14 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.2.tgz#1bb984531a476b5d389cedecb195b2cd69fb1348" - integrity sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw== +browserslist@^4.8.3: + version "4.9.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.9.1.tgz#01ffb9ca31a1aef7678128fc6a2253316aa7287c" + integrity sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw== dependencies: - caniuse-lite "^1.0.30001004" - electron-to-chromium "^1.3.295" - node-releases "^1.1.38" + caniuse-lite "^1.0.30001030" + electron-to-chromium "^1.3.363" + node-releases "^1.1.50" buble-loader@^0.5.1: version "0.5.1" @@ -851,9 +957,9 @@ buffer-xor@^1.0.3: integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" @@ -983,10 +1089,10 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001004: - version "1.0.30001005" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001005.tgz#823054210be638c725521edcb869435dae46728d" - integrity sha512-g78miZm1Z5njjYR216a5812oPiLgV1ssndgGxITHWUopmjUrCswMisA0a2kSB7a0vZRox6JOKhM51+efmYN8Mg== +caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001030: + version "1.0.30001035" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz#2bb53b8aa4716b2ed08e088d4dc816a5fe089a1e" + integrity sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ== caseless@~0.12.0: version "0.12.0" @@ -1013,6 +1119,14 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -1043,9 +1157,9 @@ chokidar@^2.0.2, chokidar@^2.1.8: fsevents "^1.2.7" chownr@^1.0.1, chownr@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" - integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== + 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.2: version "1.0.2" @@ -1159,11 +1273,23 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1217,11 +1343,11 @@ component-inherit@0.0.3: integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= compressible@~2.0.16: - version "2.0.17" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" - integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: - mime-db ">= 1.40.0 < 2" + mime-db ">= 1.43.0 < 2" compression@^1.7.4: version "1.7.4" @@ -1251,6 +1377,21 @@ concat-stream@1.6.2, concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" +concurrently@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-5.1.0.tgz#05523986ba7aaf4b58a49ddd658fab88fa783132" + integrity sha512-9ViZMu3OOCID3rBgU31mjBftro2chOop0G2u1olq1OuwRBVRw/GxHTg80TVJBUTJfoswMmEUeuOg1g1yu1X2dA== + dependencies: + chalk "^2.4.2" + date-fns "^2.0.1" + lodash "^4.17.15" + read-pkg "^4.0.1" + rxjs "^6.5.2" + spawn-command "^0.0.2-1" + supports-color "^6.1.0" + tree-kill "^1.2.2" + yargs "^13.3.0" + config-chain@^1.1.11: version "1.1.12" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" @@ -1269,11 +1410,6 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - consolidate@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" @@ -1335,15 +1471,10 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js@^2.6.5: - version "2.6.10" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" - integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA== - -core-js@^3.3.3: - version "3.3.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.3.5.tgz#58d20f48a95a07304b62ff752742b82b56431ed8" - integrity sha512-0J3K+Par/ZydhKg8pEiTcK/9d65/nqJOzY62uMkjeBmt05fDOt/khUVjDdh8TpeIuGQDy1yLDDCjiWN/8pFIuw== +core-js@^3.6.4: + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" + integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -1470,13 +1601,13 @@ css-parse@~2.0.0: css "^2.0.0" css-selector-tokenizer@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" - integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== + version "0.7.2" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz#11e5e27c9a48d90284f22d45061c303d7a25ad87" + integrity sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw== dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" + cssesc "^3.0.0" + fastparse "^1.1.2" + regexpu-core "^4.6.0" css@^2.0.0: version "2.2.4" @@ -1488,15 +1619,15 @@ css@^2.0.0: source-map-resolve "^0.5.2" urix "^0.1.0" -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" - integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== +csstype@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" + integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== cyclist@^1.0.1: version "1.0.1" @@ -1550,9 +1681,9 @@ d3-axis@1: integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ== d3-brush@1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.3.tgz#a04900a71fa5390f7f7afe1504b02a382709f380" - integrity sha512-v8bbYyCFKjyCzFk/tdWqXwDykY8YWqhXYjcYxfILIit085VZOpj4XJKOMccTsvWxgzSLMJQg5SiqHjslsipEDg== + version "1.1.5" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.5.tgz#066b8e84d17b192986030446c97c0fba7e1bacdc" + integrity sha512-rEaJ5gHlgLxXugWjIkolTA0OyMvw8UWU1imYXy1v642XyyswmI1ybKOv05Ft+ewq+TFmdliD3VuK0pRp1VT/5A== dependencies: d3-dispatch "1" d3-drag "1" @@ -1586,31 +1717,31 @@ d3-contour@1: d3-array "^1.1.1" d3-dispatch@1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.5.tgz#e25c10a186517cd6c82dd19ea018f07e01e39015" - integrity sha512-vwKx+lAqB1UuCeklr6Jh1bvC4SZgbSqbkGBLClItFBIYH4vqDJCA7qfoy14lXmJdnBOdxndAMxjCbImJYW7e6g== + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" + integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== d3-drag@1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.4.tgz#ba9331d68158ad14cf0b4b28a8afa9e78c7d99ad" - integrity sha512-ICPurDETFAelF1CTHdIyiUM4PsyZLaM+7oIBhmyP+cuVjze5vDZ8V//LdOFjg0jGnFIZD/Sfmk0r95PSiu78rw== + version "1.2.5" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" + integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== dependencies: d3-dispatch "1" d3-selection "1" d3-dsv@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.1.1.tgz#aaa830ecb76c4b5015572c647cc6441e3c7bb701" - integrity sha512-1EH1oRGSkeDUlDRbhsFytAXU6cAmXFzc52YUe6MRlPClmWb85MP1J5x+YJRzya4ynZWnbELdSAvATFW/MbxaXw== + version "1.2.0" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c" + integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g== dependencies: commander "2" iconv-lite "0.4" rw "1" d3-ease@1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.5.tgz#8ce59276d81241b1b72042d6af2d40e76d936ffb" - integrity sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.6.tgz#ebdb6da22dfac0a22222f2d4da06f66c416a0ec0" + integrity sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ== d3-fetch@1: version "1.1.2" @@ -1630,43 +1761,43 @@ d3-force@1: d3-timer "1" d3-format@1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.1.tgz#c45f74b17c5a290c072a4ba7039dd19662cd5ce6" - integrity sha512-TUswGe6hfguUX1CtKxyG2nymO+1lyThbkS1ifLX0Sr+dOQtAD5gkrffpHnx+yHNKUZ0Bmg5T4AjUQwugPDrm0g== + version "1.4.3" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.3.tgz#4e8eb4dff3fdcb891a8489ec6e698601c41b96f1" + integrity sha512-mm/nE2Y9HgGyjP+rKIekeITVgBtX97o1nrvHCWX8F/yBYyevUTvu9vb5pUnKwrcSw7o7GuwMOWjS9gFDs4O+uQ== d3-geo@1: - version "1.11.6" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.11.6.tgz#134f2ef035ff75a448075fafdea92702a2e0e0cf" - integrity sha512-z0J8InXR9e9wcgNtmVnPTj0TU8nhYT6lD/ak9may2PdKqXIeHUr8UbFLoCtrPYNsjv6YaLvSDQVl578k6nm7GA== + version "1.11.9" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.11.9.tgz#77eaed14ba62fc2c0aef55cd2943849c866f7ae6" + integrity sha512-9edcH6J3s/Aa3KJITWqFJbyB/8q3mMlA9Fi7z6yy+FAYMnRaxmC7jBhUnsINxVWD14GmqX3DK8uk7nV6/Ekt4A== dependencies: d3-array "1" d3-hierarchy@1: - version "1.1.8" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz#7a6317bd3ed24e324641b6f1e76e978836b008cc" - integrity sha512-L+GHMSZNwTpiq4rt9GEsNcpLa4M96lXMR8M/nMG9p5hBE0jy6C+3hWtyZMenPQdwla249iJy7Nx0uKt3n+u9+w== + version "1.1.9" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" + integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== d3-interpolate@1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.3.2.tgz#417d3ebdeb4bc4efcc8fd4361c55e4040211fd68" - integrity sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w== + version "1.4.0" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" + integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== dependencies: d3-color "1" d3-path@1: - version "1.0.8" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.8.tgz#4a0606a794d104513ec4a8af43525f374b278719" - integrity sha512-J6EfUNwcMQ+aM5YPOB8ZbgAZu6wc82f/0WFxrxwV6Ll8wBwLaHLKCqQ5Imub02JriCVVdPjgI+6P3a4EWJCxAg== + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== d3-polygon@1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.5.tgz#9a645a0a64ff6cbf9efda96ee0b4a6909184c363" - integrity sha512-RHhh1ZUJZfhgoqzWWuRhzQJvO7LavchhitSTHGu9oj6uuLFzYZVeBzaWTQ2qSO6bz2w55RMoOCf0MsLCDB6e0w== + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.6.tgz#0bf8cb8180a6dc107f518ddf7975e12abbfbd38e" + integrity sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ== d3-quadtree@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.6.tgz#d1ab2a95a7f27bbde88582c94166f6ae35f32056" - integrity sha512-NUgeo9G+ENQCQ1LsRr2qJg3MQ4DJvxcDNCiohdJGHt5gRhBW6orIB5m5FJ9kK3HNL8g9F4ERVoBzcEwQBfXWVA== + version "1.0.7" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135" + integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA== d3-random@1: version "1.1.2" @@ -1694,21 +1825,21 @@ d3-scale@2: d3-time-format "2" d3-selection@1, d3-selection@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.0.tgz#ab9ac1e664cf967ebf1b479cc07e28ce9908c474" - integrity sha512-EYVwBxQGEjLCKF2pJ4+yrErskDnz5v403qvAid96cNdCMr8rmCYfY5RGzWz24mdIbxmDf6/4EAH+K9xperD5jg== + version "1.4.1" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.1.tgz#98eedbbe085fbda5bafa2f9e3f3a2f4d7d622a98" + integrity sha512-BTIbRjv/m5rcVTfBs4AMBLKs4x8XaaLkwm28KWu9S2vKNqXkXt2AH2Qf0sdPZHjFxcWg/YL53zcqAz+3g4/7PA== d3-shape@1: - version "1.3.5" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.5.tgz#e81aea5940f59f0a79cfccac012232a8987c6033" - integrity sha512-VKazVR3phgD+MUCldapHD7P9kcrvPcexeX/PkMJmkUov4JM8IxsSg1DvbYoYich9AtdTsa5nNk2++ImPiDiSxg== + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== dependencies: d3-path "1" d3-time-format@2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.2.1.tgz#971f66aae3b8fb268040494986f41512d4d4dca6" - integrity sha512-VA6WqORO1+H1SvSzgl2oT0z3niANh3opa8Cencpen1LFthw/bEX71R/DgjPlWw78J4UHmD0jCPP1W0HpwMkhjg== + version "2.2.3" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.2.3.tgz#0c9a12ee28342b2037e5ea1cf0b9eb4dd75f29cb" + integrity sha512-RAHNnD8+XvC4Zc4d2A56Uw0yJoM7bsvOlJR33bclxq399Rak/b9bhvu/InjxdWhPtkgU53JJcleJTGkNRnN6IA== dependencies: d3-time "1" @@ -1718,14 +1849,14 @@ d3-time@1: integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== d3-timer@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.9.tgz#f7bb8c0d597d792ff7131e1c24a36dd471a471ba" - integrity sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg== + version "1.0.10" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" + integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== d3-transition@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.2.0.tgz#f538c0e21b2aa1f05f3e965f8567e81284b3b2b8" - integrity sha512-VJ7cmX/FPIPJYuaL2r1o1EMHLttvoIuZhhuAlRoOxDzogV8iQS6jYulDm3xEU3TqL80IZIhI551/ebmCMrkvhw== + version "1.3.2" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" + integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== dependencies: d3-color "1" d3-dispatch "1" @@ -1751,9 +1882,9 @@ d3-zoom@1: d3-transition "1" d3@^5.9.2: - version "5.12.0" - resolved "https://registry.yarnpkg.com/d3/-/d3-5.12.0.tgz#0ddeac879c28c882317cd439b495290acd59ab61" - integrity sha512-flYVMoVuhPFHd9zVCe2BxIszUWqBcd5fvQGMNRmSiBrgdnh6Vlruh60RJQTouAK9xPbOB0plxMvBm4MoyODXNg== + version "5.15.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-5.15.0.tgz#ffd44958e6a3cb8a59a84429c45429b8bca5677a" + integrity sha512-C+E80SL2nLLtmykZ6klwYj5rPqB5nlfN5LdWEAVdWPppqTD8taoJi2PxLZjPeYT8FFRR2yucXq+kBlOnnvZeLg== dependencies: d3-array "1" d3-axis "1" @@ -1799,19 +1930,24 @@ date-fns@^1.27.2: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== +date-fns@^2.0.1: + version "2.11.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.11.0.tgz#ec2b44977465b9dcb370021d5e6c019b19f36d06" + integrity sha512-8P1cDi8ebZyDxUyUprBXwidoEtiQAawYPGvpfb+Dg0G6JrQ+VozwOmm91xYC0vAv1+0VmLehEPb+isg4BGUFfA== + de-indent@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@3.2.6, debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: +debug@3.2.6, debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -1850,9 +1986,9 @@ decompress-response@^3.3.0: mimic-response "^1.0.0" deep-equal@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745" - integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw== + 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" @@ -1861,11 +1997,6 @@ deep-equal@^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" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -1880,9 +2011,9 @@ default-gateway@^4.2.0: ip-regex "^2.1.0" defer-to-connect@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.2.tgz#4bae758a314b034ae33902b5aac25a8dd6a8633e" - integrity sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw== + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" @@ -1931,20 +2062,15 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -1959,11 +2085,6 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -2051,15 +2172,15 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.295: - version "1.3.296" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.296.tgz#a1d4322d742317945285d3ba88966561b67f3ac8" - integrity sha512-s5hv+TSJSVRsxH190De66YHb50pBGTweT9XGWYu/LMR20KX6TsjFzObo36CjVAzM+PUeeKSBRtm/mISlCzeojQ== +electron-to-chromium@^1.3.363: + version "1.3.376" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.376.tgz#7cb7b5205564a06c8f8ecfbe832cbd47a1224bb1" + integrity sha512-cv/PYVz5szeMz192ngilmezyPNFkUjuynuL2vNdiqIrio440nfTDdc0JJU0TS2KHLSVCs9gBbt4CFqM+HcBnjw== electron@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-7.0.0.tgz#47a5b15ca213f32c20d85f82a1be615a74cdf55f" - integrity sha512-vrF1loRW1p0vQCbduqO0EZpo8ePJOuxUT6tSoUSU3lsbGK3VnlJop+0PpCIPzbe2K4G4Gk7WexH08V9se7mJcA== + version "7.1.14" + resolved "https://registry.yarnpkg.com/electron/-/electron-7.1.14.tgz#1a58aa5968677a4fe564442f3b72771166c8904c" + integrity sha512-y9Nbja4rl+5fPVw9e/lFudwRax3a+jenzS7WXzUkjF7GI8YFxNH2eH9K9PZFNuSwc/OOCja2ul70+D44tKTQEw== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" @@ -2071,9 +2192,9 @@ elegant-spinner@^1.0.1: integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= elliptic@^6.0.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.1.tgz#c380f5f909bf1b9b4428d028cd18d3b0efd6b52b" - integrity sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg== + version "6.5.2" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" + integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -2093,6 +2214,11 @@ emojis-list@^2.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + encodeurl@^1.0.2, encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -2183,32 +2309,33 @@ error-ex@^1.2.0, error-ex@^1.3.1: is-arrayish "^0.2.1" error-stack-parser@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.4.tgz#a757397dc5d9de973ac9a5d7d4e8ade7cfae9101" - integrity sha512-fZ0KkoxSjLFmhW5lHbUT3tLwy3nX1qEzMYo8koY1vrsAco53CMT1djnBSeC/wUjTEZRhZl9iRw7PaMaxfJ4wzQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== dependencies: - stackframe "^1.1.0" + stackframe "^1.1.1" -es-abstract@^1.12.0, es-abstract@^1.7.0: - version "1.16.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.0.tgz#d3a26dc9c3283ac9750dca569586e976d9dcc06d" - integrity sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg== +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1: + version "1.17.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" + integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== dependencies: - es-to-primitive "^1.2.0" + es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.0" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-inspect "^1.6.0" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" object-keys "^1.1.1" - string.prototype.trimleft "^2.1.0" - string.prototype.trimright "^2.1.0" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== +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" @@ -2240,25 +2367,25 @@ eslint-config-standard@^12.0.0: integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== eslint-import-resolver-node@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" - integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== + version "0.3.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" + integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== dependencies: debug "^2.6.9" - resolve "^1.5.0" + resolve "^1.13.1" -eslint-module-utils@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c" - integrity sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw== +eslint-module-utils@^2.4.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz#7878f7504824e1b857dd2505b59a8e5eda26a708" + integrity sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q== dependencies: - debug "^2.6.8" + debug "^2.6.9" pkg-dir "^2.0.0" eslint-plugin-cypress@^2.0.1: - version "2.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.7.0.tgz#117f14ce63698e4c4f3afea3d7e27025c8d504f0" - integrity sha512-52Lq5ePCD/8jc536e1RqtLfj33BAy1s7BlYgCjbG39J5kqUitcTlRY5i3NRoeAyPHueDwETsq0eASF44ugLosQ== + version "2.10.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.10.3.tgz#82eba7e014954149d590402eecd0d4e147cc7f14" + integrity sha512-CvFeoCquShfO8gHNIKA1VpUTz78WtknMebLemBd1lRbcmJNjwpqCqpQYUG/XVja8GjdX/e2TJXYa+EUBxehtUg== dependencies: globals "^11.12.0" @@ -2271,21 +2398,22 @@ eslint-plugin-es@^1.3.1: regexpp "^2.0.1" eslint-plugin-import@^2.14.0: - version "2.18.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" - integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== + version "2.20.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3" + integrity sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw== dependencies: array-includes "^3.0.3" + array.prototype.flat "^1.2.1" contains-path "^0.1.0" debug "^2.6.9" doctrine "1.5.0" eslint-import-resolver-node "^0.3.2" - eslint-module-utils "^2.4.0" + eslint-module-utils "^2.4.1" has "^1.0.3" minimatch "^3.0.4" object.values "^1.1.0" read-pkg-up "^2.0.0" - resolve "^1.11.0" + resolve "^1.12.0" eslint-plugin-node@^7.0.1: version "7.0.1" @@ -2402,9 +2530,9 @@ esprima@^4.0.0: integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.1.0.tgz#c5c0b66f383e7656404f86b31334d72524eddb48" + integrity sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q== dependencies: estraverse "^4.0.0" @@ -2420,6 +2548,11 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estree-walker@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.8.1.tgz#6230ce2ec9a5cb03888afcaf295f97d90aa52b79" + integrity sha512-H6cJORkqvrNziu0KX2hqOMAlA2CiuAxHeGJXSIoKA/KLv229Dw806J3II6mKTm5xiDX1At1EXCfsOQPB+tMB+g== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -2449,9 +2582,9 @@ eventemitter3@^4.0.0: integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== events@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" - integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" + integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== eventsource@^1.0.7: version "1.0.7" @@ -2481,16 +2614,17 @@ execa@0.10.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" - integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== +execa@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== dependencies: cross-spawn "^7.0.0" get-stream "^5.0.0" + human-signals "^1.1.1" is-stream "^2.0.0" merge-stream "^2.0.0" - npm-run-path "^3.0.0" + npm-run-path "^4.0.0" onetime "^5.1.0" p-finally "^2.0.0" signal-exit "^3.0.2" @@ -2640,22 +2774,22 @@ 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.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== 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: +fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fastparse@^1.1.1: +fastparse@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== @@ -2715,6 +2849,11 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -2808,9 +2947,9 @@ focus-visible@^4.1.5: integrity sha512-yo/njtk/BB4Z2euzaZe3CZrg4u5s5uEi7ZwbHBJS2quHx51N0mmcx9nTIiImUGlgy+vf26d0CcQluahBBBL/Fw== follow-redirects@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" - integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A== + version "1.10.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.10.0.tgz#01f5263aee921c6a54fb91667f08f4155ce169eb" + integrity sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ== dependencies: debug "^3.0.0" @@ -2890,13 +3029,6 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^1.2.5: - 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.6.0" - fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -2913,12 +3045,12 @@ fs.realpath@^1.0.0: integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + version "1.2.11" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" + integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw== dependencies: + bindings "^1.5.0" nan "^2.12.1" - node-pre-gyp "^0.12.0" function-bind@^1.1.1: version "1.1.1" @@ -2930,20 +3062,6 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" @@ -3000,10 +3118,10 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.1.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0" - integrity sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ== +glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3013,16 +3131,16 @@ glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: path-is-absolute "^1.0.0" global-agent@^2.0.2: - version "2.1.5" - resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.5.tgz#0e9b8367f7068bb6fa360a8f920499e1d873762f" - integrity sha512-pYJjCxxNBzYxo6iNO62JZn8iCFVbvpiM0zE4w/G5hBNIvLjnvzIeCVQPMKc3aK8ju5L7Q8NNI/oBSosU0eeSYw== + version "2.1.8" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.8.tgz#99d153662b2c04cbc1199ffbc081a3aa656ac50f" + integrity sha512-VpBe/rhY6Rw2VDOTszAMNambg+4Qv8j0yiTNDYEXXXxkUNGWLHp8A3ztK4YDBbFNcWF4rgsec6/5gPyryya/+A== dependencies: - boolean "^2.0.2" - core-js "^3.3.3" + boolean "^3.0.0" + core-js "^3.6.4" es6-error "^4.1.1" - matcher "^2.0.0" - roarr "^2.14.2" - semver "^6.3.0" + matcher "^2.1.0" + roarr "^2.15.2" + semver "^7.1.2" serialize-error "^5.0.0" global-dirs@^0.1.0: @@ -3083,14 +3201,12 @@ globals@^11.12.0, globals@^11.7.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globalthis@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.0.tgz#c5fb98213a9b4595f59cf3e7074f141b4169daae" - integrity sha512-vcCAZTJ3r5Qcu5l8/2oyVdoFwxKgfYnMTR2vwWeux/NAVZK3PwcMaWkdUIn4GJbmKuRK7xcvDsLuK+CKcXyodg== +globalthis@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" + integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw== dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - object-keys "^1.0.12" + define-properties "^1.1.3" globby@^6.1.0: version "6.1.0" @@ -3135,7 +3251,7 @@ har-schema@^2.0.0: resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= -har-validator@~5.1.0: +har-validator@~5.1.0, 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== @@ -3167,15 +3283,15 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= +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== has-value@^0.3.1: version "0.3.1" @@ -3208,7 +3324,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1, has@^1.0.3: +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== @@ -3228,6 +3344,11 @@ hash-sum@^1.0.2: resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= +hash-sum@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" + integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== + hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -3258,9 +3379,9 @@ homedir-polyfill@^1.0.1: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: - version "2.8.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" - integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== hpack.js@^2.1.6: version "2.1.6" @@ -3278,9 +3399,9 @@ html-entities@^1.2.1: integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= http-cache-semantics@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" - integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== http-deceiver@^1.2.7: version "1.2.7" @@ -3357,7 +3478,12 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -3386,13 +3512,6 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" - ignore@^4.0.2, ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -3414,9 +3533,9 @@ import-fresh@^2.0.0: resolve-from "^3.0.0" import-fresh@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" - integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -3491,7 +3610,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -3543,12 +3662,7 @@ ip@^1.1.0, ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" - integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== - -ipaddr.js@^1.9.0: +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== @@ -3594,10 +3708,10 @@ 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: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== is-ci@1.2.1: version "1.2.1" @@ -3621,9 +3735,9 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + 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" @@ -3666,11 +3780,9 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= - dependencies: - number-is-nan "^1.0.0" + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== is-fullwidth-code-point@^1.0.0: version "1.0.0" @@ -3739,6 +3851,11 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -3751,12 +3868,12 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= +is-regex@^1.0.4, is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== dependencies: - has "^1.0.1" + has "^1.0.3" is-stream@^1.1.0: version "1.1.0" @@ -3768,12 +3885,17 @@ 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-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + 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.0" + has-symbols "^1.0.1" is-typedarray@~1.0.0: version "1.0.0" @@ -3941,9 +4063,9 @@ kind-of@^5.0.0: integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + 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== launch-editor-middleware@^2.2.1: version "2.2.1" @@ -4046,7 +4168,7 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: +loader-utils@1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== @@ -4055,6 +4177,15 @@ loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2. emojis-list "^2.0.0" json5 "^1.0.1" +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -4081,7 +4212,7 @@ lodash.once@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash@4.17.15, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15: +lodash@4.17.15, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -4108,10 +4239,10 @@ log-update@^1.0.2: ansi-escapes "^1.0.0" cli-cursor "^1.0.2" -loglevel@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56" - integrity sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g== +loglevel@^1.6.6: + version "1.6.7" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz#b3e034233188c68b889f5b862415306f565e2c56" + integrity sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A== lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" @@ -4139,9 +4270,9 @@ lru-cache@^5.1.1: yallist "^3.0.2" magic-string@^0.25.3: - version "0.25.4" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.4.tgz#325b8a0a79fc423db109b77fd5a19183b7ba5143" - integrity sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw== + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== dependencies: sourcemap-codec "^1.4.4" @@ -4189,10 +4320,10 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -matcher@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-2.0.0.tgz#85fe38d97670dbd2a46590cf099401e2ffb4755c" - integrity sha512-nlmfSlgHBFx36j/Pl/KQPbIaqE8Zf0TqmSMjsuddHDg6PMSVgmyW9HpkLs0o0M1n2GIZ/S2BZBLIww/xjhiGng== +matcher@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-2.1.0.tgz#64e1041c15b993e23b786f93320a7474bf833c28" + integrity sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ== dependencies: escape-string-regexp "^2.0.0" @@ -4284,22 +4415,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - -"mime-db@>= 1.40.0 < 2": - version "1.42.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" - integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== +mime-db@1.43.0, "mime-db@>= 1.43.0 < 2": + version "1.43.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + version "2.1.26" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== dependencies: - mime-db "1.40.0" + mime-db "1.43.0" mime@1.6.0: version "1.6.0" @@ -4326,6 +4452,16 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mini-css-extract-plugin@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" + integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -4348,25 +4484,15 @@ 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.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= -minipass@^2.6.0, minipass@^2.8.6, 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.2.1: - 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.9.0" +minimist@^1.2.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== mississippi@^2.0.0: version "2.0.0" @@ -4408,7 +4534,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.x: +mkdirp@0.5.1, mkdirp@^0.5.1, mkdirp@~0.5.x: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= @@ -4492,15 +4618,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -4550,37 +4667,13 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^1.1.38: - version "1.1.39" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.39.tgz#c1011f30343aff5b633153b10ff691d278d08e8d" - integrity sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA== +node-releases@^1.1.50: + version "1.1.52" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.52.tgz#bcffee3e0a758e92e44ecfaecd0a47554b0bcba9" + integrity sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ== dependencies: semver "^6.3.0" -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - normalize-package-data@^2.3.2: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -4608,16 +4701,21 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + normalize-url@^4.1.0: version "4.5.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== - npm-conf@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" @@ -4626,14 +4724,6 @@ npm-conf@^1.1.3: config-chain "^1.1.11" pify "^3.0.0" -npm-packlist@^1.1.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" - integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -4641,23 +4731,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" - integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" @@ -4692,17 +4772,17 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== object-is@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" - integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= + version "1.0.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" + integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== -object-keys@^1.0.12, object-keys@^1.1.1: +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== @@ -4714,6 +4794,16 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -4722,12 +4812,12 @@ object.pick@^1.3.0: isobject "^3.0.1" object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== dependencies: define-properties "^1.1.3" - es-abstract "^1.12.0" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" has "^1.0.3" @@ -4782,16 +4872,16 @@ opn@^5.5.0: is-wsl "^1.1.0" optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" - fast-levenshtein "~2.0.4" + fast-levenshtein "~2.0.6" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" - wordwrap "~1.0.0" + word-wrap "~1.2.3" ora@^0.2.3: version "0.2.3" @@ -4815,7 +4905,7 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-homedir@^1.0.0, os-homedir@^1.0.1: +os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= @@ -4834,19 +4924,11 @@ os-locale@^3.0.0, os-locale@^3.1.0: lcid "^2.0.0" mem "^4.0.0" -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" @@ -4880,9 +4962,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== + version "2.2.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" + integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== dependencies: p-try "^2.0.0" @@ -4928,9 +5010,9 @@ p-try@^2.0.0: integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pako@~1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" - integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parallel-transform@^1.1.0: version "1.2.0" @@ -5035,9 +5117,9 @@ path-key@^2.0.0, path-key@^2.0.1: integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-key@^3.0.0, path-key@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3" - integrity sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg== + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: version "1.0.6" @@ -5125,10 +5207,10 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -popper.js@^1.15.0: - version "1.16.0" - resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.0.tgz#2e1816bcbbaa518ea6c2e15a466f4cb9c6e2fbb3" - integrity sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw== +popper.js@^1.16.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" + integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== portfinder@^1.0.25: version "1.0.25" @@ -5193,12 +5275,12 @@ postcss-modules-values@^1.3.0: icss-replace-symbols "^1.1.0" postcss "^6.0.1" -postcss-selector-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== +postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== dependencies: - cssesc "^2.0.0" + cssesc "^3.0.0" indexes-of "^1.0.1" uniq "^1.0.1" @@ -5208,9 +5290,9 @@ postcss-value-parser@^3.3.0: integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== postcss-value-parser@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" - integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" + integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== postcss@^6.0.1, postcss@^6.0.23: version "6.0.23" @@ -5221,10 +5303,10 @@ postcss@^6.0.1, postcss@^6.0.23: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.19: - version "7.0.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" - integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== +postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.21, postcss@^7.0.26: + version "7.0.27" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" + integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -5235,15 +5317,20 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= -prettier@1.16.3: - version "1.16.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.3.tgz#8c62168453badef702f34b45b6ee899574a6a65d" - integrity sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw== +prettier@^1.18.2: + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== process-nextick-args@~2.0.0: version "2.0.1" @@ -5255,7 +5342,7 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= -progress@^2.0.0: +progress@^2.0.0, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -5271,12 +5358,12 @@ proto-list@~1.2.1: integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= proxy-addr@~2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" - integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== dependencies: forwarded "~0.1.2" - ipaddr.js "1.9.0" + ipaddr.js "1.9.1" prr@~1.0.1: version "1.0.1" @@ -5295,10 +5382,10 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.24: - version "1.4.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" - integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== +psl@^1.1.24, psl@^1.1.28: + version "1.7.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" + integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== public-encrypt@^4.0.0: version "4.0.3" @@ -5347,7 +5434,7 @@ punycode@^1.2.4, punycode@^1.4.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -punycode@^2.1.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -5362,6 +5449,14 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -5412,16 +5507,6 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" @@ -5439,10 +5524,19 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== +read-pkg@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" + integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= + dependencies: + normalize-package-data "^2.3.2" + parse-json "^4.0.0" + pify "^3.0.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -5453,9 +5547,9 @@ read-pkg@^2.0.0: util-deprecate "~1.0.1" readable-stream@^3.0.6: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -5470,14 +5564,14 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== dependencies: regenerate "^1.4.0" -regenerate@^1.2.1, 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== @@ -5491,59 +5585,39 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexp.prototype.flags@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" - integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA== + 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.2" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regexpu-core@^4.5.4: - version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== +regexpu-core@^4.5.4, regexpu-core@^4.6.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== dependencies: regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= + unicode-match-property-value-ecmascript "^1.2.0" -regjsgen@^0.5.0: +regjsgen@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= - dependencies: - jsesc "~0.5.0" - -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== dependencies: jsesc "~0.5.0" @@ -5576,7 +5650,23 @@ request-progress@3.0.0: dependencies: throttleit "^1.0.0" -request@2.88.0, request@^2.88.0: +request-promise-core@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" + integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== + dependencies: + lodash "^4.17.15" + +request-promise-native@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" + integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== + dependencies: + request-promise-core "1.1.3" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@2.88.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== @@ -5602,6 +5692,32 @@ request@2.88.0, request@^2.88.0: tunnel-agent "^0.6.0" uuid "^3.3.2" +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5652,10 +5768,10 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.11.0, resolve@^1.5.0, resolve@^1.8.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.8.1: + version "1.15.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== dependencies: path-parse "^1.0.6" @@ -5699,7 +5815,7 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -5714,22 +5830,22 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -roarr@^2.14.2: - version "2.14.2" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.14.2.tgz#49a51bfe1fd6a399c061f4e5a710e02da8b88ac7" - integrity sha512-ibqv70DCUhGVMfPe0JSUHBZ9PKLhxdk8VJ/Y2M7vVr+L4VakW1CdVTU9cJQBbM2STQa84CgBAzd7hJGcnALGeg== +roarr@^2.15.2: + version "2.15.2" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.2.tgz#34f6229ae3c8c12167c4ae60f58fe75e79a1e394" + integrity sha512-jmaDhK9CO4YbQAV8zzCnq9vjAqeO489MS5ehZ+rXmFiPFFE6B+S9KYO6prjmLJ5A0zY3QxVlQdrIya7E/azz/Q== dependencies: - boolean "^2.0.2" + boolean "^3.0.0" detect-node "^2.0.4" - globalthis "^1.0.0" + globalthis "^1.0.1" json-stringify-safe "^5.0.1" semver-compare "^1.0.0" sprintf-js "^1.1.2" run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + version "2.4.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" + integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== dependencies: is-promise "^2.1.0" @@ -5745,11 +5861,6 @@ rw@1: resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= -rx@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" - integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= - rxjs@^5.0.0-beta.11: version "5.5.12" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" @@ -5757,10 +5868,10 @@ rxjs@^5.0.0-beta.11: dependencies: symbol-observable "1.0.1" -rxjs@^6.4.0: - version "6.5.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" - integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== +rxjs@^6.4.0, rxjs@^6.5.2, rxjs@^6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" + integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== dependencies: tslib "^1.9.0" @@ -5793,7 +5904,7 @@ sanitize-filename@^1.6.2: dependencies: truncate-utf8-bytes "^1.0.0" -sax@^1.2.4, sax@~1.2.4: +sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -5815,6 +5926,14 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +schema-utils@^2.6.1: + version "2.6.5" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" + integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + scrollparent@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/scrollparent/-/scrollparent-2.0.1.tgz#715d5b9cc57760fb22bdccc3befb5bfe06b1a317" @@ -5837,7 +5956,7 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -5847,6 +5966,11 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6" + integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA== + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -5873,11 +5997,16 @@ serialize-error@^5.0.0: dependencies: type-fest "^0.8.0" -serialize-javascript@^1.4.0, serialize-javascript@^1.7.0: +serialize-javascript@^1.4.0: version "1.9.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -5901,7 +6030,7 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -6018,9 +6147,9 @@ snapdragon@^0.8.1: use "^3.1.0" socket.io-adapter@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" - integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs= + version "1.1.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== socket.io-client@2.3.0: version "2.3.0" @@ -6092,26 +6221,33 @@ sockjs@0.3.19: faye-websocket "^0.10.0" uuid "^3.0.1" +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: - atob "^2.1.1" + atob "^2.1.2" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" urix "^0.1.0" source-map-support@~0.5.12: - version "0.5.15" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.15.tgz#20fe16f16e74644e21a396c78c841fa66e35df6c" - integrity sha512-wYF5aX1J0+V51BDT3Om7uXNn0ct2FWiV4bvwiGVefxkm+1S1o5jsecE5lb2U28DDblzxzxeIDbTVpXHI9D/9hA== + version "0.5.16" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -6137,9 +6273,14 @@ source-map@^0.7.3: integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== sourcemap-codec@^1.4.4: - version "1.4.6" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz#e30a74f0402bad09807640d39e971090a08ce1e9" - integrity sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg== + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spawn-command@^0.0.2-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= spdx-correct@^3.0.0: version "3.1.0" @@ -6243,23 +6384,23 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -stackframe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.1.0.tgz#e3fc2eb912259479c9822f7d1f1ff365bd5cbc83" - integrity sha512-Vx6W1Yvy+AM1R/ckVwcHQHV147pTPBKWCRLrXMuPrFVfvBUc3os7PR1QLIWCMhPpRg5eX9ojzbQIMLGBwyLjqg== +stackframe@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.1.1.tgz#ffef0a3318b1b60c3b58564989aca5660729ec71" + integrity sha512-0PlYhdKh6AfFxRyK/v+6/k+/mMfyiEBbTM5L94D0ZytQnJ166wuwoTYLHFWGbs2dpA8Rgq763KGWmN1EQEYHRQ== start-server-and-test@^1.7.1: - version "1.10.6" - resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.10.6.tgz#43355173e49a165b0ce9e928733b574bb877379c" - integrity sha512-Gr/TDePT4JczaoBiKZLZRIWmYgRcoGcFQePtPEHEvZFUuxbdUqTZozx8dqrlKl/67+pipg5OOtBH21U1oJXJIQ== + version "1.10.10" + resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.10.10.tgz#ad3dd8d389f9487214b617e884f85cca74244549" + integrity sha512-LCnngrqi4Ex7FDJwpzfByXK8SCAcITYJB5yj/K3k2onaBHcH6RMFf6q3Kz8iM7CLuJ3DZlzU76W6Ixwpt+n/sQ== dependencies: - bluebird "3.7.1" + bluebird "3.7.2" check-more-types "2.24.0" debug "4.1.1" - execa "2.1.0" + execa "3.4.0" lazy-ass "1.6.0" ps-tree "1.2.0" - wait-on "3.3.0" + wait-on "4.0.0" static-extend@^0.1.1: version "0.1.2" @@ -6274,6 +6415,11 @@ static-extend@^0.1.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + stream-browserify@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" @@ -6309,15 +6455,20 @@ stream-http@^2.7.2: xtend "^4.0.0" stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== stream-to-observable@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe" integrity sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4= +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -6327,7 +6478,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -6344,18 +6495,18 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.trimleft@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" - integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== +string.prototype.trimleft@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" + integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== dependencies: define-properties "^1.1.3" function-bind "^1.1.1" -string.prototype.trimright@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" - integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== +string.prototype.trimright@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" + integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== dependencies: define-properties "^1.1.3" function-bind "^1.1.1" @@ -6410,21 +6561,20 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: +strip-json-comments@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= style-resources-loader@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/style-resources-loader/-/style-resources-loader-1.2.1.tgz#7679d5dc2f27046b2fc2b83c1d5b6c1b8a9b820c" - integrity sha512-ekId7AwZRW429UjQo02CJTt0Y8GwoT9zidvJLq4lRTJbu0cghv9XNRmt9mS4MR41+gZwMRT0EpFzP68HDWLbXQ== + version "1.3.3" + resolved "https://registry.yarnpkg.com/style-resources-loader/-/style-resources-loader-1.3.3.tgz#e4b3ab93e7c3d1606e86f9549522a0b5c4ad6812" + integrity sha512-vDD2HyG6On8H9gWUN9O9q1eXR/JnXpCkNvpusvgFsRQ9JZGF9drzvwKEigR9vqlmUbXO2t/vIIabpYMmis0eAQ== dependencies: - glob "^7.1.2" - is-callable "^1.1.4" - is-plain-object "^2.0.4" + glob "^7.1.6" is-promise "^2.1.0" - loader-utils "^1.1.0" + loader-utils "^1.2.3" + schema-utils "^2.6.1" stylus-loader@^3.0.1: version "3.0.2" @@ -6449,10 +6599,10 @@ stylus@^0.54.5: semver "^6.0.0" source-map "^0.7.3" -sumchecker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.0.tgz#da5457b4605184575c76540e5e99cc777cb8ce4c" - integrity sha512-yreseuC/z4iaodVoq07XULEOO9p4jnQazO7mbrnDSvWAU/y2cbyIKs+gWJptfcGu9R+1l27K8Rkj0bfvqnBpgQ== +sumchecker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" + integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== dependencies: debug "^4.1.0" @@ -6475,6 +6625,13 @@ supports-color@^2.0.0: resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= +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== + dependencies: + has-flag "^4.0.0" + symbol-observable@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" @@ -6495,38 +6652,25 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^4: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - -terser-webpack-plugin@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" - integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== +terser-webpack-plugin@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" + integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^1.7.0" + serialize-javascript "^2.1.2" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" worker-farm "^1.7.0" terser@^4.1.2: - version "4.3.9" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.9.tgz#e4be37f80553d02645668727777687dad26bbca8" - integrity sha512-NFGMpHjlzmyOtPL+fDw3G7+6Ueh/sz4mkaUYa4lJCxOPTNzd0Uj0aZJOmsDYoSQyfuVoWDMSWTPU3huyOm2zdA== + version "4.6.6" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.6.tgz#da2382e6cafbdf86205e82fb9a115bd664d54863" + integrity sha512-4lYPyeNmstjIIESr/ysHg2vUPRGf2tzF9z2yYwnowXVuVzLEamPN1Gfrz7f8I9uEPuHcbFlW4PLIAsJoxXyJ1g== dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -6591,6 +6735,11 @@ to-arraybuffer@^1.0.0: resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" @@ -6626,6 +6775,14 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" @@ -6634,6 +6791,11 @@ tough-cookie@~2.4.3: psl "^1.1.24" punycode "^1.4.1" +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + truncate-utf8-bytes@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" @@ -6642,9 +6804,9 @@ truncate-utf8-bytes@^1.0.0: utf8-byte-length "^1.0.1" tslib@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + version "1.11.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== tty-browserify@0.0.0: version "0.0.0" @@ -6728,15 +6890,15 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== union-value@^1.0.0: version "1.0.1" @@ -6869,16 +7031,16 @@ utils-merge@1.0.1: integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@^3.0.1, uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== v-tooltip@^3.0.0-alpha.11: - version "3.0.0-alpha.11" - resolved "https://registry.yarnpkg.com/v-tooltip/-/v-tooltip-3.0.0-alpha.11.tgz#e278dfb068246acdd7b633baba2135599b3b22ab" - integrity sha512-n95vxc1fBZrCkmkJTuH/O0if+8r7r+dFfZpOYCysYT+bIJiK4gxMiEo8olTMoIM1uxikiOGN+CMURcW764m6Xw== + version "3.0.0-alpha.13" + resolved "https://registry.yarnpkg.com/v-tooltip/-/v-tooltip-3.0.0-alpha.13.tgz#eca576b5d35486a55289bfbd9f8365540364feba" + integrity sha512-wX1ubmdxDhOnhBsY4+hHuKZQWZ15VdMqImJAoeMQKm+fF+OPSmMsM30m0Wcgt7G4fiX3Nylak4C7xXLbBoKjGg== dependencies: - popper.js "^1.15.0" + popper.js "^1.16.0" vue-resize "^0.4.5" v8-compile-cache@2.0.3: @@ -6909,9 +7071,9 @@ verror@1.10.0: extsprintf "^1.2.0" vm-browserify@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" - integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== vue-eslint-parser@^5.0.0: version "5.0.0" @@ -6930,17 +7092,28 @@ vue-hot-reload-api@^2.3.0: resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== -vue-loader@^15.7.1: - version "15.7.1" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.7.1.tgz#6ccacd4122aa80f69baaac08ff295a62e3aefcfd" - integrity sha512-fwIKtA23Pl/rqfYP5TSGK7gkEuLhoTvRYW+TU7ER3q9GpNLt/PjG5NLv3XHRDiTg7OPM1JcckBgds+VnAc+HbA== +vue-loader@^15.7.1, vue-loader@^15.9.0: + version "15.9.0" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.0.tgz#5d4b0378a4606188fc83e587ed23c94bc3a10998" + integrity sha512-FeDHvTSpwyLeF7LIV1PYkvqUQgTJ8UmOxhSlCyRSxaXCKk+M6NF4tDQsLsPPNeDPyR7TfRQ8MLg6v+8PsDV9xQ== dependencies: - "@vue/component-compiler-utils" "^3.0.0" + "@vue/component-compiler-utils" "^3.1.0" hash-sum "^1.0.2" loader-utils "^1.1.0" vue-hot-reload-api "^2.3.0" vue-style-loader "^4.1.0" +vue-loader@^16.0.0-alpha.1: + version "16.0.0-alpha.3" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.0.0-alpha.3.tgz#3471a3325a07a94e569aa281f83361819e4ad280" + integrity sha512-aC7TyXfzGs30mgru4iSfmEC8ZQigwpetaBpr/Q0PA0DZa5lEX9NMT7py9SCrXVq7mZeaYaz0QC/kzuUZtnYMHw== + dependencies: + chalk "^3.0.0" + hash-sum "^2.0.0" + loader-utils "^1.2.3" + merge-source-map "^1.1.0" + source-map "^0.6.1" + vue-observe-visibility@^0.4.3: version "0.4.6" resolved "https://registry.yarnpkg.com/vue-observe-visibility/-/vue-observe-visibility-0.4.6.tgz#878cb8ebcf3078e40807af29774e97105ebd519e" @@ -6952,9 +7125,9 @@ vue-resize@^0.4.5: integrity sha512-bhP7MlgJQ8TIkZJXAfDf78uJO+mEI3CaLABLjv0WNzr4CcGRGPIAItyWYnP6LsPA4Oq0WE+suidNs6dgpO4RHg== vue-router@^3.0.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.1.3.tgz#e6b14fabc0c0ee9fda0e2cbbda74b350e28e412b" - integrity sha512-8iSa4mGNXBjyuSZFCCO4fiKfvzqk+mhL0lnKuGcQtO1eoj8nq3CmbEG8FwK5QqoqwDgsjsf1GDuisDX4cdb/aQ== + version "3.1.6" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.1.6.tgz#45f5a3a3843e31702c061dd829393554e4328f89" + integrity sha512-GYhn2ynaZlysZMkFE5oCHRUTqE8BWs/a9YbKpNLi0i7xD6KG1EzDqpHQmv1F5gXjr8kL5iIVS8EOtRaVUEXTqA== vue-style-loader@^4.1.0: version "4.1.2" @@ -6965,9 +7138,9 @@ vue-style-loader@^4.1.0: loader-utils "^1.0.2" vue-template-compiler@^2.6.10: - version "2.6.10" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz#323b4f3495f04faa3503337a82f5d6507799c9cc" - integrity sha512-jVZkw4/I/HT5ZMvRnhv78okGusqe0+qH2A0Em0Cp8aq78+NK9TII263CDVz2QXZsIT+yyV/gZc/j/vlwa+Epyg== + version "2.6.11" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080" + integrity sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA== dependencies: de-indent "^1.0.2" he "^1.1.0" @@ -6987,25 +7160,35 @@ vue-virtual-scroller@^1.0.0-rc.2: vue-resize "^0.4.5" vue@^2.6.10: - version "2.6.10" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.10.tgz#a72b1a42a4d82a721ea438d1b6bf55e66195c637" - integrity sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ== + version "2.6.11" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5" + integrity sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ== + +vue@^3.0.0-alpha.4: + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.0-alpha.8.tgz#7157b9f614b5eb83261bbb3998d2b15b9158feab" + integrity sha512-yyW9pg9rOZYYCFr7ft76lZb30eAkTOiHuHU3KazqXz+G72uwFH0tbbgDO13Xfh/FhcnifxMhYnI8qyGNN8LNlA== + dependencies: + "@vue/compiler-dom" "3.0.0-alpha.8" + "@vue/runtime-dom" "3.0.0-alpha.8" + "@vue/shared" "3.0.0-alpha.8" vuex@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.1.tgz#0c264bfe30cdbccf96ab9db3177d211828a5910e" - integrity sha512-ER5moSbLZuNSMBFnEBVGhQ1uCBNJslH9W/Dw2W7GZN23UQA69uapP5GTT9Vm8Trc0PzBSVt6LzF3hGjmv41xcg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.3.tgz#f2ad73e3fb73691698b38c93f66e58e267947180" + integrity sha512-k8vZqNMSNMgKelVZAPYw5MNb2xWSmVgCKtYKAptvm9YtZiOXnRXFWu//Y9zQNORTrm3dNj1n/WaZZI26tIX6Mw== -wait-on@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-3.3.0.tgz#9940981d047a72a9544a97b8b5fca45b2170a082" - integrity sha512-97dEuUapx4+Y12aknWZn7D25kkjMk16PbWoYzpSdA8bYpVfS6hpl2a2pOWZ3c+Tyt3/i4/pglyZctG3J4V1hWQ== +wait-on@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-4.0.0.tgz#4d7e4485ca759968897fd3b0cc50720c0b4ca959" + integrity sha512-QrW3J8LzS5ADPfD9Rx5S6KJck66xkqyiFKQs9jmUTkIhiEOmkzU7WRZc+MjsnmkrgjitS2xQ4bb13hnlQnKBUQ== dependencies: - "@hapi/joi" "^15.0.3" - core-js "^2.6.5" + "@hapi/joi" "^16.1.8" + lodash "^4.17.15" minimist "^1.2.0" request "^2.88.0" - rx "^4.1.0" + request-promise-native "^1.0.8" + rxjs "^6.5.4" watchpack@^1.6.0: version "1.6.0" @@ -7024,9 +7207,9 @@ wbuf@^1.1.0, wbuf@^1.7.3: minimalistic-assert "^1.0.0" webpack-cli@^3.1.0: - version "3.3.9" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.9.tgz#79c27e71f94b7fe324d594ab64a8e396b9daa91a" - integrity sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A== + version "3.3.11" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631" + integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== dependencies: chalk "2.4.2" cross-spawn "6.0.5" @@ -7052,9 +7235,9 @@ webpack-dev-middleware@^3.7.2: webpack-log "^2.0.0" webpack-dev-server@^3.1.8: - version "3.9.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz#27c3b5d0f6b6677c4304465ac817623c8b27b89c" - integrity sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw== + version "3.10.3" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" + integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -7071,7 +7254,7 @@ webpack-dev-server@^3.1.8: ip "^1.1.5" is-absolute-url "^3.0.3" killable "^1.0.1" - loglevel "^1.6.4" + loglevel "^1.6.6" opn "^5.5.0" p-retry "^3.0.1" portfinder "^1.0.25" @@ -7114,9 +7297,9 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-map "~0.6.1" webpack@^4.19.0, webpack@^4.41.2: - version "4.41.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.2.tgz#c34ec76daa3a8468c9b61a50336d8e3303dce74e" - integrity sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A== + version "4.42.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz#b901635dd6179391d90740a63c93f76f39883eb8" + integrity sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w== dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-module-context" "1.8.5" @@ -7138,7 +7321,7 @@ webpack@^4.19.0, webpack@^4.41.2: node-libs-browser "^2.2.1" schema-utils "^1.0.0" tapable "^1.1.3" - terser-webpack-plugin "^1.4.1" + terser-webpack-plugin "^1.4.3" watchpack "^1.6.0" webpack-sources "^1.4.1" @@ -7174,23 +7357,16 @@ which@^1.2.14, which@^1.2.9, which@^1.3.1: isexe "^2.0.0" which@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.1.tgz#f1cf94d07a8e571b6ff006aeb91d0300c47ef0a4" - integrity sha512-N7GBZOTswtB9lkQBZA4+zAXrjEIWAUOB93AvzUiudRzRxhUdLURQ7D/gAIMY1gatT/LTbmbcv8SiYazy3eYB7w== + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== worker-farm@^1.5.2, worker-farm@^1.7.0: version "1.7.0" @@ -7236,11 +7412,9 @@ ws@^6.2.1: async-limiter "~1.0.0" ws@^7.1.2: - version "7.2.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.0.tgz#422eda8c02a4b5dba7744ba66eebbd84bcef0ec7" - integrity sha512-+SqNqFbwTm/0DC18KYzIsMTnEWpLwJsiasW/O17la4iDRRIO9uaHbvKiAS3AHgTiuuWerK/brj4O6MYZkei9xg== - dependencies: - async-limiter "^1.0.0" + version "7.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" + integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== ws@~6.1.0: version "6.1.4" @@ -7269,7 +7443,7 @@ yallist@^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, yallist@^3.0.3: +yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -7282,10 +7456,10 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^13.1.0: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== +yargs-parser@^13.1.0, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -7325,6 +7499,22 @@ yargs@13.2.4: y18n "^4.0.0" yargs-parser "^13.1.0" +yargs@^13.3.0: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + yauzl@2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From 4e331486cb791784225c820554e5134e750d9f81 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 15 Mar 2020 00:34:19 +0100 Subject: [PATCH 0233/1371] fix: data values --- packages/app-backend/src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app-backend/src/index.js b/packages/app-backend/src/index.js index e5ff9b33f..7ed981509 100644 --- a/packages/app-backend/src/index.js +++ b/packages/app-backend/src/index.js @@ -771,7 +771,7 @@ function processState (instance) { type.vuex && type.vuex.getters - const data = instance._data || instance.accessCache || {} + const data = instance._data || instance.renderContext || {} return Object.keys(data) .filter(key => ( From ba8edb4ed856f44a888c7d4baece6b221d893a2d Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 15 Mar 2020 16:40:29 +0100 Subject: [PATCH 0234/1371] fix: eslint --- packages/app-backend/src/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/app-backend/src/index.js b/packages/app-backend/src/index.js index 7ed981509..778535bbf 100644 --- a/packages/app-backend/src/index.js +++ b/packages/app-backend/src/index.js @@ -62,7 +62,7 @@ export function initBackend (_bridge) { } function connect ({ - Vue = null, + Vue = null } = {}) { initSharedData({ bridge @@ -211,6 +211,7 @@ function scan () { let inFragment = false let currentFragment = null + // eslint-disable-next-line no-inner-declarations function processInstance (instance) { if (instance) { if (rootInstances.indexOf(instance.$root) === -1) { @@ -260,7 +261,8 @@ function scan () { } if (hook.apps.length) { - for (const appRecord of hook.apps) { + for (let i = 0, l = hook.apps.length; i < l; i++) { + const appRecord = hook.apps[i] const id = appRecord.id = ++rootUID const instance = appRecord.app._container._vnode.component instance.__VUE_DEVTOOLS_ROOT_UID__ = id From 4dbddb72d64bbb47cae9821fd2c8c378b7e73906 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 15 Mar 2020 17:07:46 +0100 Subject: [PATCH 0235/1371] feat: component highlight --- packages/app-backend/src/components.js | 16 +++++ packages/app-backend/src/highlighter.js | 94 ++++++++++++++++++------- packages/app-backend/src/hook.js | 3 +- packages/app-backend/src/index.js | 7 +- 4 files changed, 87 insertions(+), 33 deletions(-) create mode 100644 packages/app-backend/src/components.js diff --git a/packages/app-backend/src/components.js b/packages/app-backend/src/components.js new file mode 100644 index 000000000..9e34353e7 --- /dev/null +++ b/packages/app-backend/src/components.js @@ -0,0 +1,16 @@ +export function isBeingDestroyed (instance) { + return instance._isBeingDestroyed || instance.isUnmounted +} + +export function getAppRecord (instance) { + if (instance.root) { + return instance.root.__VUE_DEVTOOLS_APP_RECORD__ + } +} + +export function isFragment (instance) { + const appRecord = getAppRecord(instance) + if (appRecord) { + return appRecord.types.Fragment === instance.subTree.type + } +} diff --git a/packages/app-backend/src/highlighter.js b/packages/app-backend/src/highlighter.js index b62ddc336..a9cbe88fa 100644 --- a/packages/app-backend/src/highlighter.js +++ b/packages/app-backend/src/highlighter.js @@ -2,6 +2,7 @@ import { inDoc, getComponentName, getComponentDisplayName } from '@utils/util' import SharedData from '@utils/shared-data' import { isBrowser, target } from '@utils/env' import { getInstanceName } from './index' +import { isFragment } from './components' let overlay let overlayContent @@ -79,7 +80,8 @@ export function unHighlight () { */ export function getInstanceOrVnodeRect (instance) { - const el = instance.$el || instance.elm + const el = instance.subTree ? instance.subTree.el : instance.$el || instance.elm + if (!isBrowser) { // TODO: Find position from instance or a vnode (for functional components). @@ -88,13 +90,67 @@ export function getInstanceOrVnodeRect (instance) { if (!inDoc(el)) { return } - if (instance._isFragment) { - return getFragmentRect(instance) + + if (isFragment(instance)) { + return getFragmentRect(instance.subTree) + } else if (instance._isFragment) { + return getLegacyFragmentRect(instance) } else if (el.nodeType === 1) { return el.getBoundingClientRect() } } +function createRect () { + const rect = { + top: 0, + bottom: 0, + left: 0, + right: 0, + get width () { return rect.right - rect.left }, + get height () { return rect.bottom - rect.top } + } + return rect +} + +function mergeRects (a, b) { + if (!a.top || b.top < a.top) { + a.top = b.top + } + if (!a.bottom || b.bottom > a.bottom) { + a.bottom = b.bottom + } + if (!a.left || b.left < a.left) { + a.left = b.left + } + if (!a.right || b.right > a.right) { + a.right = b.right + } +} + +function getFragmentRect (vnode) { + const rect = createRect() + + for (let i = 0, l = vnode.children.length; i < l; i++) { + const child = vnode.children[i] + let childRect + if (isFragment(child)) { + childRect = getFragmentRect(child) + } else if (child.el) { + const el = child.el + if (el.nodeType === 1 || el.getBoundingClientRect) { + childRect = el.getBoundingClientRect() + } else if (el.nodeType === 3 && el.data.trim()) { + childRect = getTextRect(el) + } + } + if (childRect) { + mergeRects(rect, childRect) + } + } + + return rect +} + /** * Highlight a fragment instance. * Loop over its node range and determine its bounding box. @@ -103,36 +159,20 @@ export function getInstanceOrVnodeRect (instance) { * @return {Object} */ -function getFragmentRect ({ _fragmentStart, _fragmentEnd }) { - let top, bottom, left, right +function getLegacyFragmentRect ({ _fragmentStart, _fragmentEnd }) { + const rect = createRect() util().mapNodeRange(_fragmentStart, _fragmentEnd, function (node) { - let rect + let childRect if (node.nodeType === 1 || node.getBoundingClientRect) { - rect = node.getBoundingClientRect() + childRect = node.getBoundingClientRect() } else if (node.nodeType === 3 && node.data.trim()) { - rect = getTextRect(node) + childRect = getTextRect(node) } - if (rect) { - if (!top || rect.top < top) { - top = rect.top - } - if (!bottom || rect.bottom > bottom) { - bottom = rect.bottom - } - if (!left || rect.left < left) { - left = rect.left - } - if (!right || rect.right > right) { - right = rect.right - } + if (childRect) { + mergeRects(rect, childRect) } }) - return { - top, - left, - width: right - left, - height: bottom - top - } + return rect } let range diff --git a/packages/app-backend/src/hook.js b/packages/app-backend/src/hook.js index 54c80da7a..6f2efc8b2 100644 --- a/packages/app-backend/src/hook.js +++ b/packages/app-backend/src/hook.js @@ -98,10 +98,11 @@ export function installHook (target) { } }) - hook.on('app:init', (app, version) => { + hook.on('app:init', (app, version, types) => { hook.apps.push({ app, version, + types }) }) diff --git a/packages/app-backend/src/index.js b/packages/app-backend/src/index.js index 778535bbf..3b04c8bf3 100644 --- a/packages/app-backend/src/index.js +++ b/packages/app-backend/src/index.js @@ -20,6 +20,7 @@ import { } from '@utils/util' import SharedData, { init as initSharedData } from '@utils/shared-data' import { isBrowser, target } from '@utils/env' +import { isBeingDestroyed } from './components' // hook should have been injected before this executes. const hook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__ @@ -266,6 +267,7 @@ function scan () { const id = appRecord.id = ++rootUID const instance = appRecord.app._container._vnode.component instance.__VUE_DEVTOOLS_ROOT_UID__ = id + instance.__VUE_DEVTOOLS_APP_RECORD__ = appRecord rootInstances.push(instance) } } @@ -384,11 +386,6 @@ function getInternalInstanceChildren (instance) { } return [] } - -function isBeingDestroyed (instance) { - return instance._isBeingDestroyed || instance.isUnmounted -} - /** * Check if an instance is qualified. * From 7d5d35e1dca1cd90473abb662dba7798155ed2e4 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 15 Mar 2020 17:17:47 +0100 Subject: [PATCH 0236/1371] fix: classic data & computed support --- packages/app-backend/src/index.js | 12 ++++++++---- packages/shell-dev-vue3/src/Child.vue | 21 ++++++++++++++++++--- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/packages/app-backend/src/index.js b/packages/app-backend/src/index.js index 3b04c8bf3..86dd0b90a 100644 --- a/packages/app-backend/src/index.js +++ b/packages/app-backend/src/index.js @@ -380,7 +380,6 @@ function getInternalInstanceChildren (instance) { if (instance.$children) { return instance.$children } - console.log(instance.subTree.children) if (Array.isArray(instance.subTree.children)) { return instance.subTree.children.filter(vnode => !!vnode.component).map(vnode => vnode.component) } @@ -769,13 +768,18 @@ function processState (instance) { const getters = type.vuex && type.vuex.getters + const computedDefs = type.computed - const data = instance._data || instance.renderContext || {} + const data = instance._data || { + ...instance.data, + ...instance.renderContext + } || {} return Object.keys(data) .filter(key => ( !(props && key in props) && - !(getters && key in getters) + !(getters && key in getters) && + !(computedDefs && key in computedDefs) )) .map(key => ({ key, @@ -825,7 +829,7 @@ function processComputed (instance) { computedProp = { type, key, - value: instance[key] + value: instance.renderContext ? instance.renderContext[key] : instance[key] } } catch (e) { computedProp = { diff --git a/packages/shell-dev-vue3/src/Child.vue b/packages/shell-dev-vue3/src/Child.vue index a76ff793d..4bb8f91f6 100644 --- a/packages/shell-dev-vue3/src/Child.vue +++ b/packages/shell-dev-vue3/src/Child.vue @@ -1,5 +1,5 @@ diff --git a/packages/shell-dev/target/RefTester.vue b/packages/shell-dev/target/RefTester.vue index 94405aca6..0b017c358 100644 --- a/packages/shell-dev/target/RefTester.vue +++ b/packages/shell-dev/target/RefTester.vue @@ -1,13 +1,21 @@ @@ -15,7 +23,7 @@ diff --git a/packages/shell-dev/target/Target.vue b/packages/shell-dev/target/Target.vue index 1f469084f..bedd9681a 100644 --- a/packages/shell-dev/target/Target.vue +++ b/packages/shell-dev/target/Target.vue @@ -1,22 +1,42 @@ \ No newline at end of file + diff --git a/packages/shell-dev/target/index.js b/packages/shell-dev/target/index.js index af9f8cbc3..0bff85c0c 100644 --- a/packages/shell-dev/target/index.js +++ b/packages/shell-dev/target/index.js @@ -18,7 +18,7 @@ window.VUE_DEVTOOLS_CONFIG = { } const items = [] -for (var i = 0; i < 100; i++) { +for (let i = 0; i < 100; i++) { items.push({ id: i }) } diff --git a/packages/shell-dev/target/router.js b/packages/shell-dev/target/router.js index ad7d11112..3728b8667 100644 --- a/packages/shell-dev/target/router.js +++ b/packages/shell-dev/target/router.js @@ -23,23 +23,28 @@ const routes = [ { path: '/route-with-params/:username/:id', component: RouteWithParams }, { path: '/route-named', component: NamedRoute, name: 'NamedRoute' }, { path: '/route-with-query', component: RouteWithQuery }, - { path: '/route-with-before-enter', + { + path: '/route-with-before-enter', component: RouteWithBeforeEnter, beforeEnter: (to, from, next) => { next() - } }, + } + }, { path: '/route-with-redirect', redirect: '/route-one' }, { path: '/route-with-redirect-function', redirect: () => '/route-one' }, { path: '/route-with-alias', component: RouteWithAlias, alias: '/this-is-the-alias' }, { path: '/route-with-dynamic-component', component: DynamicComponent, props: true }, - { path: '/route-with-props', + { + path: '/route-with-props', component: RouteWithProps, props: { username: 'My Username', id: 99 - } }, + } + }, { path: '/route-with-props-default', component: RouteWithProps }, - { path: '/route-parent', + { + path: '/route-parent', component: ParentRoute, children: [ { path: '/route-child', component: ChildRoute } diff --git a/packages/shell-dev/target/router/NamedRoute.vue b/packages/shell-dev/target/router/NamedRoute.vue index e68fd580b..77b3c889a 100644 --- a/packages/shell-dev/target/router/NamedRoute.vue +++ b/packages/shell-dev/target/router/NamedRoute.vue @@ -7,4 +7,4 @@ \ No newline at end of file + diff --git a/packages/shell-dev/target/router/ParentRoute.vue b/packages/shell-dev/target/router/ParentRoute.vue index 27138e6d6..973c1ccb2 100644 --- a/packages/shell-dev/target/router/ParentRoute.vue +++ b/packages/shell-dev/target/router/ParentRoute.vue @@ -1,7 +1,7 @@ diff --git a/packages/shell-dev/target/router/RouteTwo.vue b/packages/shell-dev/target/router/RouteTwo.vue index ffa59b0ad..d0abb96da 100644 --- a/packages/shell-dev/target/router/RouteTwo.vue +++ b/packages/shell-dev/target/router/RouteTwo.vue @@ -8,4 +8,4 @@ export default { } - \ No newline at end of file + diff --git a/packages/shell-dev/target/router/RouteWithAlias.vue b/packages/shell-dev/target/router/RouteWithAlias.vue index 0a67a2ec8..d2ce1ebfb 100644 --- a/packages/shell-dev/target/router/RouteWithAlias.vue +++ b/packages/shell-dev/target/router/RouteWithAlias.vue @@ -7,4 +7,4 @@ \ No newline at end of file + diff --git a/packages/shell-dev/target/router/RouteWithBeforeEnter.vue b/packages/shell-dev/target/router/RouteWithBeforeEnter.vue index 479291b0a..fa73c0d23 100644 --- a/packages/shell-dev/target/router/RouteWithBeforeEnter.vue +++ b/packages/shell-dev/target/router/RouteWithBeforeEnter.vue @@ -7,4 +7,4 @@ \ No newline at end of file + diff --git a/packages/shell-dev/target/router/RouteWithParams.vue b/packages/shell-dev/target/router/RouteWithParams.vue index 0b8db1849..3a8596035 100644 --- a/packages/shell-dev/target/router/RouteWithParams.vue +++ b/packages/shell-dev/target/router/RouteWithParams.vue @@ -8,4 +8,4 @@ export default { } - \ No newline at end of file + diff --git a/packages/shell-dev/target/router/RouteWithProps.vue b/packages/shell-dev/target/router/RouteWithProps.vue index 34e7af10a..f9688898b 100644 --- a/packages/shell-dev/target/router/RouteWithProps.vue +++ b/packages/shell-dev/target/router/RouteWithProps.vue @@ -17,4 +17,4 @@ export default { } } } - \ No newline at end of file + diff --git a/packages/shell-dev/target/router/RouteWithQuery.vue b/packages/shell-dev/target/router/RouteWithQuery.vue index 759da6f26..ee14a427c 100644 --- a/packages/shell-dev/target/router/RouteWithQuery.vue +++ b/packages/shell-dev/target/router/RouteWithQuery.vue @@ -7,4 +7,4 @@ \ No newline at end of file + diff --git a/packages/shell-dev/target/router/Router.vue b/packages/shell-dev/target/router/Router.vue index ffdb05fb3..a3fe63de8 100644 --- a/packages/shell-dev/target/router/Router.vue +++ b/packages/shell-dev/target/router/Router.vue @@ -1,22 +1,78 @@ @@ -29,7 +85,7 @@ export default { this.$router.addRoutes([ { path: '/new-route', component: RouteOne } ]) - } + } } } diff --git a/yarn.lock b/yarn.lock index 4851d3290..860f98e67 100644 --- a/yarn.lock +++ b/yarn.lock @@ -51,6 +51,80 @@ global-agent "^2.0.2" global-tunnel-ng "^2.7.1" +"@evocateur/libnpmaccess@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845" + integrity sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + npm-package-arg "^6.1.0" + +"@evocateur/libnpmpublish@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz#55df09d2dca136afba9c88c759ca272198db9f1a" + integrity sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + aproba "^2.0.0" + figgy-pudding "^3.5.1" + get-stream "^4.0.0" + lodash.clonedeep "^4.5.0" + normalize-package-data "^2.4.0" + npm-package-arg "^6.1.0" + semver "^5.5.1" + ssri "^6.0.1" + +"@evocateur/npm-registry-fetch@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz#8c4c38766d8d32d3200fcb0a83f064b57365ed66" + integrity sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g== + dependencies: + JSONStream "^1.3.4" + bluebird "^3.5.1" + figgy-pudding "^3.4.1" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + npm-package-arg "^6.1.0" + safe-buffer "^5.1.2" + +"@evocateur/pacote@^9.6.3": + version "9.6.5" + resolved "https://registry.yarnpkg.com/@evocateur/pacote/-/pacote-9.6.5.tgz#33de32ba210b6f17c20ebab4d497efc6755f4ae5" + integrity sha512-EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + bluebird "^3.5.3" + cacache "^12.0.3" + chownr "^1.1.2" + figgy-pudding "^3.5.1" + get-stream "^4.1.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + make-fetch-happen "^5.0.0" + minimatch "^3.0.4" + minipass "^2.3.5" + mississippi "^3.0.0" + mkdirp "^0.5.1" + normalize-package-data "^2.5.0" + npm-package-arg "^6.1.0" + npm-packlist "^1.4.4" + npm-pick-manifest "^3.0.0" + osenv "^0.1.5" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + protoduck "^5.0.1" + rimraf "^2.6.3" + safe-buffer "^5.2.0" + semver "^5.7.0" + ssri "^6.0.1" + tar "^4.4.10" + unique-filename "^1.1.1" + which "^1.3.1" + "@hapi/address@2.x.x": version "2.1.2" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.2.tgz#1c794cd6dbf2354d1eb1ef10e0303f573e1c7222" @@ -83,6 +157,813 @@ dependencies: "@hapi/hoek" "^8.3.0" +"@lerna/add@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.21.0.tgz#27007bde71cc7b0a2969ab3c2f0ae41578b4577b" + integrity sha512-vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A== + dependencies: + "@evocateur/pacote" "^9.6.3" + "@lerna/bootstrap" "3.21.0" + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + npm-package-arg "^6.1.0" + p-map "^2.1.0" + semver "^6.2.0" + +"@lerna/bootstrap@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-3.21.0.tgz#bcd1b651be5b0970b20d8fae04c864548123aed6" + integrity sha512-mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/has-npm-version" "3.16.5" + "@lerna/npm-install" "3.16.5" + "@lerna/package-graph" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/rimraf-dir" "3.16.5" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.18.5" + "@lerna/symlink-binary" "3.17.0" + "@lerna/symlink-dependencies" "3.17.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + get-port "^4.2.0" + multimatch "^3.0.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + p-finally "^1.0.0" + p-map "^2.1.0" + p-map-series "^1.0.0" + p-waterfall "^1.0.0" + read-package-tree "^5.1.6" + semver "^6.2.0" + +"@lerna/changed@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-3.21.0.tgz#108e15f679bfe077af500f58248c634f1044ea0b" + integrity sha512-hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw== + dependencies: + "@lerna/collect-updates" "3.20.0" + "@lerna/command" "3.21.0" + "@lerna/listable" "3.18.5" + "@lerna/output" "3.13.0" + +"@lerna/check-working-tree@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-3.16.5.tgz#b4f8ae61bb4523561dfb9f8f8d874dd46bb44baa" + integrity sha512-xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ== + dependencies: + "@lerna/collect-uncommitted" "3.16.5" + "@lerna/describe-ref" "3.16.5" + "@lerna/validation-error" "3.13.0" + +"@lerna/child-process@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-3.16.5.tgz#38fa3c18064aa4ac0754ad80114776a7b36a69b2" + integrity sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg== + dependencies: + chalk "^2.3.1" + execa "^1.0.0" + strong-log-transformer "^2.0.0" + +"@lerna/clean@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-3.21.0.tgz#c0b46b5300cc3dae2cda3bec14b803082da3856d" + integrity sha512-b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/prompt" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/rimraf-dir" "3.16.5" + p-map "^2.1.0" + p-map-series "^1.0.0" + p-waterfall "^1.0.0" + +"@lerna/cli@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-3.18.5.tgz#c90c461542fcd35b6d5b015a290fb0dbfb41d242" + integrity sha512-erkbxkj9jfc89vVs/jBLY/fM0I80oLmJkFUV3Q3wk9J3miYhP14zgVEBsPZY68IZlEjT6T3Xlq2xO1AVaatHsA== + dependencies: + "@lerna/global-options" "3.13.0" + dedent "^0.7.0" + npmlog "^4.1.2" + yargs "^14.2.2" + +"@lerna/collect-uncommitted@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-3.16.5.tgz#a494d61aac31cdc7aec4bbe52c96550274132e63" + integrity sha512-ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg== + dependencies: + "@lerna/child-process" "3.16.5" + chalk "^2.3.1" + figgy-pudding "^3.5.1" + npmlog "^4.1.2" + +"@lerna/collect-updates@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-3.20.0.tgz#62f9d76ba21a25b7d9fbf31c02de88744a564bd1" + integrity sha512-qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/describe-ref" "3.16.5" + minimatch "^3.0.4" + npmlog "^4.1.2" + slash "^2.0.0" + +"@lerna/command@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-3.21.0.tgz#9a2383759dc7b700dacfa8a22b2f3a6e190121f7" + integrity sha512-T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/package-graph" "3.18.5" + "@lerna/project" "3.21.0" + "@lerna/validation-error" "3.13.0" + "@lerna/write-log-file" "3.13.0" + clone-deep "^4.0.1" + dedent "^0.7.0" + execa "^1.0.0" + is-ci "^2.0.0" + npmlog "^4.1.2" + +"@lerna/conventional-commits@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-3.22.0.tgz#2798f4881ee2ef457bdae027ab7d0bf0af6f1e09" + integrity sha512-z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA== + dependencies: + "@lerna/validation-error" "3.13.0" + conventional-changelog-angular "^5.0.3" + conventional-changelog-core "^3.1.6" + conventional-recommended-bump "^5.0.0" + fs-extra "^8.1.0" + get-stream "^4.0.0" + lodash.template "^4.5.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + pify "^4.0.1" + semver "^6.2.0" + +"@lerna/create-symlink@3.16.2": + version "3.16.2" + resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-3.16.2.tgz#412cb8e59a72f5a7d9463e4e4721ad2070149967" + integrity sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw== + dependencies: + "@zkochan/cmd-shim" "^3.1.0" + fs-extra "^8.1.0" + npmlog "^4.1.2" + +"@lerna/create@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-3.22.0.tgz#d6bbd037c3dc5b425fe5f6d1b817057c278f7619" + integrity sha512-MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw== + dependencies: + "@evocateur/pacote" "^9.6.3" + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/validation-error" "3.13.0" + camelcase "^5.0.0" + dedent "^0.7.0" + fs-extra "^8.1.0" + globby "^9.2.0" + init-package-json "^1.10.3" + npm-package-arg "^6.1.0" + p-reduce "^1.0.0" + pify "^4.0.1" + semver "^6.2.0" + slash "^2.0.0" + validate-npm-package-license "^3.0.3" + validate-npm-package-name "^3.0.0" + whatwg-url "^7.0.0" + +"@lerna/describe-ref@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-3.16.5.tgz#a338c25aaed837d3dc70b8a72c447c5c66346ac0" + integrity sha512-c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw== + dependencies: + "@lerna/child-process" "3.16.5" + npmlog "^4.1.2" + +"@lerna/diff@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-3.21.0.tgz#e6df0d8b9916167ff5a49fcb02ac06424280a68d" + integrity sha512-5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/validation-error" "3.13.0" + npmlog "^4.1.2" + +"@lerna/exec@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-3.21.0.tgz#17f07533893cb918a17b41bcc566dc437016db26" + integrity sha512-iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/profiler" "3.20.0" + "@lerna/run-topologically" "3.18.5" + "@lerna/validation-error" "3.13.0" + p-map "^2.1.0" + +"@lerna/filter-options@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-3.20.0.tgz#0f0f5d5a4783856eece4204708cc902cbc8af59b" + integrity sha512-bmcHtvxn7SIl/R9gpiNMVG7yjx7WyT0HSGw34YVZ9B+3xF/83N3r5Rgtjh4hheLZ+Q91Or0Jyu5O3Nr+AwZe2g== + dependencies: + "@lerna/collect-updates" "3.20.0" + "@lerna/filter-packages" "3.18.0" + dedent "^0.7.0" + figgy-pudding "^3.5.1" + npmlog "^4.1.2" + +"@lerna/filter-packages@3.18.0": + version "3.18.0" + resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-3.18.0.tgz#6a7a376d285208db03a82958cfb8172e179b4e70" + integrity sha512-6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ== + dependencies: + "@lerna/validation-error" "3.13.0" + multimatch "^3.0.0" + npmlog "^4.1.2" + +"@lerna/get-npm-exec-opts@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz#d1b552cb0088199fc3e7e126f914e39a08df9ea5" + integrity sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw== + dependencies: + npmlog "^4.1.2" + +"@lerna/get-packed@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-3.16.0.tgz#1b316b706dcee86c7baa55e50b087959447852ff" + integrity sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw== + dependencies: + fs-extra "^8.1.0" + ssri "^6.0.1" + tar "^4.4.8" + +"@lerna/github-client@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-3.22.0.tgz#5d816aa4f76747ed736ae64ff962b8f15c354d95" + integrity sha512-O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg== + dependencies: + "@lerna/child-process" "3.16.5" + "@octokit/plugin-enterprise-rest" "^6.0.1" + "@octokit/rest" "^16.28.4" + git-url-parse "^11.1.2" + npmlog "^4.1.2" + +"@lerna/gitlab-client@3.15.0": + version "3.15.0" + resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz#91f4ec8c697b5ac57f7f25bd50fe659d24aa96a6" + integrity sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q== + dependencies: + node-fetch "^2.5.0" + npmlog "^4.1.2" + whatwg-url "^7.0.0" + +"@lerna/global-options@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-3.13.0.tgz#217662290db06ad9cf2c49d8e3100ee28eaebae1" + integrity sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ== + +"@lerna/has-npm-version@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-3.16.5.tgz#ab83956f211d8923ea6afe9b979b38cc73b15326" + integrity sha512-WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q== + dependencies: + "@lerna/child-process" "3.16.5" + semver "^6.2.0" + +"@lerna/import@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-3.22.0.tgz#1a5f0394f38e23c4f642a123e5e1517e70d068d2" + integrity sha512-uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + "@lerna/prompt" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/validation-error" "3.13.0" + dedent "^0.7.0" + fs-extra "^8.1.0" + p-map-series "^1.0.0" + +"@lerna/info@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/info/-/info-3.21.0.tgz#76696b676fdb0f35d48c83c63c1e32bb5e37814f" + integrity sha512-0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/output" "3.13.0" + envinfo "^7.3.1" + +"@lerna/init@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-3.21.0.tgz#1e810934dc8bf4e5386c031041881d3b4096aa5c" + integrity sha512-6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/command" "3.21.0" + fs-extra "^8.1.0" + p-map "^2.1.0" + write-json-file "^3.2.0" + +"@lerna/link@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-3.21.0.tgz#8be68ff0ccee104b174b5bbd606302c2f06e9d9b" + integrity sha512-tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/package-graph" "3.18.5" + "@lerna/symlink-dependencies" "3.17.0" + p-map "^2.1.0" + slash "^2.0.0" + +"@lerna/list@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-3.21.0.tgz#42f76fafa56dea13b691ec8cab13832691d61da2" + integrity sha512-KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/listable" "3.18.5" + "@lerna/output" "3.13.0" + +"@lerna/listable@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-3.18.5.tgz#e82798405b5ed8fc51843c8ef1e7a0e497388a1a" + integrity sha512-Sdr3pVyaEv5A7ZkGGYR7zN+tTl2iDcinryBPvtuv20VJrXBE8wYcOks1edBTcOWsPjCE/rMP4bo1pseyk3UTsg== + dependencies: + "@lerna/query-graph" "3.18.5" + chalk "^2.3.1" + columnify "^1.5.4" + +"@lerna/log-packed@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-3.16.0.tgz#f83991041ee77b2495634e14470b42259fd2bc16" + integrity sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ== + dependencies: + byte-size "^5.0.1" + columnify "^1.5.4" + has-unicode "^2.0.1" + npmlog "^4.1.2" + +"@lerna/npm-conf@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-3.16.0.tgz#1c10a89ae2f6c2ee96962557738685300d376827" + integrity sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA== + dependencies: + config-chain "^1.1.11" + pify "^4.0.1" + +"@lerna/npm-dist-tag@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-3.18.5.tgz#9ef9abb7c104077b31f6fab22cc73b314d54ac55" + integrity sha512-xw0HDoIG6HreVsJND9/dGls1c+lf6vhu7yJoo56Sz5bvncTloYGLUppIfDHQr4ZvmPCK8rsh0euCVh2giPxzKQ== + dependencies: + "@evocateur/npm-registry-fetch" "^4.0.0" + "@lerna/otplease" "3.18.5" + figgy-pudding "^3.5.1" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + +"@lerna/npm-install@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-3.16.5.tgz#d6bfdc16f81285da66515ae47924d6e278d637d3" + integrity sha512-hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/get-npm-exec-opts" "3.13.0" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + signal-exit "^3.0.2" + write-pkg "^3.1.0" + +"@lerna/npm-publish@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-3.18.5.tgz#240e4039959fd9816b49c5b07421e11b5cb000af" + integrity sha512-3etLT9+2L8JAx5F8uf7qp6iAtOLSMj+ZYWY6oUgozPi/uLqU0/gsMsEXh3F0+YVW33q0M61RpduBoAlOOZnaTg== + dependencies: + "@evocateur/libnpmpublish" "^1.2.2" + "@lerna/otplease" "3.18.5" + "@lerna/run-lifecycle" "3.16.2" + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + pify "^4.0.1" + read-package-json "^2.0.13" + +"@lerna/npm-run-script@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-3.16.5.tgz#9c2ec82453a26c0b46edc0bb7c15816c821f5c15" + integrity sha512-1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ== + dependencies: + "@lerna/child-process" "3.16.5" + "@lerna/get-npm-exec-opts" "3.13.0" + npmlog "^4.1.2" + +"@lerna/otplease@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-3.18.5.tgz#b77b8e760b40abad9f7658d988f3ea77d4fd0231" + integrity sha512-S+SldXAbcXTEDhzdxYLU0ZBKuYyURP/ND2/dK6IpKgLxQYh/z4ScljPDMyKymmEvgiEJmBsPZAAPfmNPEzxjog== + dependencies: + "@lerna/prompt" "3.18.5" + figgy-pudding "^3.5.1" + +"@lerna/output@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/output/-/output-3.13.0.tgz#3ded7cc908b27a9872228a630d950aedae7a4989" + integrity sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg== + dependencies: + npmlog "^4.1.2" + +"@lerna/pack-directory@3.16.4": + version "3.16.4" + resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-3.16.4.tgz#3eae5f91bdf5acfe0384510ed53faddc4c074693" + integrity sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng== + dependencies: + "@lerna/get-packed" "3.16.0" + "@lerna/package" "3.16.0" + "@lerna/run-lifecycle" "3.16.2" + figgy-pudding "^3.5.1" + npm-packlist "^1.4.4" + npmlog "^4.1.2" + tar "^4.4.10" + temp-write "^3.4.0" + +"@lerna/package-graph@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.18.5.tgz#c740e2ea3578d059e551633e950690831b941f6b" + integrity sha512-8QDrR9T+dBegjeLr+n9WZTVxUYUhIUjUgZ0gvNxUBN8S1WB9r6H5Yk56/MVaB64tA3oGAN9IIxX6w0WvTfFudA== + dependencies: + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/validation-error" "3.13.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + semver "^6.2.0" + +"@lerna/package@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/package/-/package-3.16.0.tgz#7e0a46e4697ed8b8a9c14d59c7f890e0d38ba13c" + integrity sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw== + dependencies: + load-json-file "^5.3.0" + npm-package-arg "^6.1.0" + write-pkg "^3.1.0" + +"@lerna/prerelease-id-from-version@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz#b24bfa789f5e1baab914d7b08baae9b7bd7d83a1" + integrity sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA== + dependencies: + semver "^6.2.0" + +"@lerna/profiler@3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@lerna/profiler/-/profiler-3.20.0.tgz#0f6dc236f4ea8f9ea5f358c6703305a4f32ad051" + integrity sha512-bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg== + dependencies: + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npmlog "^4.1.2" + upath "^1.2.0" + +"@lerna/project@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.21.0.tgz#5d784d2d10c561a00f20320bcdb040997c10502d" + integrity sha512-xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A== + dependencies: + "@lerna/package" "3.16.0" + "@lerna/validation-error" "3.13.0" + cosmiconfig "^5.1.0" + dedent "^0.7.0" + dot-prop "^4.2.0" + glob-parent "^5.0.0" + globby "^9.2.0" + load-json-file "^5.3.0" + npmlog "^4.1.2" + p-map "^2.1.0" + resolve-from "^4.0.0" + write-json-file "^3.2.0" + +"@lerna/prompt@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-3.18.5.tgz#628cd545f225887d060491ab95df899cfc5218a1" + integrity sha512-rkKj4nm1twSbBEb69+Em/2jAERK8htUuV8/xSjN0NPC+6UjzAwY52/x9n5cfmpa9lyKf/uItp7chCI7eDmNTKQ== + dependencies: + inquirer "^6.2.0" + npmlog "^4.1.2" + +"@lerna/publish@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-3.22.0.tgz#7a3fb61026d3b7425f3b9a1849421f67d795c55d" + integrity sha512-8LBeTLBN8NIrCrLGykRu+PKrfrCC16sGCVY0/bzq9TDioR7g6+cY0ZAw653Qt/0Kr7rg3J7XxVNdzj3fvevlwA== + dependencies: + "@evocateur/libnpmaccess" "^3.1.2" + "@evocateur/npm-registry-fetch" "^4.0.0" + "@evocateur/pacote" "^9.6.3" + "@lerna/check-working-tree" "3.16.5" + "@lerna/child-process" "3.16.5" + "@lerna/collect-updates" "3.20.0" + "@lerna/command" "3.21.0" + "@lerna/describe-ref" "3.16.5" + "@lerna/log-packed" "3.16.0" + "@lerna/npm-conf" "3.16.0" + "@lerna/npm-dist-tag" "3.18.5" + "@lerna/npm-publish" "3.18.5" + "@lerna/otplease" "3.18.5" + "@lerna/output" "3.13.0" + "@lerna/pack-directory" "3.16.4" + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prompt" "3.18.5" + "@lerna/pulse-till-done" "3.13.0" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.18.5" + "@lerna/validation-error" "3.13.0" + "@lerna/version" "3.22.0" + figgy-pudding "^3.5.1" + fs-extra "^8.1.0" + npm-package-arg "^6.1.0" + npmlog "^4.1.2" + p-finally "^1.0.0" + p-map "^2.1.0" + p-pipe "^1.2.0" + semver "^6.2.0" + +"@lerna/pulse-till-done@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz#c8e9ce5bafaf10d930a67d7ed0ccb5d958fe0110" + integrity sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA== + dependencies: + npmlog "^4.1.2" + +"@lerna/query-graph@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-3.18.5.tgz#df4830bb5155273003bf35e8dda1c32d0927bd86" + integrity sha512-50Lf4uuMpMWvJ306be3oQDHrWV42nai9gbIVByPBYJuVW8dT8O8pA3EzitNYBUdLL9/qEVbrR0ry1HD7EXwtRA== + dependencies: + "@lerna/package-graph" "3.18.5" + figgy-pudding "^3.5.1" + +"@lerna/resolve-symlink@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz#37fc7095fabdbcf317c26eb74e0d0bde8efd2386" + integrity sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ== + dependencies: + fs-extra "^8.1.0" + npmlog "^4.1.2" + read-cmd-shim "^1.0.1" + +"@lerna/rimraf-dir@3.16.5": + version "3.16.5" + resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-3.16.5.tgz#04316ab5ffd2909657aaf388ea502cb8c2f20a09" + integrity sha512-bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA== + dependencies: + "@lerna/child-process" "3.16.5" + npmlog "^4.1.2" + path-exists "^3.0.0" + rimraf "^2.6.2" + +"@lerna/run-lifecycle@3.16.2": + version "3.16.2" + resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz#67b288f8ea964db9ea4fb1fbc7715d5bbb0bce00" + integrity sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A== + dependencies: + "@lerna/npm-conf" "3.16.0" + figgy-pudding "^3.5.1" + npm-lifecycle "^3.1.2" + npmlog "^4.1.2" + +"@lerna/run-topologically@3.18.5": + version "3.18.5" + resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-3.18.5.tgz#3cd639da20e967d7672cb88db0f756b92f2fdfc3" + integrity sha512-6N1I+6wf4hLOnPW+XDZqwufyIQ6gqoPfHZFkfWlvTQ+Ue7CuF8qIVQ1Eddw5HKQMkxqN10thKOFfq/9NQZ4NUg== + dependencies: + "@lerna/query-graph" "3.18.5" + figgy-pudding "^3.5.1" + p-queue "^4.0.0" + +"@lerna/run@3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-3.21.0.tgz#2a35ec84979e4d6e42474fe148d32e5de1cac891" + integrity sha512-fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q== + dependencies: + "@lerna/command" "3.21.0" + "@lerna/filter-options" "3.20.0" + "@lerna/npm-run-script" "3.16.5" + "@lerna/output" "3.13.0" + "@lerna/profiler" "3.20.0" + "@lerna/run-topologically" "3.18.5" + "@lerna/timer" "3.13.0" + "@lerna/validation-error" "3.13.0" + p-map "^2.1.0" + +"@lerna/symlink-binary@3.17.0": + version "3.17.0" + resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-3.17.0.tgz#8f8031b309863814883d3f009877f82e38aef45a" + integrity sha512-RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ== + dependencies: + "@lerna/create-symlink" "3.16.2" + "@lerna/package" "3.16.0" + fs-extra "^8.1.0" + p-map "^2.1.0" + +"@lerna/symlink-dependencies@3.17.0": + version "3.17.0" + resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-3.17.0.tgz#48d6360e985865a0e56cd8b51b308a526308784a" + integrity sha512-KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q== + dependencies: + "@lerna/create-symlink" "3.16.2" + "@lerna/resolve-symlink" "3.16.0" + "@lerna/symlink-binary" "3.17.0" + fs-extra "^8.1.0" + p-finally "^1.0.0" + p-map "^2.1.0" + p-map-series "^1.0.0" + +"@lerna/timer@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/timer/-/timer-3.13.0.tgz#bcd0904551db16e08364d6c18e5e2160fc870781" + integrity sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw== + +"@lerna/validation-error@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-3.13.0.tgz#c86b8f07c5ab9539f775bd8a54976e926f3759c3" + integrity sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA== + dependencies: + npmlog "^4.1.2" + +"@lerna/version@3.22.0": + version "3.22.0" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-3.22.0.tgz#67e1340c1904e9b339becd66429f32dd8ad65a55" + integrity sha512-6uhL6RL7/FeW6u1INEgyKjd5dwO8+IsbLfkfC682QuoVLS7VG6OOB+JmTpCvnuyYWI6fqGh1bRk9ww8kPsj+EA== + dependencies: + "@lerna/check-working-tree" "3.16.5" + "@lerna/child-process" "3.16.5" + "@lerna/collect-updates" "3.20.0" + "@lerna/command" "3.21.0" + "@lerna/conventional-commits" "3.22.0" + "@lerna/github-client" "3.22.0" + "@lerna/gitlab-client" "3.15.0" + "@lerna/output" "3.13.0" + "@lerna/prerelease-id-from-version" "3.16.0" + "@lerna/prompt" "3.18.5" + "@lerna/run-lifecycle" "3.16.2" + "@lerna/run-topologically" "3.18.5" + "@lerna/validation-error" "3.13.0" + chalk "^2.3.1" + dedent "^0.7.0" + load-json-file "^5.3.0" + minimatch "^3.0.4" + npmlog "^4.1.2" + p-map "^2.1.0" + p-pipe "^1.2.0" + p-reduce "^1.0.0" + p-waterfall "^1.0.0" + semver "^6.2.0" + slash "^2.0.0" + temp-write "^3.4.0" + write-json-file "^3.2.0" + +"@lerna/write-log-file@3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-3.13.0.tgz#b78d9e4cfc1349a8be64d91324c4c8199e822a26" + integrity sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A== + dependencies: + npmlog "^4.1.2" + write-file-atomic "^2.3.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@octokit/auth-token@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.1.tgz#375d79eebd03750e6a9b0299e80b8167c7c85655" + integrity sha512-NB81O5h39KfHYGtgfWr2booRxp2bWOJoqbWwbyUg2hw6h35ArWYlAST5B3XwAkbdcx13yt84hFXyFP5X0QToWA== + dependencies: + "@octokit/types" "^4.0.1" + +"@octokit/endpoint@^6.0.1": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.2.tgz#e876aafe68d7f9b6c6d80bf29458403f9afe7b2b" + integrity sha512-xs1mmCEZ2y4shXCpFjNq3UbmNR+bLzxtZim2L0zfEtj9R6O6kc4qLDvYw66hvO6lUsYzPTM5hMkltbuNAbRAcQ== + dependencies: + "@octokit/types" "^4.0.1" + is-plain-object "^3.0.0" + universal-user-agent "^5.0.0" + +"@octokit/plugin-enterprise-rest@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" + integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== + +"@octokit/plugin-paginate-rest@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz#004170acf8c2be535aba26727867d692f7b488fc" + integrity sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q== + dependencies: + "@octokit/types" "^2.0.1" + +"@octokit/plugin-request-log@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e" + integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw== + +"@octokit/plugin-rest-endpoint-methods@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz#3288ecf5481f68c494dd0602fc15407a59faf61e" + integrity sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ== + dependencies: + "@octokit/types" "^2.0.1" + deprecation "^2.3.1" + +"@octokit/request-error@^1.0.2": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801" + integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA== + dependencies: + "@octokit/types" "^2.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request-error@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.1.tgz#49bd71e811daffd5bdd06ef514ca47b5039682d1" + integrity sha512-5lqBDJ9/TOehK82VvomQ6zFiZjPeSom8fLkFVLuYL3sKiIb5RB8iN/lenLkY7oBmyQcGP7FBMGiIZTO8jufaRQ== + dependencies: + "@octokit/types" "^4.0.1" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.2.0": + version "5.4.4" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.4.tgz#dc57e85e86284fa016d0c1a2701a70a10cec4ff2" + integrity sha512-vqv1lz41c6VTxUvF9nM+a6U+vvP3vGk7drDpr0DVQg4zyqlOiKVrY17DLD6de5okj+YLHKcoqaUZTBtlNZ1BtQ== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^4.0.1" + deprecation "^2.0.0" + is-plain-object "^3.0.0" + node-fetch "^2.3.0" + once "^1.4.0" + universal-user-agent "^5.0.0" + +"@octokit/rest@^16.28.4": + version "16.43.1" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.43.1.tgz#3b11e7d1b1ac2bbeeb23b08a17df0b20947eda6b" + integrity sha512-gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw== + dependencies: + "@octokit/auth-token" "^2.4.0" + "@octokit/plugin-paginate-rest" "^1.1.1" + "@octokit/plugin-request-log" "^1.0.0" + "@octokit/plugin-rest-endpoint-methods" "2.4.0" + "@octokit/request" "^5.2.0" + "@octokit/request-error" "^1.0.2" + atob-lite "^2.0.0" + before-after-hook "^2.0.0" + btoa-lite "^1.0.0" + deprecation "^2.0.0" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + lodash.uniq "^4.5.0" + octokit-pagination-methods "^1.1.0" + once "^1.4.0" + universal-user-agent "^4.0.0" + +"@octokit/types@^2.0.0", "@octokit/types@^2.0.1": + version "2.16.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.16.2.tgz#4c5f8da3c6fecf3da1811aef678fda03edac35d2" + integrity sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q== + dependencies: + "@types/node" ">= 8" + +"@octokit/types@^4.0.1": + version "4.1.6" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-4.1.6.tgz#03d3f277dee73086940578c2518c2ed700ac07a0" + integrity sha512-/gN/VeZirpFb0GIpbDF6SgtfDp9EQ+ymqPf595wjRkEoRgkrCnJGctGAd8MrynStBvYRmMWF1P64qzZFzhW7Vg== + dependencies: + "@types/node" ">= 8" + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" @@ -95,6 +976,16 @@ dependencies: defer-to-connect "^1.0.1" +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/eslint-visitor-keys@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" + integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -109,16 +1000,89 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/json-schema@^7.0.3": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" + integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== + "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/minimist@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" + integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= + "@types/node@*", "@types/node@^12.0.12": version "12.11.7" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.11.7.tgz#57682a9771a3f7b09c2497f28129a0462966524a" integrity sha512-JNbGaHFCLwgHn/iCckiGSOZ1XYHsKFwREtzPwSGCVld1SGhOlmZw2D4ZI94HQCrBHbADzW9m4LER/8olJTRGHA== +"@types/node@>= 8": + version "14.0.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.10.tgz#dbfaa170bd9eafccccb6d7060743a761b0844afd" + integrity sha512-Bz23oN/5bi0rniKT24ExLf4cK0JdvN3dH/3k0whYkdN4eI4vS2ZW/2ENNn2uxHCzWcbdHIa/GRuWQytfzCjRYw== + +"@types/node@^13.9.1": + version "13.13.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.9.tgz#79df4ae965fb76d31943b54a6419599307a21394" + integrity sha512-EPZBIGed5gNnfWCiwEIwTE2Jdg4813odnG8iNPMQGrqVxrI+wL68SPtPeCX+ZxGBaA6pKAVc6jaKgP/Q0QzfdQ== + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/webpack-env@^1.15.1": + version "1.15.2" + resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.15.2.tgz#927997342bb9f4a5185a86e6579a0a18afc33b0a" + integrity sha512-67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ== + +"@typescript-eslint/eslint-plugin@^2.29.0": + version "2.34.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9" + integrity sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ== + dependencies: + "@typescript-eslint/experimental-utils" "2.34.0" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@2.34.0": + version "2.34.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz#d3524b644cdb40eebceca67f8cf3e4cc9c8f980f" + integrity sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "2.34.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^2.29.0": + version "2.34.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.34.0.tgz#50252630ca319685420e9a39ca05fe185a256bc8" + integrity sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA== + dependencies: + "@types/eslint-visitor-keys" "^1.0.0" + "@typescript-eslint/experimental-utils" "2.34.0" + "@typescript-eslint/typescript-estree" "2.34.0" + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/typescript-estree@2.34.0": + version "2.34.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz#14aeb6353b39ef0732cc7f1b8285294937cf37d5" + integrity sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg== + dependencies: + debug "^4.1.1" + eslint-visitor-keys "^1.1.0" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + "@vue/component-compiler-utils@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.0.0.tgz#d16fa26b836c06df5baaeb45f3d80afc47e35634" @@ -134,6 +1098,22 @@ source-map "~0.6.1" vue-template-es2015-compiler "^1.9.0" +"@vue/eslint-config-standard@^5.0.0": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@vue/eslint-config-standard/-/eslint-config-standard-5.1.2.tgz#c5d55af894a3ae23b65b1af4a425777ac0170b42" + integrity sha512-FTz0k77dIrj9r3xskt9jsZyL/YprrLiPRf4m3k7G6dZ5PKuD6OPqYrHR9eduUmHDFpTlRgFpTVQrq+1el9k3QQ== + dependencies: + eslint-config-standard "^14.1.0" + eslint-import-resolver-node "^0.3.3" + eslint-import-resolver-webpack "^0.12.1" + +"@vue/eslint-config-typescript@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-5.0.2.tgz#c2f3328e70d55d10aeb826f209405397960548c7" + integrity sha512-GEZOHKOnelgQf5npA+6VNuhJZu9xEJaics3SYUyRjaSay+2SCpEINHhEpt6fXoNy/aIFt8CkDlt9CaEb+QPIcg== + dependencies: + vue-eslint-parser "^7.0.0" + "@vue/ui@^0.11.5": version "0.11.6" resolved "https://registry.yarnpkg.com/@vue/ui/-/ui-0.11.6.tgz#4b249774812e0025812adeb74b7078a4be43dfaf" @@ -299,6 +1279,23 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +"@zkochan/cmd-shim@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" + integrity sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg== + dependencies: + is-windows "^1.0.0" + mkdirp-promise "^5.0.1" + mz "^2.5.0" + +JSONStream@^1.0.4, JSONStream@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -317,21 +1314,52 @@ acorn-dynamic-import@^4.0.0: resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== -acorn-jsx@^5.0.0, acorn-jsx@^5.0.1: +acorn-jsx@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== -acorn@^6.0.2, acorn@^6.0.7, acorn@^6.1.1, acorn@^6.2.1: +acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn@^6.1.1, acorn@^6.2.1: version "6.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== +acorn@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" + integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ== + after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= +agent-base@4, agent-base@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" + integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== + dependencies: + es6-promisify "^5.0.0" + +agent-base@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== + dependencies: + es6-promisify "^5.0.0" + +agentkeepalive@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz#a113924dd3fa24a0bc3b78108c450c2abee00f67" + integrity sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ== + dependencies: + humanize-ms "^1.2.1" + ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -342,7 +1370,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: version "6.10.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== @@ -352,6 +1380,16 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.10.0: + 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== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" @@ -367,6 +1405,13 @@ ansi-escapes@^3.2.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -387,6 +1432,11 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -399,6 +1449,19 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -412,6 +1475,11 @@ aproba@^1.0.3, aproba@^1.1.1: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +aproba@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + arch@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" @@ -447,6 +1515,21 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-differ@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" + integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== + +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" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-find@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" + integrity sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg= + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -457,6 +1540,11 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= + array-includes@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" @@ -465,7 +1553,7 @@ array-includes@^3.0.3: define-properties "^1.1.2" es-abstract "^1.7.0" -array-union@^1.0.1: +array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= @@ -482,11 +1570,34 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +array.prototype.flat@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + arraybuffer.slice@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + asn1.js@^4.0.0: version "4.10.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" @@ -555,6 +1666,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +atob-lite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" + integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= + atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -642,6 +1758,11 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +before-after-hook@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" + integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== + better-assert@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" @@ -674,6 +1795,11 @@ bluebird@3.7.1, bluebird@^3.1.1, bluebird@^3.5.1, bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de" integrity sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg== +bluebird@^3.5.3: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" @@ -809,6 +1935,11 @@ browserslist@^4.7.2: electron-to-chromium "^1.3.295" node-releases "^1.1.38" +btoa-lite@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= + buble-loader@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/buble-loader/-/buble-loader-0.5.1.tgz#c34b94e2daeec39e7ee533e314b368af6c288025" @@ -864,6 +1995,21 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + +byline@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" + integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE= + +byte-size@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" + integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -893,6 +2039,27 @@ cacache@^10.0.4: unique-filename "^1.1.0" y18n "^4.0.0" +cacache@^12.0.0, cacache@^12.0.3: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + cacache@^12.0.2: version "12.0.3" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" @@ -949,6 +2116,11 @@ cachedir@1.3.0: dependencies: os-homedir "^1.0.1" +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" @@ -978,11 +2150,52 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.0.0: +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + +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== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" + integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== + caniuse-lite@^1.0.30001004: version "1.0.30001005" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001005.tgz#823054210be638c725521edcb869435dae46728d" @@ -993,7 +2206,7 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1013,6 +2226,14 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -1047,6 +2268,11 @@ chownr@^1.0.1, chownr@^1.1.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== +chownr@^1.1.2: + 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.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -1059,6 +2285,11 @@ ci-info@^1.5.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -1096,6 +2327,13 @@ cli-cursor@^2.1.0: dependencies: restore-cursor "^2.0.0" +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + cli-spinners@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" @@ -1132,6 +2370,15 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -1139,6 +2386,11 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" @@ -1159,11 +2411,31 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +columnify@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" + integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= + dependencies: + strip-ansi "^3.0.0" + wcwidth "^1.0.0" + combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1171,7 +2443,7 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@2, commander@^2.20.0: +commander@2, commander@^2.20.0, commander@~2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -1196,6 +2468,14 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +compare-func@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-1.3.4.tgz#6b07c4c5e8341119baf44578085bda0f4a823516" + integrity sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q== + dependencies: + array-ify "^1.0.0" + dot-prop "^3.0.0" + component-bind@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" @@ -1251,6 +2531,16 @@ concat-stream@1.6.2, concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + config-chain@^1.1.11: version "1.1.12" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" @@ -1303,6 +2593,89 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +conventional-changelog-angular@^5.0.3: + version "5.0.10" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.10.tgz#5cf7b00dd315b6a6a558223c80d5ef24ddb34205" + integrity sha512-k7RPPRs0vp8+BtPsM9uDxRl6KcgqtCJmzRD1wRtgqmhQ96g8ifBGo9O/TZBG23jqlXS/rg8BKRDELxfnQQGiaA== + dependencies: + compare-func "^1.3.1" + q "^1.5.1" + +conventional-changelog-core@^3.1.6: + version "3.2.3" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz#b31410856f431c847086a7dcb4d2ca184a7d88fb" + integrity sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ== + dependencies: + conventional-changelog-writer "^4.0.6" + conventional-commits-parser "^3.0.3" + dateformat "^3.0.0" + get-pkg-repo "^1.0.0" + git-raw-commits "2.0.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^2.0.3" + lodash "^4.2.1" + normalize-package-data "^2.3.5" + q "^1.5.1" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + through2 "^3.0.0" + +conventional-changelog-preset-loader@^2.1.1: + version "2.3.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" + integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== + +conventional-changelog-writer@^4.0.6: + version "4.0.16" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.16.tgz#ca10f2691a8ea6d3c2eb74bd35bcf40aa052dda5" + integrity sha512-jmU1sDJDZpm/dkuFxBeRXvyNcJQeKhGtVcFFkwTphUAzyYWcwz2j36Wcv+Mv2hU3tpvLMkysOPXJTLO55AUrYQ== + dependencies: + compare-func "^1.3.1" + conventional-commits-filter "^2.0.6" + dateformat "^3.0.0" + handlebars "^4.7.6" + json-stringify-safe "^5.0.1" + lodash "^4.17.15" + meow "^7.0.0" + semver "^6.0.0" + split "^1.0.0" + through2 "^3.0.0" + +conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz#0935e1240c5ca7698329affee1b6a46d33324c4c" + integrity sha512-4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw== + dependencies: + lodash.ismatch "^4.4.0" + modify-values "^1.0.0" + +conventional-commits-parser@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz#10140673d5e7ef5572633791456c5d03b69e8be4" + integrity sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA== + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^7.0.0" + split2 "^2.0.0" + through2 "^3.0.0" + trim-off-newlines "^1.0.0" + +conventional-recommended-bump@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz#5af63903947b6e089e77767601cb592cabb106ba" + integrity sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ== + dependencies: + concat-stream "^2.0.0" + conventional-changelog-preset-loader "^2.1.1" + conventional-commits-filter "^2.0.2" + conventional-commits-parser "^3.0.3" + git-raw-commits "2.0.0" + git-semver-tags "^2.0.3" + meow "^4.0.0" + q "^1.5.1" + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -1350,7 +2723,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= -cosmiconfig@^5.0.0: +cosmiconfig@^5.0.0, cosmiconfig@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== @@ -1498,6 +2871,13 @@ cssesc@^2.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" @@ -1787,6 +3167,13 @@ d3@^5.9.2: d3-voronoi "1" d3-zoom "1" +dargs@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + integrity sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc= + dependencies: + number-is-nan "^1.0.0" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -1799,18 +3186,30 @@ date-fns@^1.27.2: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== +dateformat@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + de-indent@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" +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.2.6, debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -1825,14 +3224,20 @@ debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.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== +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= + +decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= dependencies: - ms "2.0.0" + decamelize "^1.1.0" + map-obj "^1.0.0" -decamelize@^1.2.0: +decamelize@^1.1.0, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -1849,6 +3254,11 @@ decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + deep-equal@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745" @@ -1879,6 +3289,13 @@ default-gateway@^4.2.0: execa "^1.0.0" ip-regex "^2.1.0" +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + defer-to-connect@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.2.tgz#4bae758a314b034ae33902b5aac25a8dd6a8633e" @@ -1941,6 +3358,11 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" @@ -1959,6 +3381,11 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= + detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" @@ -1969,6 +3396,14 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== +dezalgo@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= + dependencies: + asap "^2.0.0" + wrappy "1" + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -1978,6 +3413,13 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -2018,12 +3460,26 @@ domain-browser@^1.1.1: resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + integrity sha1-G3CK8JSknJoOfbyteQq6U52sEXc= + dependencies: + is-obj "^1.0.0" + +dot-prop@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= -duplexer@~0.1.1: +duplexer@^0.1.1, duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= @@ -2088,6 +3544,11 @@ emoji-regex@^7.0.1: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -2098,6 +3559,13 @@ encodeurl@^1.0.2, encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= + dependencies: + iconv-lite "~0.4.13" + end-of-stream@^1.0.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" @@ -2154,6 +3622,15 @@ enhanced-resolve@4.1.0: memory-fs "^0.4.0" tapable "^1.0.0" +enhanced-resolve@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" + integrity sha1-TW5omzcl+GCQknzMhs2fFjW4ni4= + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.2.0" + tapable "^0.1.8" + enhanced-resolve@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" @@ -2168,6 +3645,16 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== +envinfo@^7.3.1: + version "7.5.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.1.tgz#93c26897225a00457c75e734d354ea9106a72236" + integrity sha512-hQBkDf2iO4Nv0CNHpCuSBeaSrveU6nThVxFGTrq/eDlV716UQk09zChaJae4mZRsos1x4YLY2TaH3LHUae3ZmQ== + +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= + errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" @@ -2205,6 +3692,23 @@ es-abstract@^1.12.0, es-abstract@^1.7.0: string.prototype.trimleft "^2.1.0" string.prototype.trimright "^2.1.0" +es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + es-to-primitive@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" @@ -2214,11 +3718,32 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" +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.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2234,10 +3759,10 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -eslint-config-standard@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" - integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== +eslint-config-standard@^14.1.0: + version "14.1.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" + integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== eslint-import-resolver-node@^0.3.2: version "0.3.2" @@ -2247,12 +3772,36 @@ eslint-import-resolver-node@^0.3.2: debug "^2.6.9" resolve "^1.5.0" -eslint-module-utils@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c" - integrity sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw== +eslint-import-resolver-node@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" + integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-import-resolver-webpack@^0.12.1: + version "0.12.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.12.1.tgz#771ae561e887ca4e53ee87605fbb36c5e290b0f5" + integrity sha512-O/sUAXk6GWrICiN8JUkkjdt9uZpqZHP+FVnTxtEILL6EZMaPSrnP4lGPSFwcKsv7O211maqq4Nz60+dh236hVg== + dependencies: + array-find "^1.0.0" + debug "^2.6.9" + enhanced-resolve "^0.9.1" + find-root "^1.1.0" + has "^1.0.3" + interpret "^1.2.0" + lodash "^4.17.15" + node-libs-browser "^1.0.0 || ^2.0.0" + resolve "^1.13.1" + semver "^5.7.1" + +eslint-module-utils@^2.4.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== dependencies: - debug "^2.6.8" + debug "^2.6.9" pkg-dir "^2.0.0" eslint-plugin-cypress@^2.0.1: @@ -2262,61 +3811,64 @@ eslint-plugin-cypress@^2.0.1: dependencies: globals "^11.12.0" -eslint-plugin-es@^1.3.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998" - integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA== +eslint-plugin-es@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== dependencies: - eslint-utils "^1.4.2" - regexpp "^2.0.1" + eslint-utils "^2.0.0" + regexpp "^3.0.0" -eslint-plugin-import@^2.14.0: - version "2.18.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" - integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== +eslint-plugin-import@^2.20.2: + version "2.20.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" + integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg== dependencies: array-includes "^3.0.3" + array.prototype.flat "^1.2.1" contains-path "^0.1.0" debug "^2.6.9" doctrine "1.5.0" eslint-import-resolver-node "^0.3.2" - eslint-module-utils "^2.4.0" + eslint-module-utils "^2.4.1" has "^1.0.3" minimatch "^3.0.4" object.values "^1.1.0" read-pkg-up "^2.0.0" - resolve "^1.11.0" + resolve "^1.12.0" -eslint-plugin-node@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db" - integrity sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw== +eslint-plugin-node@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== dependencies: - eslint-plugin-es "^1.3.1" - eslint-utils "^1.3.1" - ignore "^4.0.2" + eslint-plugin-es "^3.0.0" + eslint-utils "^2.0.0" + ignore "^5.1.1" minimatch "^3.0.4" - resolve "^1.8.1" - semver "^5.5.0" + resolve "^1.10.1" + semver "^6.1.0" -eslint-plugin-promise@^4.0.0: +eslint-plugin-promise@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== -eslint-plugin-standard@^4.0.0: +eslint-plugin-standard@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4" integrity sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ== -eslint-plugin-vue@^5.0.0-beta.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz#3ee7597d823b5478804b2feba9863b1b74273961" - integrity sha512-mGwMqbbJf0+VvpGR5Lllq0PMxvTdrZ/ZPjmhkacrCHbubJeJOt+T6E3HUzAifa2Mxi7RSdJfC9HFpOeSYVMMIw== +eslint-plugin-vue@^6.0.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe" + integrity sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ== dependencies: - vue-eslint-parser "^5.0.0" + natural-compare "^1.4.0" + semver "^5.6.0" + vue-eslint-parser "^7.0.0" -eslint-scope@^4.0.0, eslint-scope@^4.0.3: +eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== @@ -2324,77 +3876,84 @@ eslint-scope@^4.0.0, eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.3.1, eslint-utils@^1.4.2: +eslint-scope@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" + integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: +eslint-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" + integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@^5.6.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" - integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== +eslint@^6.0.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== dependencies: "@babel/code-frame" "^7.0.0" - ajv "^6.9.1" + ajv "^6.10.0" chalk "^2.1.0" cross-spawn "^6.0.5" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^4.0.3" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^5.0.1" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" esquery "^1.0.1" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" + glob-parent "^5.0.0" + globals "^12.1.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^6.2.2" - js-yaml "^3.13.0" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.11" + lodash "^4.17.14" minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" + optionator "^0.8.3" progress "^2.0.0" regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" table "^5.2.3" text-table "^0.2.0" + v8-compile-cache "^2.0.3" -espree@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" - integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w== - dependencies: - acorn "^6.0.2" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - -espree@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" - integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== +espree@^6.1.2, espree@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== dependencies: - acorn "^6.0.7" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" esprima@^4.0.0: version "4.0.1" @@ -2443,6 +4002,11 @@ event-stream@=3.3.4: stream-combiner "~0.0.4" through "~2.3.1" +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + eventemitter3@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" @@ -2645,12 +4209,29 @@ fast-deep-equal@^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.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + fast-json-stable-stringify@^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= -fast-levenshtein@~2.0.4: +fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -2688,6 +4269,11 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" +figgy-pudding@^3.4.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -2708,6 +4294,13 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + file-entry-cache@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" @@ -2756,6 +4349,19 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -2770,6 +4376,14 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + findup-sync@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" @@ -2944,6 +4558,11 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" +genfun@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" + integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== + get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" @@ -2954,6 +4573,27 @@ get-caller-file@^2.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-pkg-repo@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" + integrity sha1-xztInAbYDMVTbCyFP54FIyBWly0= + dependencies: + hosted-git-info "^2.1.4" + meow "^3.3.0" + normalize-package-data "^2.3.0" + parse-github-repo-url "^1.3.0" + through2 "^2.0.0" + +get-port@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119" + integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw== + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -2992,6 +4632,55 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +git-raw-commits@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5" + integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg== + dependencies: + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^2.0.0" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-2.0.3.tgz#48988a718acf593800f99622a952a77c405bfa34" + integrity sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA== + dependencies: + meow "^4.0.0" + semver "^6.0.0" + +git-up@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.1.tgz#cb2ef086653640e721d2042fe3104857d89007c0" + integrity sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw== + dependencies: + is-ssh "^1.3.0" + parse-url "^5.0.0" + +git-url-parse@^11.1.2: + version "11.1.2" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.1.2.tgz#aff1a897c36cc93699270587bea3dbcbbb95de67" + integrity sha512-gZeLVGY8QVKMIkckncX+iCq2/L8PlwncvDFKiWkBn9EtCfYDbliRTTp6qzyQ1VMdITUfq7293zDzfpjdiGASSQ== + dependencies: + git-up "^4.0.0" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= + dependencies: + ini "^1.3.2" + glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -3000,6 +4689,18 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.5" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0" @@ -3012,6 +4713,18 @@ glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.1, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + global-agent@^2.0.2: version "2.1.5" resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.5.tgz#0e9b8367f7068bb6fa360a8f920499e1d873762f" @@ -3078,11 +4791,18 @@ global-tunnel-ng@^2.7.1: npm-conf "^1.1.3" tunnel "^0.0.6" -globals@^11.12.0, globals@^11.7.0: +globals@^11.12.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + globalthis@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.0.tgz#c5fb98213a9b4595f59cf3e7074f141b4169daae" @@ -3103,6 +4823,20 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" +globby@^9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -3125,11 +4859,28 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== +graceful-fs@^4.2.2: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + handle-thing@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== +handlebars@^4.7.6: + version "4.7.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -3143,6 +4894,11 @@ har-validator@~5.1.0: ajv "^6.5.5" har-schema "^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== + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -3167,12 +4923,22 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= +has-flag@^4.0.0: + version "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: version "1.0.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= -has-unicode@^2.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== + +has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= @@ -3262,6 +5028,11 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== +hosted-git-info@^2.7.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -3277,6 +5048,11 @@ html-entities@^1.2.1: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= +http-cache-semantics@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + http-cache-semantics@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" @@ -3324,6 +5100,14 @@ http-errors@~1.7.2: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== + dependencies: + agent-base "4" + debug "3.1.0" + http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" @@ -3357,7 +5141,22 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: +https-proxy-agent@^2.2.3: + version "2.2.4" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" + integrity sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg== + dependencies: + agent-base "^4.3.0" + debug "^3.1.0" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + dependencies: + ms "^2.0.0" + +iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -3393,11 +5192,16 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" -ignore@^4.0.2, ignore@^4.0.6: +ignore@^4.0.3, ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +ignore@^5.1.1: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" @@ -3453,6 +5257,11 @@ indent-string@^3.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -3463,7 +5272,7 @@ indexof@0.0.1: resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= -infer-owner@^1.0.3: +infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== @@ -3491,12 +5300,26 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, 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== -inquirer@^6.2.0, inquirer@^6.2.2: +init-package-json@^1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz#45ffe2f610a8ca134f2bd1db5637b235070f6cbe" + integrity sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw== + dependencies: + glob "^7.1.1" + npm-package-arg "^4.0.0 || ^5.0.0 || ^6.0.0" + promzard "^0.3.0" + read "~1.0.1" + read-package-json "1 || 2" + semver "2.x || 3.x || 4 || 5" + validate-npm-package-license "^3.0.1" + validate-npm-package-name "^3.0.0" + +inquirer@^6.2.0: version "6.5.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== @@ -3515,6 +5338,25 @@ inquirer@^6.2.0, inquirer@^6.2.2: strip-ansi "^5.1.0" 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== + dependencies: + ansi-escapes "^4.2.1" + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.5.3" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + internal-ip@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" @@ -3528,6 +5370,11 @@ interpret@1.2.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== +interpret@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" @@ -3538,7 +5385,7 @@ ip-regex@^2.1.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= -ip@^1.1.0, ip@^1.1.5: +ip@1.1.5, ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= @@ -3599,6 +5446,11 @@ is-callable@^1.1.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-callable@^1.1.5: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" + integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== + is-ci@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" @@ -3606,6 +5458,13 @@ is-ci@1.2.1: dependencies: ci-info "^1.5.0" +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -3684,6 +5543,11 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -3691,7 +5555,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0: +is-glob@^4.0.0, is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -3713,6 +5577,11 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + is-path-cwd@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" @@ -3739,6 +5608,11 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -3746,6 +5620,13 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928" + integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg== + dependencies: + isobject "^4.0.0" + is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -3758,6 +5639,20 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +is-regex@^1.0.5: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" + integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw== + dependencies: + has-symbols "^1.0.1" + +is-ssh@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.1.tgz#f349a8cadd24e65298037a522cf7520f2e81a0f3" + integrity sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg== + dependencies: + protocols "^1.1.0" + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -3775,12 +5670,24 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.0" +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= + dependencies: + text-extensions "^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" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-windows@^1.0.1, is-windows@^1.0.2: +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.0, is-windows@^1.0.1, 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== @@ -3817,6 +5724,11 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +isobject@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" + integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -3832,7 +5744,7 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.0, js-yaml@^3.13.1: +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== @@ -3855,7 +5767,7 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.0, json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -3899,6 +5811,11 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -3945,6 +5862,11 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== +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== + launch-editor-middleware@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" @@ -3972,6 +5894,30 @@ lcid@^2.0.0: dependencies: invert-kv "^2.0.0" +lerna@^3.22.0: + version "3.22.0" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-3.22.0.tgz#da14d08f183ffe6eec566a4ef3f0e11afa621183" + integrity sha512-xWlHdAStcqK/IjKvjsSMHPZjPkBV1lS60PmsIeObU8rLljTepc4Sg/hncw4HWfQxPIewHAUTqhrxPIsqf9L2Eg== + dependencies: + "@lerna/add" "3.21.0" + "@lerna/bootstrap" "3.21.0" + "@lerna/changed" "3.21.0" + "@lerna/clean" "3.21.0" + "@lerna/cli" "3.18.5" + "@lerna/create" "3.22.0" + "@lerna/diff" "3.21.0" + "@lerna/exec" "3.21.0" + "@lerna/import" "3.22.0" + "@lerna/info" "3.21.0" + "@lerna/init" "3.21.0" + "@lerna/link" "3.21.0" + "@lerna/list" "3.21.0" + "@lerna/publish" "3.22.0" + "@lerna/run" "3.21.0" + "@lerna/version" "3.22.0" + import-local "^2.0.0" + npmlog "^4.1.2" + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -3980,6 +5926,11 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" @@ -4031,6 +5982,17 @@ listr@0.12.0: stream-to-observable "^0.1.0" strip-ansi "^3.0.1" +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" @@ -4041,6 +6003,27 @@ load-json-file@^2.0.0: pify "^2.0.0" strip-bom "^3.0.0" +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +load-json-file@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" + integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== + dependencies: + graceful-fs "^4.1.15" + parse-json "^4.0.0" + pify "^4.0.1" + strip-bom "^3.0.0" + type-fest "^0.3.0" + loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -4071,17 +6054,69 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= -lodash@4.17.15, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15: +lodash.set@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.template@^4.0.2, lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@4.17.15, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.2.1: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -4113,6 +6148,14 @@ loglevel@^1.6.4: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56" integrity sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g== +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -4138,6 +6181,11 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +macos-release@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" + integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== + magic-string@^0.25.3: version "0.25.4" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.4.tgz#325b8a0a79fc423db109b77fd5a19183b7ba5143" @@ -4152,7 +6200,7 @@ make-dir@^1.0.0: dependencies: pify "^3.0.0" -make-dir@^2.0.0: +make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== @@ -4160,6 +6208,23 @@ make-dir@^2.0.0: pify "^4.0.1" semver "^5.6.0" +make-fetch-happen@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz#aa8387104f2687edca01c8687ee45013d02d19bd" + integrity sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag== + dependencies: + agentkeepalive "^3.4.1" + cacache "^12.0.0" + http-cache-semantics "^3.8.1" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + node-fetch-npm "^2.0.2" + promise-retry "^1.1.1" + socks-proxy-agent "^4.0.0" + ssri "^6.0.0" + mamacro@^0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" @@ -4177,6 +6242,21 @@ map-cache@^0.2.2: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= + +map-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" + integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== + map-stream@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" @@ -4219,6 +6299,11 @@ mem@^4.0.0: mimic-fn "^2.0.0" p-is-promise "^2.0.0" +memory-fs@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" + integrity sha1-8rslNovBIeORwlIN6Slpyu4KApA= + memory-fs@^0.4.0, memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -4235,6 +6320,56 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" +meow@^3.3.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +meow@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + +meow@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-7.0.1.tgz#1ed4a0a50b3844b451369c48362eb0515f04c1dc" + integrity sha512-tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw== + dependencies: + "@types/minimist" "^1.2.0" + arrify "^2.0.1" + camelcase "^6.0.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "^4.0.2" + normalize-package-data "^2.5.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.13.1" + yargs-parser "^18.1.3" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -4252,6 +6387,11 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +merge2@^1.2.3: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -4326,6 +6466,11 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -4343,6 +6488,23 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + +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@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -4353,7 +6515,12 @@ minimist@1.2.0, minimist@^1.2.0: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: +minimist@^1.1.3, 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== + +minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, 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== @@ -4408,6 +6575,18 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + dependencies: + mkdirp "*" + +mkdirp@*: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.x: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -4415,6 +6594,11 @@ mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.x: dependencies: minimist "0.0.8" +modify-values@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== + moment@2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" @@ -4442,7 +6626,7 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@^2.1.1: +ms@^2.0.0, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== @@ -4460,11 +6644,35 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" +multimatch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" + integrity sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA== + dependencies: + array-differ "^2.0.3" + array-union "^1.0.2" + arrify "^1.0.1" + minimatch "^3.0.4" + mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= +mute-stream@0.0.8, mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mz@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + nan@^2.12.1: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" @@ -4506,7 +6714,7 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.5.0, neo-async@^2.6.1: +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== @@ -4516,12 +6724,43 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +node-fetch-npm@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" + integrity sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg== + dependencies: + encoding "^0.1.11" + json-parse-better-errors "^1.0.0" + safe-buffer "^5.1.1" + +node-fetch@^2.3.0, node-fetch@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + node-forge@0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== -node-libs-browser@^2.2.1: +node-gyp@^5.0.2: + version "5.1.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz#eb915f7b631c937d282e33aed44cb7a025f62a3e" + integrity sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.2" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.1.2" + request "^2.88.0" + rimraf "^2.6.3" + semver "^5.7.1" + tar "^4.4.12" + which "^1.3.1" + +"node-libs-browser@^1.0.0 || ^2.0.0", node-libs-browser@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== @@ -4581,7 +6820,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.2: +normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -4608,6 +6847,11 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= +normalize-url@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + normalize-url@^4.1.0: version "4.5.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" @@ -4626,6 +6870,35 @@ npm-conf@^1.1.3: config-chain "^1.1.11" pify "^3.0.0" +npm-lifecycle@^3.1.2: + version "3.1.5" + resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" + integrity sha512-lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g== + dependencies: + byline "^5.0.0" + graceful-fs "^4.1.15" + node-gyp "^5.0.2" + resolve-from "^4.0.0" + slide "^1.1.6" + uid-number "0.0.6" + umask "^1.1.0" + which "^1.3.1" + +npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" + integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== + dependencies: + hosted-git-info "^2.7.1" + osenv "^0.1.5" + semver "^5.6.0" + validate-npm-package-name "^3.0.0" + npm-packlist@^1.1.6: version "1.4.6" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" @@ -4634,6 +6907,24 @@ npm-packlist@^1.1.6: ignore-walk "^3.0.1" npm-bundled "^1.0.1" +npm-packlist@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + +npm-pick-manifest@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz#f4d9e5fd4be2153e5f4e5f9b7be8dc419a99abb7" + integrity sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw== + dependencies: + figgy-pudding "^3.5.1" + npm-package-arg "^6.0.0" + semver "^5.4.1" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -4648,7 +6939,7 @@ npm-run-path@^3.0.0: dependencies: path-key "^3.0.0" -npmlog@^4.0.2: +npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -4697,12 +6988,17 @@ object-inspect@^1.6.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + object-is@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= -object-keys@^1.0.12, object-keys@^1.1.1: +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== @@ -4714,6 +7010,24 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -4736,6 +7050,11 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== +octokit-pagination-methods@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4" + integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ== + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -4781,17 +7100,17 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= +optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" - fast-levenshtein "~2.0.4" + fast-levenshtein "~2.0.6" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" - wordwrap "~1.0.0" + word-wrap "~1.2.3" ora@^0.2.3: version "0.2.3" @@ -4834,12 +7153,20 @@ os-locale@^3.0.0, os-locale@^3.1.0: lcid "^2.0.0" mem "^4.0.0" +os-name@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== + dependencies: + macos-release "^2.2.0" + windows-release "^3.1.0" + os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@^0.1.4: +osenv@^0.1.4, osenv@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== @@ -4886,6 +7213,13 @@ p-limit@^2.0.0: dependencies: p-try "^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" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + 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" @@ -4900,16 +7234,47 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map-series@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" + integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco= + dependencies: + p-reduce "^1.0.0" + p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== -p-map@^2.0.0: +p-map@^2.0.0, p-map@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +p-pipe@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" + integrity sha1-SxoROZoRUgpneQ7loMHViB1r7+k= + +p-queue@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-4.0.0.tgz#ed0eee8798927ed6f2c2f5f5b77fdb2061a5d346" + integrity sha512-3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg== + dependencies: + eventemitter3 "^3.1.0" + +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= + p-retry@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" @@ -4927,6 +7292,13 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +p-waterfall@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-waterfall/-/p-waterfall-1.0.0.tgz#7ed94b3ceb3332782353af6aae11aa9fc235bb00" + integrity sha1-ftlLPOszMngjU69qrhGqn8I1uwA= + dependencies: + p-reduce "^1.0.0" + pako@~1.0.5: version "1.0.10" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" @@ -4960,6 +7332,11 @@ parse-asn1@^5.0.0: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-github-repo-url@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" + integrity sha1-nn2LslKmy2ukJZUGC3v23z28H1A= + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -4975,11 +7352,39 @@ parse-json@^4.0.0: error-ex "^1.3.1" 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== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= +parse-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" + integrity sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA== + dependencies: + is-ssh "^1.3.0" + protocols "^1.4.0" + +parse-url@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" + integrity sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg== + dependencies: + is-ssh "^1.3.0" + normalize-url "^3.3.0" + parse-path "^4.0.0" + protocols "^1.4.0" + parseqs@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" @@ -5014,11 +7419,23 @@ path-dirname@^1.0.0: resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -5049,6 +7466,15 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" @@ -5056,6 +7482,13 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + pause-stream@0.0.11: version "0.0.11" resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" @@ -5084,7 +7517,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -pify@^2.0.0, pify@^2.2.0: +pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= @@ -5265,11 +7698,38 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= +promise-retry@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0= + dependencies: + err-code "^1.0.0" + retry "^0.10.0" + +promzard@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" + integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= + dependencies: + read "1" + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= +protocols@^1.1.0, protocols@^1.4.0: + version "1.4.7" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.7.tgz#95f788a4f0e979b291ffefcf5636ad113d037d32" + integrity sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg== + +protoduck@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f" + integrity sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg== + dependencies: + genfun "^5.0.0" + proxy-addr@~2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" @@ -5352,6 +7812,11 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +q@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + qs@6.7.0: version "6.7.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" @@ -5377,6 +7842,16 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + ramda@0.24.1: version "0.24.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" @@ -5422,6 +7897,42 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +read-cmd-shim@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz#87e43eba50098ba5a32d0ceb583ab8e43b961c16" + integrity sha512-v5yCqQ/7okKoZZkBQUAfTsQ3sVJtXdNfbPnI5cceppoxEVLYA3k+VtV2omkeo8MS94JCy4fSiUwlRBAwCVRPUA== + dependencies: + graceful-fs "^4.1.2" + +"read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@^2.0.13: + version "2.1.1" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.1.tgz#16aa66c59e7d4dad6288f179dd9295fd59bb98f1" + integrity sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A== + dependencies: + glob "^7.1.1" + json-parse-better-errors "^1.0.1" + normalize-package-data "^2.0.0" + npm-normalize-package-bin "^1.0.0" + optionalDependencies: + graceful-fs "^4.1.2" + +read-package-tree@^5.1.6: + version "5.3.1" + resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.3.1.tgz#a32cb64c7f31eb8a6f31ef06f9cedf74068fe636" + integrity sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw== + dependencies: + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + util-promisify "^2.1.0" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" @@ -5430,6 +7941,32 @@ read-pkg-up@^2.0.0: find-up "^2.0.0" read-pkg "^2.0.0" +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.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== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" @@ -5439,6 +7976,32 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read@1, read@~1.0.1: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + dependencies: + mute-stream "~0.0.4" + "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" @@ -5452,6 +8015,15 @@ read-pkg@^2.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" +"readable-stream@2 || 3", readable-stream@^3.0.2: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@^3.0.6: version "3.4.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" @@ -5461,6 +8033,16 @@ readable-stream@^3.0.6: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readdir-scoped-modules@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -5470,6 +8052,30 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + regenerate-unicode-properties@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" @@ -5502,6 +8108,11 @@ regexpp@^2.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== +regexpp@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + regexpu-core@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" @@ -5652,13 +8263,20 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.11.0, resolve@^1.5.0, resolve@^1.8.1: +resolve@^1.10.0, resolve@^1.5.0: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== dependencies: path-parse "^1.0.6" +resolve@^1.10.1, resolve@^1.12.0, resolve@^1.13.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" @@ -5682,11 +8300,24 @@ restore-cursor@^2.0.0: onetime "^2.0.0" signal-exit "^3.0.2" +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -5706,6 +8337,13 @@ rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -5733,6 +8371,11 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -5764,6 +8407,13 @@ rxjs@^6.4.0: dependencies: tslib "^1.9.0" +rxjs@^6.5.3: + version "6.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" + integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.2, 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" @@ -5774,6 +8424,11 @@ safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== +safe-buffer@^5.2.0: + 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-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -5837,16 +8492,21 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -5939,6 +8599,13 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -5973,6 +8640,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" @@ -5987,6 +8659,16 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" +slide@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + +smart-buffer@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -6092,6 +8774,29 @@ sockjs@0.3.19: faye-websocket "^0.10.0" uuid "^3.0.1" +socks-proxy-agent@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" + integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== + dependencies: + agent-base "~4.2.1" + socks "~2.3.2" + +socks@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" + integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== + dependencies: + ip "1.1.5" + smart-buffer "^4.1.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + dependencies: + is-plain-obj "^1.0.0" + source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -6197,6 +8902,13 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +split2@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" + integrity sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw== + dependencies: + through2 "^2.0.2" + split@0.3: version "0.3.3" resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" @@ -6204,6 +8916,13 @@ split@0.3: dependencies: through "2" +split@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + sprintf-js@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" @@ -6236,7 +8955,7 @@ ssri@^5.2.4: dependencies: safe-buffer "^5.1.1" -ssri@^6.0.1: +ssri@^6.0.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== @@ -6344,6 +9063,23 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.trimend@^1.0.0: + 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.trimleft@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" @@ -6352,6 +9088,15 @@ string.prototype.trimleft@^2.1.0: define-properties "^1.1.3" function-bind "^1.1.1" +string.prototype.trimleft@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" + string.prototype.trimright@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" @@ -6360,6 +9105,23 @@ string.prototype.trimright@^2.1.0: define-properties "^1.1.3" function-bind "^1.1.1" +string.prototype.trimright@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + 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.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -6395,6 +9157,20 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -6410,11 +9186,44 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" + integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== + +strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +strong-log-transformer@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" + integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== + dependencies: + duplexer "^0.1.1" + minimist "^1.2.0" + through "^2.3.4" + style-resources-loader@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/style-resources-loader/-/style-resources-loader-1.2.1.tgz#7679d5dc2f27046b2fc2b83c1d5b6c1b8a9b820c" @@ -6475,6 +9284,13 @@ supports-color@^2.0.0: resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= +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== + dependencies: + has-flag "^4.0.0" + symbol-observable@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" @@ -6490,12 +9306,17 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" +tapable@^0.1.8: + version "0.1.10" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" + integrity sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q= + tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^4: +tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -6508,6 +9329,23 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.3" +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + +temp-write@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-3.4.0.tgz#8cff630fb7e9da05f047c74ce4ce4d685457d492" + integrity sha1-jP9jD7fp2gXwR8dM5M5NaFRX1JI= + dependencies: + graceful-fs "^4.1.2" + is-stream "^1.1.0" + make-dir "^1.0.0" + pify "^3.0.0" + temp-dir "^1.0.0" + uuid "^3.0.1" + terser-webpack-plugin@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" @@ -6532,17 +9370,36 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.0" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" + integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= + dependencies: + any-promise "^1.0.0" + throttleit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= -through2@^2.0.0: +through2@^2.0.0, through2@^2.0.2: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -6550,7 +9407,14 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through@2, through@^2.3.6, through@~2.3, through@~2.3.1: +through2@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" + integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + dependencies: + readable-stream "2 || 3" + +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -6634,6 +9498,33 @@ tough-cookie@~2.4.3: psl "^1.1.24" punycode "^1.4.1" +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= + +trim-newlines@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" + integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== + +trim-off-newlines@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" + integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= + truncate-utf8-bytes@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" @@ -6641,11 +9532,23 @@ truncate-utf8-bytes@^1.0.0: dependencies: utf8-byte-length "^1.0.1" +tslib@^1.8.1: + version "1.13.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== + tslib@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -6675,7 +9578,27 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-fest@^0.8.0: +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.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" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.0, type-fest@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== @@ -6693,6 +9616,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript@^3.8.3: + version "3.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.3.tgz#d3ac8883a97c26139e42df5e93eeece33d610b8a" + integrity sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ== + uglify-es@^3.3.4: version "3.3.9" resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" @@ -6701,6 +9629,13 @@ uglify-es@^3.3.4: commander "~2.13.0" source-map "~0.6.1" +uglify-js@^3.1.4: + version "3.9.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.9.4.tgz#867402377e043c1fc7b102253a22b64e5862401b" + integrity sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA== + dependencies: + commander "~2.20.3" + uglifyjs-webpack-plugin@^1.2.7: version "1.3.0" resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de" @@ -6715,6 +9650,16 @@ uglifyjs-webpack-plugin@^1.2.7: webpack-sources "^1.1.0" worker-farm "^1.5.2" +uid-number@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= + +umask@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" + integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -6767,6 +9712,20 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +universal-user-agent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557" + integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg== + dependencies: + os-name "^3.1.0" + +universal-user-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9" + integrity sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q== + dependencies: + os-name "^3.1.0" + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -6785,7 +9744,7 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -upath@^1.1.1: +upath@^1.1.1, upath@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== @@ -6849,6 +9808,13 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= +util-promisify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/util-promisify/-/util-promisify-2.1.0.tgz#3c2236476c4d32c5ff3c47002add7c13b9a82a53" + integrity sha1-PCI2R2xNMsX/PEcAKt18E7moKlM= + dependencies: + object.getownpropertydescriptors "^2.0.3" + util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -6886,7 +9852,12 @@ v8-compile-cache@2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== -validate-npm-package-license@^3.0.1: +v8-compile-cache@^2.0.3: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== + +validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== @@ -6894,6 +9865,13 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -6913,17 +9891,17 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== -vue-eslint-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz#00f4e4da94ec974b821a26ff0ed0f7a78402b8a1" - integrity sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g== +vue-eslint-parser@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.1.0.tgz#9cdbcc823e656b087507a1911732b867ac101e83" + integrity sha512-Kr21uPfthDc63nDl27AGQEhtt9VrZ9nkYk/NTftJ2ws9XiJwzJJCnCr3AITQ2jpRMA0XPGDECxYH8E027qMK9Q== dependencies: - debug "^4.1.0" - eslint-scope "^4.0.0" - eslint-visitor-keys "^1.0.0" - espree "^4.1.0" + debug "^4.1.1" + eslint-scope "^5.0.0" + eslint-visitor-keys "^1.1.0" + espree "^6.2.1" esquery "^1.0.1" - lodash "^4.17.11" + lodash "^4.17.15" vue-hot-reload-api@^2.3.0: version "2.3.4" @@ -7023,6 +10001,18 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" +wcwidth@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + webpack-cli@^3.1.0: version "3.3.9" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.9.tgz#79c27e71f94b7fe324d594ab64a8e396b9daa91a" @@ -7156,6 +10146,15 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + when@~3.6.x: version "3.6.4" resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" @@ -7187,7 +10186,19 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -wordwrap@~1.0.0: +windows-release@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.0.tgz#dce167e9f8be733f21c849ebd4d03fe66b29b9f0" + integrity sha512-2HetyTg1Y+R+rUgrKeUEhAG/ZuOmTrI1NBb3ZyAGQMYmOJjBBPe4MTodghRkmLJZHwkuPi02anbeGP+Zf401LQ== + dependencies: + execa "^1.0.0" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= @@ -7221,6 +10232,47 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-json-file@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" + integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + pify "^3.0.0" + sort-keys "^2.0.0" + write-file-atomic "^2.0.0" + +write-json-file@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" + integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.15" + make-dir "^2.1.0" + pify "^4.0.1" + sort-keys "^2.0.0" + write-file-atomic "^2.4.2" + +write-pkg@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21" + integrity sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw== + dependencies: + sort-keys "^2.0.0" + write-json-file "^2.2.0" + write@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" @@ -7290,6 +10342,22 @@ yargs-parser@^13.1.0: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^15.0.1: + version "15.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" + integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +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== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs@12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" @@ -7325,6 +10393,23 @@ yargs@13.2.4: y18n "^4.0.0" yargs-parser "^13.1.0" +yargs@^14.2.2: + version "14.2.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== + dependencies: + cliui "^5.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^15.0.1" + yauzl@2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From 6500b45e65c86c46dd018b5bfb26c07d51026939 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Fri, 5 Jun 2020 16:59:21 +0200 Subject: [PATCH 0240/1371] fix: inspect component arg shoud be id --- packages/app-backend-api/src/api.ts | 4 ++-- packages/app-backend-api/src/hooks.ts | 2 +- packages/app-backend-core/src/index.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/app-backend-api/src/api.ts b/packages/app-backend-api/src/api.ts index 6702c8584..8897e6188 100644 --- a/packages/app-backend-api/src/api.ts +++ b/packages/app-backend-api/src/api.ts @@ -53,9 +53,9 @@ export class DevtoolsApi { return payload.componentTreeData } - async inspectComponent (instance: any) { + async inspectComponent (instanceId: number | string) { const payload = await this.callHook(Hooks.INSPECT_COMPONENT, { - componentInstance: instance, + componentInstanceId: instanceId, instanceData: null }) return payload.instanceData diff --git a/packages/app-backend-api/src/hooks.ts b/packages/app-backend-api/src/hooks.ts index 16e6959c3..d5f66a2ff 100644 --- a/packages/app-backend-api/src/hooks.ts +++ b/packages/app-backend-api/src/hooks.ts @@ -27,7 +27,7 @@ export type HookPayloads = { maxDepth: number } [Hooks.INSPECT_COMPONENT]: { - componentInstance: any // @TODO + componentInstanceId: number | string instanceData: any // @TODO } } diff --git a/packages/app-backend-core/src/index.ts b/packages/app-backend-core/src/index.ts index b6d92badd..a0c9e8c31 100644 --- a/packages/app-backend-core/src/index.ts +++ b/packages/app-backend-core/src/index.ts @@ -143,7 +143,7 @@ async function flushComponents () { } else { // @TODO const payload = stringify({ - inspectedInstance: await ctx.api.inspectComponent(rootInstance), + inspectedInstance: await ctx.api.inspectComponent(ctx.currentInspectedComponentId), instances: await ctx.api.walkComponentTree(rootInstance) }) ctx.bridge.send(BridgeEvents.TO_FRONT_COMPONENT_FLUSH, payload) From 4dfdf1b0dffd334385038e7010118aaa3089f6f0 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 7 Jun 2020 17:20:14 +0200 Subject: [PATCH 0241/1371] feat(component): wip component tab backend --- packages/app-backend-api/src/api.ts | 2 +- packages/app-backend-api/src/app-record.ts | 1 + .../app-backend-api/src/backend-context.ts | 2 +- packages/app-backend-api/src/component.ts | 60 +++++++++++++++++++ packages/app-backend-api/src/hooks.ts | 9 +-- packages/app-backend-core/src/index.ts | 19 +++--- 6 files changed, 80 insertions(+), 13 deletions(-) create mode 100644 packages/app-backend-api/src/component.ts diff --git a/packages/app-backend-api/src/api.ts b/packages/app-backend-api/src/api.ts index 8897e6188..771f117de 100644 --- a/packages/app-backend-api/src/api.ts +++ b/packages/app-backend-api/src/api.ts @@ -53,7 +53,7 @@ export class DevtoolsApi { return payload.componentTreeData } - async inspectComponent (instanceId: number | string) { + async inspectComponent (instanceId: number) { const payload = await this.callHook(Hooks.INSPECT_COMPONENT, { componentInstanceId: instanceId, instanceData: null diff --git a/packages/app-backend-api/src/app-record.ts b/packages/app-backend-api/src/app-record.ts index 6691a8c59..5b632c08e 100644 --- a/packages/app-backend-api/src/app-record.ts +++ b/packages/app-backend-api/src/app-record.ts @@ -13,6 +13,7 @@ export interface AppRecord { name: string options: AppRecordOptions backend: DevtoolsBackend + lastInspectedComponentId: number } /** diff --git a/packages/app-backend-api/src/backend-context.ts b/packages/app-backend-api/src/backend-context.ts index a86867763..37b9c7b53 100644 --- a/packages/app-backend-api/src/backend-context.ts +++ b/packages/app-backend-api/src/backend-context.ts @@ -7,7 +7,7 @@ export interface BackendContext { appRecords: AppRecord[] currentTab: string currentAppRecord: AppRecord - currentInspectedComponentId: string | number + currentInspectedComponentId: number } export interface CreateBackendContextOptions { diff --git a/packages/app-backend-api/src/component.ts b/packages/app-backend-api/src/component.ts new file mode 100644 index 000000000..d947c0441 --- /dev/null +++ b/packages/app-backend-api/src/component.ts @@ -0,0 +1,60 @@ +export interface ComponentTreeNode { + uid: number + id: number + name: string + renderKey: string + inactive: boolean + isFragment: boolean + children: ComponentTreeNode[] + positionTop: number + consoleId?: string + isRouterView?: boolean + macthedRouteSegment?: string +} + +export interface InspectedComponentData { + id: number + name: string + file: string + state: ComponentState[] + functional?: boolean +} + +export interface ComponentStateBase { + type: string + key: string + value: any + editable: boolean +} + +export interface ComponentPropState extends ComponentStateBase { + meta?: { + type: string + required: boolean + /** Vue 1 only */ + mode?: 'default' | 'sync' | 'once' + } +} + +export type ComponentBuiltinCustomStateTypes = 'function' | 'map' | 'set' | 'reference' | 'component' | 'component-definition' | 'router' | 'store' + +export interface ComponentCustomState extends ComponentStateBase { + value: { + _custom: { + type: ComponentBuiltinCustomStateTypes | string + display?: string + tooltip?: string + value?: any + abstract?: boolean + file?: string + uid?: number + readOnly?: boolean + /** Configure immediate child fields */ + fields?: { + abstract?: boolean + } + } + } +} + +export type ComponentState = ComponentStateBase | ComponentPropState | ComponentCustomState diff --git a/packages/app-backend-api/src/hooks.ts b/packages/app-backend-api/src/hooks.ts index d5f66a2ff..437375070 100644 --- a/packages/app-backend-api/src/hooks.ts +++ b/packages/app-backend-api/src/hooks.ts @@ -1,5 +1,6 @@ -import { DevtoolsApi, App } from '.' +import { App } from '.' import { BackendContext } from './backend-context' +import { ComponentTreeNode, InspectedComponentData } from './component' export enum Hooks { GET_APP_RECORD_NAME = 'getAppRecordName', @@ -23,12 +24,12 @@ export type HookPayloads = { } [Hooks.WALK_COMPONENT_TREE]: { componentInstance: any // @TODO - componentTreeData: any // @TODO + componentTreeData: ComponentTreeNode maxDepth: number } [Hooks.INSPECT_COMPONENT]: { - componentInstanceId: number | string - instanceData: any // @TODO + componentInstanceId: number + instanceData: InspectedComponentData } } diff --git a/packages/app-backend-core/src/index.ts b/packages/app-backend-core/src/index.ts index a0c9e8c31..87a2ea40c 100644 --- a/packages/app-backend-core/src/index.ts +++ b/packages/app-backend-core/src/index.ts @@ -71,8 +71,7 @@ function connect () { if (!record) { console.error(`App with id ${id} not found`) } else { - ctx.currentAppRecord = record - ctx.bridge.send(BridgeEvents.TO_FRONT_APP_SELECTED, id) + await selectApp(record) } }) @@ -107,7 +106,8 @@ export async function registerApp (options: AppRecordOptions) { id, name, options, - backend + backend, + lastInspectedComponentId: null } await ctx.api.registerApplication(record) ctx.appRecords.push(record) @@ -115,8 +115,7 @@ export async function registerApp (options: AppRecordOptions) { // Auto select first app if (ctx.currentAppRecord == null) { - ctx.currentAppRecord = record - ctx.bridge.send(BridgeEvents.TO_FRONT_APP_SELECTED, record.id) + await selectApp(record) } break @@ -124,6 +123,13 @@ export async function registerApp (options: AppRecordOptions) { } } +async function selectApp (record: AppRecord) { + ctx.currentAppRecord = record + ctx.currentInspectedComponentId = record.lastInspectedComponentId + ctx.bridge.send(BridgeEvents.TO_FRONT_APP_SELECTED, record.id) + await flushAll() +} + function mapAppRecord (record: AppRecord): SimpleAppRecord { return { id: record.id, @@ -141,9 +147,8 @@ async function flushComponents () { if (!rootInstance) { console.warn('App is not mounted') } else { - // @TODO const payload = stringify({ - inspectedInstance: await ctx.api.inspectComponent(ctx.currentInspectedComponentId), + inspectedInstance: ctx.currentInspectedComponentId ? await ctx.api.inspectComponent(ctx.currentInspectedComponentId) : null, instances: await ctx.api.walkComponentTree(rootInstance) }) ctx.bridge.send(BridgeEvents.TO_FRONT_COMPONENT_FLUSH, payload) From d54516f7e69c5dcc5d392dee5d87cc0ecce2581c Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 18 Jun 2020 11:08:42 -0400 Subject: [PATCH 0242/1371] refactor: make vue 3 dev env work --- packages/app-frontend/src/App.vue | 6 +- packages/app-frontend/src/index.js | 2 +- .../app-frontend/src/views/events/module.js | 6 +- .../app-frontend/src/views/router/module.js | 6 +- .../app-frontend/src/views/routes/module.js | 4 +- .../src/views/settings/SettingsTab.vue | 4 +- packages/shared-utils/package.json | 2 +- packages/shared-utils/tsconfig.json | 2 +- packages/shell-dev-vue3/package.json | 6 +- packages/shell-dev-vue3/src/Child.vue | 1 + packages/shell-dev-vue3/webpack.config.js | 8 +- packages/shell-host/src/backend.js | 2 +- packages/shell-host/src/devtools.js | 2 +- yarn.lock | 610 ++++++++++++------ 14 files changed, 442 insertions(+), 219 deletions(-) diff --git a/packages/app-frontend/src/App.vue b/packages/app-frontend/src/App.vue index 2c7e8a646..590262075 100644 --- a/packages/app-frontend/src/App.vue +++ b/packages/app-frontend/src/App.vue @@ -166,7 +166,7 @@ diff --git a/packages/shell-dev-vue3/webpack.config.js b/packages/shell-dev-vue3/webpack.config.js index c2ee5e0f9..da1d882df 100644 --- a/packages/shell-dev-vue3/webpack.config.js +++ b/packages/shell-dev-vue3/webpack.config.js @@ -8,7 +8,7 @@ module.exports = createConfig({ entry: { target: './src/main.js', hook: require.resolve('@vue-devtools/shell-host/src/hook.js'), - backend: require.resolve('@vue-devtools/shell-host/src/backend.js'), + backend: require.resolve('@vue-devtools/shell-host/src/backend.js') }, output: { path: path.join(__dirname, '/build'), @@ -25,9 +25,9 @@ module.exports = createConfig({ rules: [ { test: /\.vue$/, - loader: require.resolve('vue-loader'), - }, - ], + loader: require.resolve('vue-loader') + } + ] }, devtool: '#cheap-module-source-map', devServer: { @@ -43,10 +43,10 @@ module.exports = createConfig({ if (req.url.startsWith('/target')) { return req.url } - }, - }, - }, - }, + } + } + } + } }) module.exports.plugins[0] = new VueLoaderPlugin() diff --git a/packages/shell-host/webpack.config.js b/packages/shell-host/webpack.config.js index 93b971d07..c4eb11ae5 100644 --- a/packages/shell-host/webpack.config.js +++ b/packages/shell-host/webpack.config.js @@ -4,7 +4,7 @@ const openInEditor = require('launch-editor-middleware') module.exports = createConfig({ entry: { - devtools: './src/devtools.js', + devtools: './src/devtools.js' }, output: { path: path.join(__dirname, '/build'), From 0b5d7fb8f9b7cc732c8bb3e57b85b749bec663e7 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 18 Jun 2020 11:49:37 -0400 Subject: [PATCH 0244/1371] chore: fix eslint errors --- .eslintrc.js | 79 +++++++++++++------ .../app-backend/src/component-selector.js | 11 ++- packages/app-backend/src/hook.js | 14 ++-- packages/app-backend/src/vuex.js | 33 ++++---- packages/shell-dev-vue3/src/Child.vue | 4 +- packages/shell-dev/src/NativeTypes.vue | 2 + packages/shell-dev/src/Other.vue | 2 + packages/shell-dev/src/store.js | 2 +- 8 files changed, 87 insertions(+), 60 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 87f699002..0f9afa05d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,39 +1,66 @@ module.exports = { - 'root': true, - 'env': { - 'browser': true, + root: true, + env: { + browser: true }, - 'extends': [ + extends: [ 'plugin:vue/recommended', '@vue/standard', '@vue/typescript/recommended' ], parserOptions: { - ecmaVersion: 2020, + ecmaVersion: 2020 }, - 'globals': { - 'bridge': true, - 'chrome': true, - 'localStorage': true, - 'HTMLDocument': true, - 'name': 'off' + globals: { + bridge: true, + chrome: true, + localStorage: true, + HTMLDocument: true, + name: 'off' }, - 'rules': { - 'vue/html-closing-bracket-newline': ['error', { - 'singleline': 'never', - 'multiline': 'always' - }], + rules: { + 'vue/html-closing-bracket-newline': [ + 'error', + { + singleline: 'never', + multiline: 'always' + } + ], 'no-var': ['error'], - '@typescript-eslint/member-delimiter-style': ['error', { - multiline: { - delimiter: 'none', - }, - singleline: { - delimiter: 'comma', - }, - }], + '@typescript-eslint/member-delimiter-style': [ + 'error', + { + multiline: { + delimiter: 'none' + }, + singleline: { + delimiter: 'comma' + } + } + ], '@typescript-eslint/ban-ts-ignore': 'warn', '@typescript-eslint/no-use-before-define': 'off', - '@typescript-eslint/camelcase': 'warn' - } + '@typescript-eslint/camelcase': 'warn', + 'no-prototype-builtins': 'off' + }, + overrides: [ + { + files: [ + 'release.js', + 'packages/build-tools/**', + 'packages/shell-electron/**', + '**webpack.config.js' + ], + rules: { + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/camelcase': 'off' + } + }, + { + files: ['packages/shell-dev-vue3/**'], + rules: { + 'vue/valid-template-root': 'off' + } + } + ] } diff --git a/packages/app-backend/src/component-selector.js b/packages/app-backend/src/component-selector.js index e3c4d8b2d..af386f06e 100644 --- a/packages/app-backend/src/component-selector.js +++ b/packages/app-backend/src/component-selector.js @@ -4,13 +4,12 @@ import { isBrowser } from '@utils/env' export default class ComponentSelector { constructor (bridge, instanceMap) { - const self = this - self.bridge = bridge - self.instanceMap = instanceMap - self.bindMethods() + this.bridge = bridge + this.instanceMap = instanceMap + this.bindMethods() - bridge.on('start-component-selector', self.startSelecting) - bridge.on('stop-component-selector', self.stopSelecting) + bridge.on('start-component-selector', this.startSelecting) + bridge.on('stop-component-selector', this.stopSelecting) } /** diff --git a/packages/app-backend/src/hook.js b/packages/app-backend/src/hook.js index 5cefcf72f..3879e98e1 100644 --- a/packages/app-backend/src/hook.js +++ b/packages/app-backend/src/hook.js @@ -12,7 +12,7 @@ export function installHook (target) { let listeners = {} - if (target.hasOwnProperty('__VUE_DEVTOOLS_GLOBAL_HOOK__')) return + if ('__VUE_DEVTOOLS_GLOBAL_HOOK__' in target) return const hook = { Vue: null, @@ -28,7 +28,7 @@ export function installHook (target) { for (let i = 0, l = buffer.length; i < l; i++) { const allArgs = buffer[i] allArgs[0] === event - ? this.emit.apply(this, allArgs) + ? this.emit(...allArgs) : this._buffer.push(allArgs) } }, @@ -44,9 +44,9 @@ export function installHook (target) { }, once (event, fn) { - function on () { + function on (...args) { this.off(event, on) - fn.apply(this, arguments) + fn.apply(this, args) } this.on(event, on) }, @@ -73,18 +73,16 @@ export function installHook (target) { } }, - emit (event) { + emit (event, ...eventArgs) { const $event = '$' + event let cbs = listeners[$event] if (cbs) { - const eventArgs = [].slice.call(arguments, 1) cbs = cbs.slice() for (let i = 0, l = cbs.length; i < l; i++) { cbs[i].apply(this, eventArgs) } } else { - const allArgs = [].slice.call(arguments) - this._buffer.push(allArgs) + this._buffer.push(event, ...eventArgs) } } } diff --git a/packages/app-backend/src/vuex.js b/packages/app-backend/src/vuex.js index 116d322d7..0003bee59 100644 --- a/packages/app-backend/src/vuex.js +++ b/packages/app-backend/src/vuex.js @@ -60,6 +60,7 @@ class VuexBackend { if (!isProd) console.log('unregister module', path) } } else { + /* eslint-disable @typescript-eslint/no-empty-function */ this.origRegisterModule = this.origUnregisterModule = () => {} } @@ -472,28 +473,24 @@ class VuexBackend { if (!isProd) console.log('replay unregister module', path) } else if (mutation.handlers) { this.store._committing = true - try { - let payload = mutation.payload + let payload = mutation.payload - if (this.isLegacy && !Array.isArray(payload)) { - payload = [payload] - } + if (this.isLegacy && !Array.isArray(payload)) { + payload = [payload] + } - if (Array.isArray(mutation.handlers)) { - if (this.isLegacy) { - mutation.handlers.forEach(handler => handler(this.store.state, ...payload)) - } else { - mutation.handlers.forEach(handler => handler(payload)) - } + if (Array.isArray(mutation.handlers)) { + if (this.isLegacy) { + mutation.handlers.forEach(handler => handler(this.store.state, ...payload)) + } else { + mutation.handlers.forEach(handler => handler(payload)) + } + } else { + if (this.isLegacy) { + mutation.handlers(this.store.state, ...payload) } else { - if (this.isLegacy) { - mutation.handlers(this.store.state, ...payload) - } else { - mutation.handlers(payload) - } + mutation.handlers(payload) } - } catch (e) { - throw e } this.store._committing = false } diff --git a/packages/shell-dev-vue3/src/Child.vue b/packages/shell-dev-vue3/src/Child.vue index 86ca6fb98..da89fe617 100644 --- a/packages/shell-dev-vue3/src/Child.vue +++ b/packages/shell-dev-vue3/src/Child.vue @@ -32,6 +32,8 @@ export default { diff --git a/packages/shell-dev/src/NativeTypes.vue b/packages/shell-dev/src/NativeTypes.vue index 89b45484c..d070193f1 100644 --- a/packages/shell-dev/src/NativeTypes.vue +++ b/packages/shell-dev/src/NativeTypes.vue @@ -54,6 +54,8 @@ + + diff --git a/packages/app-frontend/src/features/apps/index.js b/packages/app-frontend/src/features/apps/index.js new file mode 100644 index 000000000..53c3479a1 --- /dev/null +++ b/packages/app-frontend/src/features/apps/index.js @@ -0,0 +1,65 @@ +import { ref, computed, watch } from '@vue/composition-api' +import { BridgeEvents } from '@vue-devtools/shared-utils' +import { useBridge } from '../bridge' +import { useRoute, useRouter } from '@front/util/router' + +const apps = ref([]) + +export function useApps () { + const { bridge } = useBridge() + const route = useRoute() + const router = useRouter() + + const currentAppId = computed(() => parseInt(route.value.params.appId)) + const currentApp = computed(() => apps.value.find(a => currentAppId.value === a.id)) + + function selectApp (id) { + if (currentAppId.value !== id) { + router.push({ + params: { + appId: id, + componentId: null + } + }) + } + } + + watch(currentAppId, value => { + bridge.send(BridgeEvents.TO_BACK_APP_SELECT, value) + }) + + return { + apps, + currentAppId, + currentApp, + selectApp + } +} + +function addApp (app) { + removeApp(app.id) + apps.value.push(app) +} + +function removeApp (appId) { + const index = apps.value.findIndex(app => app.id === appId) + if (index !== -1) { + apps.value.splice(index, 1) + } +} + +export function setupAppsBridgeEvents (bridge) { + bridge.on(BridgeEvents.TO_FRONT_APP_ADD, appRecord => { + addApp(appRecord) + }) + + bridge.on(BridgeEvents.TO_FRONT_APP_REMOVE, id => { + removeApp(id) + }) + + bridge.on(BridgeEvents.TO_FRONT_APP_LIST, list => { + apps.value = list + }) + + bridge.send(BridgeEvents.TO_BACK_APP_LIST) +} diff --git a/packages/app-frontend/src/features/bridge/index.js b/packages/app-frontend/src/features/bridge/index.js new file mode 100644 index 000000000..81af97164 --- /dev/null +++ b/packages/app-frontend/src/features/bridge/index.js @@ -0,0 +1,27 @@ +import { onUnmounted } from '@vue/composition-api' + +let bridge + +export function useBridge () { + const cbs = [] + + function onBridge (event, cb) { + cbs.push({ event, cb }) + bridge.on(event, cb) + } + + onUnmounted(() => { + for (const { event, cb } of cbs) { + bridge.off(event, cb) + } + }) + + return { + bridge, + onBridge + } +} + +export function setBridge (b) { + bridge = b +} diff --git a/packages/app-frontend/src/features/chrome/context-menu.js b/packages/app-frontend/src/features/chrome/context-menu.js new file mode 100644 index 000000000..37519a218 --- /dev/null +++ b/packages/app-frontend/src/features/chrome/context-menu.js @@ -0,0 +1,13 @@ +import { isChrome } from '@utils/env' + +if (isChrome) { + chrome.runtime.onMessage.addListener(request => { + if (request === 'vue-get-context-menu-target') { + getContextMenuInstance() + } + }) +} + +function getContextMenuInstance () { + bridge.send('get-context-menu-target') +} diff --git a/packages/app-frontend/src/features/chrome/index.js b/packages/app-frontend/src/features/chrome/index.js new file mode 100644 index 000000000..fefc4abe9 --- /dev/null +++ b/packages/app-frontend/src/features/chrome/index.js @@ -0,0 +1,2 @@ +export * from './context-menu' +export * from './pane-visibility' diff --git a/packages/app-frontend/src/features/chrome/pane-visibility.js b/packages/app-frontend/src/features/chrome/pane-visibility.js new file mode 100644 index 000000000..ca22e42bf --- /dev/null +++ b/packages/app-frontend/src/features/chrome/pane-visibility.js @@ -0,0 +1,34 @@ +import { isChrome } from '@utils/env' + +let panelShown = !isChrome +let pendingAction = null + +if (isChrome) { + chrome.runtime.onMessage.addListener(request => { + if (request === 'vue-panel-shown') { + onPanelShown() + } else if (request === 'vue-panel-hidden') { + onPanelHidden() + } + }) +} + +export function ensurePaneShown (cb) { + if (panelShown) { + cb() + } else { + pendingAction = cb + } +} + +function onPanelShown () { + panelShown = true + if (pendingAction) { + pendingAction() + pendingAction = null + } +} + +function onPanelHidden () { + panelShown = false +} diff --git a/packages/app-frontend/src/features/components/ComponentTreeNode.vue b/packages/app-frontend/src/features/components/ComponentTreeNode.vue new file mode 100644 index 000000000..6f949f4d9 --- /dev/null +++ b/packages/app-frontend/src/features/components/ComponentTreeNode.vue @@ -0,0 +1,117 @@ + + + diff --git a/packages/app-frontend/src/features/components/ComponentsInspector.vue b/packages/app-frontend/src/features/components/ComponentsInspector.vue new file mode 100644 index 000000000..99eb404a4 --- /dev/null +++ b/packages/app-frontend/src/features/components/ComponentsInspector.vue @@ -0,0 +1,72 @@ + + + diff --git a/packages/app-frontend/src/features/components/index.js b/packages/app-frontend/src/features/components/index.js new file mode 100644 index 000000000..e7cc519f7 --- /dev/null +++ b/packages/app-frontend/src/features/components/index.js @@ -0,0 +1,154 @@ +import { ref, computed, watch } from '@vue/composition-api' +import Vue from 'vue' +import groupBy from 'lodash/groupBy' +import { BridgeEvents, parse, sortByKey, searchDeepInObject } from '@vue-devtools/shared-utils' +import { useBridge } from '../bridge' +import { useRoute, useRouter } from '@front/util/router' + +const rootInstances = ref([]) +let componentsMap = {} +const selectedComponentId = ref(null) +const selectedComponentData = ref(null) +const selectedComponentStateFilter = ref('') +let selectedComponentPendingId = null +let lastSelectedApp = null +const expandedMap = ref({}) + +export function useComponents () { + const { bridge, onBridge } = useBridge() + const route = useRoute() + const router = useRouter() + + function requestComponentTree (instanceId = null) { + if (!instanceId) { + resetComponents() + instanceId = '_root' + } + bridge.send(BridgeEvents.TO_BACK_COMPONENT_TREE, instanceId) + } + + function selectComponent (id) { + if (selectedComponentId.value !== id) { + router.push({ + params: { + componentId: id + } + }) + } else { + loadComponent(id) + } + } + + function loadComponent (id) { + if (selectedComponentPendingId === id) return + selectedComponentPendingId = id + bridge.send(BridgeEvents.TO_BACK_COMPONENT_SELECTED_DATA, id) + } + + watch(() => route.value.params.componentId, value => { + selectedComponentId.value = value + loadComponent(value) + }, { + immediate: true + }) + + const selectedComponentState = computed(() => selectedComponentData.value ? groupBy(sortByKey(selectedComponentData.value.state.filter(el => { + return searchDeepInObject({ + [el.key]: el.value + }, selectedComponentStateFilter.value) + })), 'type') : ({})) + + // We watch for the tree data so that we can auto load the current selected component + watch(() => componentsMap, () => { + if (selectedComponentId.value && selectedComponentPendingId !== selectedComponentId.value && !selectedComponentData.value) { + selectComponent(selectedComponentId.value) + } + }, { + immediate: true, + deep: true + }) + + onBridge(BridgeEvents.TO_FRONT_APP_SELECTED, ({ id, lastInspectedComponentId }) => { + requestComponentTree() + if (lastSelectedApp !== null) { + selectComponent(lastInspectedComponentId) + } + lastSelectedApp = id + }) + + return { + rootInstances: computed(() => rootInstances.value), + // rootInstances: computed(() => []), + selectedComponentId: computed(() => selectedComponentId.value), + selectedComponentData: computed(() => selectedComponentData.value), + selectedComponentState, + selectedComponentStateFilter, + requestComponentTree, + selectComponent + } +} + +export function useComponent (instance) { + const { selectComponent, requestComponentTree } = useComponents() + + const isExpanded = computed(() => !!expandedMap.value[instance.value.id]) + + function toggleExpand () { + if (!instance.value.hasChildren) return + Vue.set(expandedMap.value, instance.value.id, !isExpanded.value) + + if (!instance.value.children || !instance.value.children.length) { + requestComponentTree(instance.value.id) + } + } + + const isSelected = computed(() => selectedComponentId.value === instance.value.id) + + function select () { + selectComponent(instance.value.id) + } + + return { + isExpanded, + toggleExpand, + isSelected, + select + } +} + +export function resetComponents () { + rootInstances.value = [] + componentsMap = {} + expandedMap.value = {} +} + +export function setupComponentsBridgeEvents (bridge) { + bridge.on(BridgeEvents.TO_FRONT_COMPONENT_TREE, ({ instanceId, treeData }) => { + const data = parse(treeData) + const instance = componentsMap[instanceId] + if (instance) { + for (const key in data) { + Vue.set(instance, key, data[key]) + } + addToComponentsMap(instance) + } else { + rootInstances.value.push(data) + addToComponentsMap(data) + } + }) + + bridge.on(BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, ({ instanceId, data }) => { + console.log(instanceId, data) + if (instanceId === selectedComponentId.value) { + selectedComponentData.value = parse(data) + selectedComponentPendingId = null + } + }) +} + +function addToComponentsMap (instance) { + componentsMap[instance.id] = instance + if (instance.children) { + instance.children.forEach(c => addToComponentsMap(c)) + } +} diff --git a/packages/app-frontend/src/features/connection/AppConnecting.vue b/packages/app-frontend/src/features/connection/AppConnecting.vue new file mode 100644 index 000000000..956d8af3f --- /dev/null +++ b/packages/app-frontend/src/features/connection/AppConnecting.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/packages/app-frontend/src/features/connection/index.js b/packages/app-frontend/src/features/connection/index.js new file mode 100644 index 000000000..8e2a66fad --- /dev/null +++ b/packages/app-frontend/src/features/connection/index.js @@ -0,0 +1,13 @@ +import { ref } from '@vue/composition-api' + +const isConnected = ref(false) + +export function useAppConnection () { + return { + isConnected + } +} + +export function setAppConnected (value) { + isConnected.value = value +} diff --git a/packages/app-frontend/src/features/header/AppHeader.vue b/packages/app-frontend/src/features/header/AppHeader.vue new file mode 100644 index 000000000..2bcf8bb53 --- /dev/null +++ b/packages/app-frontend/src/features/header/AppHeader.vue @@ -0,0 +1,157 @@ + + + diff --git a/packages/app-frontend/src/features/header/AppHistoryNav.vue b/packages/app-frontend/src/features/header/AppHistoryNav.vue new file mode 100644 index 000000000..1b42b1e43 --- /dev/null +++ b/packages/app-frontend/src/features/header/AppHistoryNav.vue @@ -0,0 +1,15 @@ + diff --git a/packages/app-frontend/src/features/header/AppSelect.vue b/packages/app-frontend/src/features/header/AppSelect.vue new file mode 100644 index 000000000..3a55d088f --- /dev/null +++ b/packages/app-frontend/src/features/header/AppSelect.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/packages/app-frontend/src/features/inspector/DataField.vue b/packages/app-frontend/src/features/inspector/DataField.vue new file mode 100644 index 000000000..c1eb3e714 --- /dev/null +++ b/packages/app-frontend/src/features/inspector/DataField.vue @@ -0,0 +1,674 @@ + + + + + diff --git a/packages/app-frontend/src/features/inspector/StateFields.vue b/packages/app-frontend/src/features/inspector/StateFields.vue new file mode 100644 index 000000000..418df11f9 --- /dev/null +++ b/packages/app-frontend/src/features/inspector/StateFields.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/packages/app-frontend/src/features/inspector/StateInspector.vue b/packages/app-frontend/src/features/inspector/StateInspector.vue new file mode 100644 index 000000000..05bff9c1b --- /dev/null +++ b/packages/app-frontend/src/features/inspector/StateInspector.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/packages/app-frontend/src/features/layout/SplitPane.vue b/packages/app-frontend/src/features/layout/SplitPane.vue new file mode 100644 index 000000000..f93e9617e --- /dev/null +++ b/packages/app-frontend/src/features/layout/SplitPane.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/packages/app-frontend/src/features/layout/orientation.js b/packages/app-frontend/src/features/layout/orientation.js new file mode 100644 index 000000000..bda67e615 --- /dev/null +++ b/packages/app-frontend/src/features/layout/orientation.js @@ -0,0 +1,17 @@ +import { ref } from '@vue/composition-api' + +const orientation = ref('landscape') + +export function useOrientation () { + return { + orientation + } +} + +const mediaQuery = window.matchMedia('(min-width: 685px)') +switchOrientation(mediaQuery) +mediaQuery.addListener(switchOrientation) + +function switchOrientation (mediaQueryEvent) { + orientation.value = mediaQueryEvent.matches ? 'landscape' : 'portrait' +} diff --git a/packages/app-frontend/src/features/settings/GlobalSettings.vue b/packages/app-frontend/src/features/settings/GlobalSettings.vue new file mode 100644 index 000000000..c1f35a375 --- /dev/null +++ b/packages/app-frontend/src/features/settings/GlobalSettings.vue @@ -0,0 +1,9 @@ + diff --git a/packages/app-frontend/src/features/timeline/Timeline.vue b/packages/app-frontend/src/features/timeline/Timeline.vue new file mode 100644 index 000000000..8ec6dd123 --- /dev/null +++ b/packages/app-frontend/src/features/timeline/Timeline.vue @@ -0,0 +1,9 @@ + diff --git a/packages/app-frontend/src/index.js b/packages/app-frontend/src/index.js index 21aefa807..666785082 100644 --- a/packages/app-frontend/src/index.js +++ b/packages/app-frontend/src/index.js @@ -1,66 +1,11 @@ -import Vue from 'vue' -import AppConnecting from './AppConnecting.vue' -import App from './App.vue' -import router from './router' -import { createStore } from './store' -import * as filters from './filters' -import './plugins' -import VuexResolve from './views/vuex/resolve' -import { parse } from '@utils/util' -import { isChrome, initEnv } from '@utils/env' -import SharedData, { init as initSharedData, destroy as destroySharedData } from '@utils/shared-data' -import { init as initStorage } from '@utils/storage' +import './assets/style/index.styl' -// register filters -for (const key in filters) { - Vue.filter(key, filters[key]) -} - -// UI - -let panelShown = !isChrome -let pendingAction = null - -const chromeTheme = isChrome ? chrome.devtools.panels.themeName : undefined -const isBeta = process.env.RELEASE_CHANNEL === 'beta' +import './composition' +import { initStorage } from '@utils/storage' +import { createApp, connectApp } from './app' -// Capture and log devtool errors when running as actual extension -// so that we can debug it by inspecting the background page. -// We do want the errors to be thrown in the dev shell though. -if (isChrome) { - Vue.config.errorHandler = (e, vm) => { - bridge.send('ERROR', { - message: e.message, - stack: e.stack, - component: vm.$options.name || vm.$options._componentTag || 'anonymous' - }) - } - - chrome.runtime.onMessage.addListener(request => { - if (request === 'vue-panel-shown') { - onPanelShown() - } else if (request === 'vue-panel-hidden') { - onPanelHidden() - } else if (request === 'vue-get-context-menu-target') { - getContextMenuInstance() - } - }) -} - -Vue.options.renderError = (h, e) => { - return h('pre', { - style: { - backgroundColor: 'red', - color: 'white', - fontSize: '12px', - padding: '10px' - } - }, e.stack) -} - -let app = new Vue({ - render: (h) => h(AppConnecting) -}).$mount('#app') +const app = createApp() +app.$mount('#app') /** * Create the main devtools app. Expects to be called with a shell interface @@ -70,217 +15,15 @@ let app = new Vue({ * - connect(bridge => {}) * - onReload(reloadFn) */ - -export function initDevTools (shell) { - initStorage().then(() => { - initApp(shell) - shell.onReload(() => { - if (app) { - app.$el.classList.add('disconnected') - app.$destroy() - } - bridge.removeAllListeners() - initApp(shell) - }) - }) -} - -/** - * Connect then init the app. We need to reconnect on every reload, because a - * new backend will be injected. - * - * @param {Object} shell - */ - -function initApp (shell) { - shell.connect(bridge => { - window.bridge = bridge - - if (Vue.prototype.hasOwnProperty('$shared')) { - destroySharedData() - } else { - Object.defineProperty(Vue.prototype, '$shared', { - get: () => SharedData - }) +export async function initDevTools (shell) { + await initStorage() + connectApp(app, shell) + shell.onReload(() => { + if (app) { + app.$el.classList.add('disconnected') + app.$destroy() } - - initSharedData({ - bridge, - Vue, - persist: true - }).then(() => { - if (SharedData.logDetected) { - bridge.send('log-detected-vue') - } - - const store = createStore() - - bridge.once('ready', version => { - store.commit( - 'SHOW_MESSAGE', - 'Ready. Detected Vue ' + version + '.' - ) - bridge.send('events:toggle-recording', store.state.events.enabled) - - if (isChrome) { - chrome.runtime.sendMessage('vue-panel-load') - } - }) - - bridge.once('proxy-fail', () => { - store.commit( - 'SHOW_MESSAGE', - 'Proxy injection failed.' - ) - }) - - bridge.on('flush', payload => { - store.commit('components/FLUSH', parse(payload)) - }) - - bridge.on('instance-details', details => { - store.commit('components/RECEIVE_INSTANCE_DETAILS', parse(details)) - }) - - bridge.on('toggle-instance', payload => { - store.commit('components/TOGGLE_INSTANCE', parse(payload)) - }) - - bridge.on('vuex:init', () => { - store.commit('vuex/INIT') - }) - - bridge.on('vuex:mutation', payload => { - store.dispatch('vuex/receiveMutation', payload) - }) - - bridge.on('vuex:inspected-state', ({ index, snapshot }) => { - store.commit('vuex/RECEIVE_STATE', { index, snapshot }) - - if (index === -1) { - store.commit('vuex/UPDATE_BASE_STATE', snapshot) - } else if (store.getters['vuex/absoluteInspectedIndex'] === index) { - store.commit('vuex/UPDATE_INSPECTED_STATE', snapshot) - } else { - console.log('vuex:inspected-state wrong index', index, 'expected:', store.getters['vuex/absoluteInspectedIndex']) - } - - if (VuexResolve.travel) { - VuexResolve.travel(snapshot) - } - - requestAnimationFrame(() => { - SharedData.snapshotLoading = false - }) - }) - - bridge.on('event:triggered', payload => { - store.commit('events/RECEIVE_EVENT', parse(payload)) - if (router.currentRoute.name !== 'events') { - store.commit('events/INCREASE_NEW_EVENT_COUNT') - } - }) - - bridge.on('router:init', payload => { - store.commit('router/INIT', parse(payload)) - }) - - bridge.on('router:changed', payload => { - store.commit('router/CHANGED', parse(payload)) - }) - - bridge.on('routes:init', payload => { - store.commit('routes/INIT', parse(payload)) - }) - - bridge.on('routes:changed', payload => { - store.commit('routes/CHANGED', parse(payload)) - }) - - bridge.on('events:reset', () => { - store.commit('events/RESET') - }) - - bridge.on('inspect-instance', id => { - ensurePaneShown(() => { - bridge.send('select-instance', id) - router.push({ name: 'components' }) - const instance = store.state.components.instancesMap[id] - instance && store.dispatch('components/toggleInstance', { - instance, - expanded: true, - parent: true - }) - }) - }) - - bridge.on('perf:add-metric', data => { - store.commit('perf/ADD_METRIC', data) - }) - - bridge.on('perf:upsert-metric', ({ type, data }) => { - store.commit('perf/UPSERT_METRIC', { type, data }) - }) - - initEnv(Vue) - - if (app) { - app.$destroy() - } - - app = new Vue({ - extends: App, - router, - store, - - data: { - isBeta - }, - - watch: { - '$shared.theme': { - handler (value) { - if (value === 'dark' || value === 'high-contrast' || (value === 'auto' && chromeTheme === 'dark')) { - document.body.classList.add('vue-ui-dark-mode') - } else { - document.body.classList.remove('vue-ui-dark-mode') - } - if (value === 'high-contrast') { - document.body.classList.add('vue-ui-high-contrast') - } else { - document.body.classList.remove('vue-ui-high-contrast') - } - }, - immediate: true - } - } - }).$mount('#app') - }) + bridge.removeAllListeners() + connectApp(app, shell) }) } - -function getContextMenuInstance () { - bridge.send('get-context-menu-target') -} - -// Pane visibility management - -function ensurePaneShown (cb) { - if (panelShown) { - cb() - } else { - pendingAction = cb - } -} - -function onPanelShown () { - panelShown = true - if (pendingAction) { - pendingAction() - pendingAction = null - } -} - -function onPanelHidden () { - panelShown = false -} diff --git a/packages/app-frontend/src/plugins/index.js b/packages/app-frontend/src/plugins/index.js new file mode 100644 index 000000000..d30f6f8be --- /dev/null +++ b/packages/app-frontend/src/plugins/index.js @@ -0,0 +1,59 @@ +import Vue from 'vue' +import PortalVue from 'portal-vue' +import VueUi, { generateHtmlIcon } from '@vue/ui' +import VueVirtualScroller from 'vue-virtual-scroller' +import 'vue-virtual-scroller/dist/vue-virtual-scroller.css' +import VI18n from './i18n' +import Responsive from './responsive' +import GlobalRefs from './global-refs' +import { keys } from '@utils/env' + +export function setupPlugins () { + Vue.use(PortalVue) + Vue.use(VueUi) + Vue.use(VueVirtualScroller) + + const currentLocale = 'en' + const locales = require.context('../locales') + const replacers = [ + { reg: //g, replace: '' }, + { reg: //g, replace: '' }, + { reg: /<\/(input|mono)>/g, replace: '' }, + { reg: /\[\[(\S+)\]\]/g, replace: '$1' }, + { reg: /<<(\S+)>>/g, replace: (match, p1) => generateHtmlIcon(p1) } + ] + + Vue.use(VI18n, { + strings: locales(`./${currentLocale}`).default, + defaultValues: { + keys + }, + replacer: text => { + for (const replacer of replacers) { + text = text.replace(replacer.reg, replacer.replace) + } + return text + } + }) + + Vue.use(Responsive, { + computed: { + wide () { + return this.width >= 1050 + }, + tall () { + return this.height >= 350 + } + } + }) + + Vue.use(GlobalRefs, { + refs: { + leftScroll: () => document.querySelector('.left .scroll'), + leftRecycleList: () => document.querySelector('.left .vue-recycle-scroller'), + rightScroll: () => document.querySelector('.right .scroll') + } + }) + + Vue.use(Responsive) +} diff --git a/packages/app-frontend/src/router.js b/packages/app-frontend/src/router.js index 7b7d24062..7455385d9 100644 --- a/packages/app-frontend/src/router.js +++ b/packages/app-frontend/src/router.js @@ -1,78 +1,59 @@ import Vue from 'vue' import VueRouter from 'vue-router' - -import ComponentsTab from './views/components/ComponentsTab.vue' -import VuexTab from './views/vuex/VuexTab.vue' -import EventsTab from './views/events/EventsTab.vue' -import PerfTab from './views/perf/PerfTab.vue' -import ComponentRenderStats from './views/perf/ComponentRenderStats.vue' -import FramerateGraph from './views/perf/FramerateGraph.vue' -import SettingsTab from './views/settings/SettingsTab.vue' -import RouterTab from './views/router/RouterTab.vue' -import RoutesTab from './views/routes/RoutesTab.vue' +import ComponentsInspector from './features/components/ComponentsInspector.vue' +import Timeline from './features/timeline/Timeline.vue' +import GlobalSettings from './features/settings/GlobalSettings.vue' Vue.use(VueRouter) +const RouterView = { + render: h => h('router-view') +} + const routes = [ { path: '/', - redirect: { name: 'components' } + redirect: { + name: 'inspector-components' + } }, { - path: '/components', - name: 'components', - component: ComponentsTab - }, - { - path: '/vuex', - name: 'vuex', - component: VuexTab - }, - { - path: '/events', - name: 'events', - component: EventsTab - }, - { - path: '/router', - name: 'router', - component: RouterTab - }, - { - path: '/routes', - name: 'routes', - component: RoutesTab - }, - { - path: '/perf', - component: PerfTab, - name: 'perf', + path: '/app/:appId', + component: RouterView, children: [ { - path: 'fps', - name: 'fps', - component: FramerateGraph + path: 'inspector', + name: 'inspector', + component: RouterView, + children: [ + { + path: 'components/:componentId?', + name: 'inspector-components', + component: ComponentsInspector + } + ] + }, + { + path: 'timeline', + name: 'timeline', + component: Timeline }, { - path: 'component-render', - name: 'component-render', - component: ComponentRenderStats + path: 'settings', + name: 'global-settings', + component: GlobalSettings } ] }, - { - path: '/settings', - name: 'settings', - component: SettingsTab - }, { path: '*', redirect: '/' } ] -const router = new VueRouter({ - routes -}) - -export default router +export function createRouter () { + const router = new VueRouter({ + routes + }) + return router +} diff --git a/packages/app-frontend/src/util/format/index.js b/packages/app-frontend/src/util/format/index.js new file mode 100644 index 000000000..4f58395ec --- /dev/null +++ b/packages/app-frontend/src/util/format/index.js @@ -0,0 +1,2 @@ +export * from './time' +export * from './value' diff --git a/packages/app-frontend/src/util/format/time.js b/packages/app-frontend/src/util/format/time.js new file mode 100644 index 000000000..032b295ee --- /dev/null +++ b/packages/app-frontend/src/util/format/time.js @@ -0,0 +1,4 @@ +export function formatTime (timestamp, format) { + const date = new Date(timestamp) + return `${date.toString().match(/\d\d:\d\d:\d\d/)[0]}${format === 'ms' ? '.' + String(date.getMilliseconds()).padStart(3, '0') : ''}` +} diff --git a/packages/app-frontend/src/util/format/value.js b/packages/app-frontend/src/util/format/value.js new file mode 100644 index 000000000..e308ec61c --- /dev/null +++ b/packages/app-frontend/src/util/format/value.js @@ -0,0 +1,70 @@ +import { + UNDEFINED, + INFINITY, + NEGATIVE_INFINITY, + NAN, + isPlainObject, + escape, + specialTokenToString +} from '@utils/util' + +const rawTypeRE = /^\[object (\w+)]$/ +const specialTypeRE = /^\[native (\w+) (.*)\]$/ + +export function valueType (value) { + const type = typeof value + if (value == null || value === UNDEFINED) { + return 'null' + } else if ( + type === 'boolean' || + type === 'number' || + value === INFINITY || + value === NEGATIVE_INFINITY || + value === NAN + ) { + return 'literal' + } else if (value && value._custom) { + return 'custom' + } else if (type === 'string') { + if (specialTypeRE.test(value)) { + const [, type] = specialTypeRE.exec(value) + return `native ${type}` + } else { + return 'string' + } + } else if (Array.isArray(value) || (value && value._isArray)) { + return 'array' + } else if (isPlainObject(value)) { + return 'plain-object' + } else { + return 'unknown' + } +} + +export function formattedValue (value, quotes = true) { + let result + const type = valueType(value) + if ((result = specialTokenToString(value))) { + return result + } else if (type === 'custom') { + return value._custom.display + } else if (type === 'array') { + return 'Array[' + value.length + ']' + } else if (type === 'plain-object') { + return 'Object' + (Object.keys(value).length ? '' : ' (empty)') + } else if (type.includes('native')) { + return escape(specialTypeRE.exec(value)[2]) + } else if (typeof value === 'string') { + const typeMatch = value.match(rawTypeRE) + if (typeMatch) { + value = escape(typeMatch[1]) + } else if (quotes) { + value = `"${escape(value)}"` + } else { + value = escape(value) + } + value = value.replace(/ /g, ' ') + .replace(/\n/g, '\\n') + } + return value +} diff --git a/packages/app-frontend/src/util/router.js b/packages/app-frontend/src/util/router.js new file mode 100644 index 000000000..2f72f81ed --- /dev/null +++ b/packages/app-frontend/src/util/router.js @@ -0,0 +1,10 @@ +import { getCurrentInstance, computed } from '@vue/composition-api' + +export function useRouter () { + return getCurrentInstance().$router +} + +export function useRoute () { + const vm = getCurrentInstance() + return computed(() => vm.$route) +} diff --git a/packages/build-tools/src/createConfig.js b/packages/build-tools/src/createConfig.js index 00dd7f89a..8d0c570a7 100644 --- a/packages/build-tools/src/createConfig.js +++ b/packages/build-tools/src/createConfig.js @@ -19,7 +19,7 @@ exports.createConfig = (config, target = { chrome: 52, firefox: 48 }) => { extensions: ['.js', '.vue'], alias: { '@front': '@vue-devtools/app-frontend/src', - '@back': '@vue-devtools/app-backend/src', + '@back': '@vue-devtools/app-backend-core/lib', '@utils': '@vue-devtools/shared-utils/lib' }, symlinks: false @@ -43,7 +43,7 @@ exports.createConfig = (config, target = { chrome: 52, firefox: 48 }) => { } }, { - test: /\.css$/, + test: /\.(css|postcss|pcss)$/, use: [ 'vue-style-loader', 'css-loader', @@ -61,14 +61,14 @@ exports.createConfig = (config, target = { chrome: 52, firefox: 48 }) => { loader: 'style-resources-loader', options: { patterns: [ - require.resolve('@vue-devtools/app-frontend/src/style/imports.styl') + require.resolve('@vue-devtools/app-frontend/src/assets/style/imports.styl') ] } } ] }, { - test: /\.(png|woff2)$/, + test: /\.(png|woff2|svg)$/, loader: 'url-loader?limit=0' } ] diff --git a/packages/shared-utils/src/backend.ts b/packages/shared-utils/src/backend.ts new file mode 100644 index 000000000..5f5fd01ab --- /dev/null +++ b/packages/shared-utils/src/backend.ts @@ -0,0 +1,66 @@ +export const backendInjections = { + instanceMap: null, + getCustomInstanceDetails: null +} + +export function getInstanceMap () { + return backendInjections.instanceMap +} + +export function getCustomInstanceDetails (instance) { + return backendInjections.getCustomInstanceDetails(instance) +} + +export function getCustomRouterDetails (router) { + return { + _custom: { + type: 'router', + display: 'VueRouter', + value: { + options: router.options, + currentRoute: router.currentRoute + }, + fields: { + abstract: true + } + } + } +} + +export function getCustomStoreDetails (store) { + return { + _custom: { + type: 'store', + display: 'Store', + value: { + state: store.state, + getters: getCatchedGetters(store) + }, + fields: { + abstract: true + } + } + } +} + +export function getCatchedGetters (store) { + const getters = {} + + const origGetters = store.getters || {} + const keys = Object.keys(origGetters) + for (let i = 0; i < keys.length; i++) { + const key = keys[i] + Object.defineProperty(getters, key, { + enumerable: true, + get: () => { + try { + return origGetters[key] + } catch (e) { + return e + } + } + }) + } + + return getters +} diff --git a/packages/shared-utils/src/consts.ts b/packages/shared-utils/src/consts.ts index a063d6f55..19dae3a17 100644 --- a/packages/shared-utils/src/consts.ts +++ b/packages/shared-utils/src/consts.ts @@ -20,20 +20,23 @@ export enum BridgeEvents { TO_FRONT_APP_LIST = 'f:app:list', TO_BACK_APP_SELECT = 'b:app:select', TO_FRONT_APP_SELECTED = 'f:app:selected', - TO_FRONT_COMPONENT_FLUSH = 'f:component:flush', - TO_BACK_COMPONENT_SELECT = 'b:component:select', - TO_FRONT_COMPONENT_SELECTED = 'f:component:selected', + TO_BACK_COMPONENT_TREE = 'b:component:tree', + TO_FRONT_COMPONENT_TREE = 'f:component:tree', + TO_BACK_COMPONENT_SELECTED_DATA = 'b:component:selected-data', + TO_FRONT_COMPONENT_SELECTED_DATA = 'f:component:selected-data', + TO_BACK_COMPONENT_EXPAND = 'b:component:expand', + TO_FRONT_COMPONENT_EXPAND = 'f:component:expand', TO_BACK_COMPONENT_SCROLL_TO = 'b:component:scroll-to', TO_BACK_COMPONENT_FILTER = 'b:component:filter', TO_BACK_COMPONENT_MOUSE_OVER = 'b:component:mouse-over', TO_BACK_COMPONENT_MOUSE_OUT = 'b:component:mouse-out', TO_BACK_COMPONENT_CONTEXT_MENU_TARGET = 'b:component:context-menu-target', - /** Request a component to be inspected */ - TO_FRONT_COMPONENT_INSPECT = 'f:component:inspect', TO_BACK_COMPONENT_SET_DATA = 'b:component:set-data', } export enum HookEvents { INIT = 'init', + APP_INIT = 'app:init', + APP_ADD = 'app:add', FLUSH = 'flush', } diff --git a/packages/shared-utils/src/index.ts b/packages/shared-utils/src/index.ts index da3e0ed16..6316f1705 100644 --- a/packages/shared-utils/src/index.ts +++ b/packages/shared-utils/src/index.ts @@ -1,3 +1,4 @@ +export * from './backend' export * from './bridge' export * from './consts' export * from './env' diff --git a/packages/shared-utils/src/shared-data.ts b/packages/shared-utils/src/shared-data.ts index 87591a020..b2f4a6db6 100644 --- a/packages/shared-utils/src/shared-data.ts +++ b/packages/shared-utils/src/shared-data.ts @@ -46,12 +46,11 @@ let initRetryCount = 0 export interface SharedDataParams { bridge: Bridge - Vue: any persist: boolean } -export function init (params: SharedDataParams) { - return new Promise((resolve, reject) => { +export function initSharedData (params: SharedDataParams) { + return new Promise((resolve) => { // Mandatory params bridge = params.bridge persist = !!params.persist @@ -120,7 +119,7 @@ export function init (params: SharedDataParams) { }) } -export function destroy () { +export function destroySharedData () { bridge.removeAllListeners('shared-data:set') watchers = {} } diff --git a/packages/shared-utils/src/util.ts b/packages/shared-utils/src/util.ts index fc3ea026b..ba297b8d3 100644 --- a/packages/shared-utils/src/util.ts +++ b/packages/shared-utils/src/util.ts @@ -1,11 +1,11 @@ import path from 'path' import { stringifyCircularAutoChunks, parseCircularAutoChunks } from './transfer' -// @ts-ignore -import { instanceMap, getCustomInstanceDetails } from '@back' -// @ts-ignore -import { getCustomStoreDetails } from '@back/vuex' -// @ts-ignore -import { getCustomRouterDetails } from '@back/router' +import { + getInstanceMap, + getCustomInstanceDetails, + getCustomRouterDetails, + getCustomStoreDetails +} from './backend' import SharedData from './shared-data' import { isChrome, target } from './env' @@ -367,7 +367,7 @@ function reviver (key, val) { return NaN } else if (val && val._custom) { if (val._custom.type === 'component') { - return instanceMap.get(val._custom.id) + return getInstanceMap().get(val._custom.id) } else if (val._custom.type === 'map') { return reviveMap(val) } else if (val._custom.type === 'set') { @@ -577,7 +577,7 @@ export function has (object, path, parent = false) { while (object && sections.length > size) { object = object[sections.shift()] } - return object != null && object.hasOwnProperty(sections[0]) + return object != null && Object.prototype.hasOwnProperty.call(object, sections[0]) } export function scrollIntoView (scrollParent, el, center = true) { diff --git a/packages/shared-utils/tsconfig.json b/packages/shared-utils/tsconfig.json index f0a3ecd7e..f565bc660 100644 --- a/packages/shared-utils/tsconfig.json +++ b/packages/shared-utils/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "esnext", + "target": "ES2019", "module": "commonjs", "moduleResolution": "node", "allowSyntheticDefaultImports": true, diff --git a/packages/shell-chrome/src/backend.js b/packages/shell-chrome/src/backend.js index e6458663f..57d6fa45d 100644 --- a/packages/shell-chrome/src/backend.js +++ b/packages/shell-chrome/src/backend.js @@ -1,7 +1,7 @@ // this is injected to the app page when the panel is activated. import { initBackend } from '@back' -import Bridge from '@utils/bridge' +import { Bridge } from '@utils/bridge' window.addEventListener('message', handshake) diff --git a/packages/shell-chrome/src/devtools.js b/packages/shell-chrome/src/devtools.js index 8f01aee90..6a2ef618e 100644 --- a/packages/shell-chrome/src/devtools.js +++ b/packages/shell-chrome/src/devtools.js @@ -1,7 +1,7 @@ // this script is called when the VueDevtools panel is activated. import { initDevTools } from '@front' -import Bridge from '@utils/bridge' +import { Bridge } from '@utils/bridge' initDevTools({ diff --git a/packages/shell-dev-vue3/package.json b/packages/shell-dev-vue3/package.json index bd47b4d80..2a89cab1c 100644 --- a/packages/shell-dev-vue3/package.json +++ b/packages/shell-dev-vue3/package.json @@ -10,11 +10,11 @@ "vue": "^3.0.0-alpha.4" }, "devDependencies": { - "@vue/compiler-sfc": "^3.0.0-alpha.4", + "@vue/compiler-sfc": "^3.0.0-beta.15", "@vue-devtools/build-tools": "^0.0.0", "launch-editor-middleware": "^2.2.1", "mini-css-extract-plugin": "^0.9.0", - "vue-loader": "^16.0.0-alpha.1", + "vue-loader": "^16.0.0-beta.4", "webpack": "^4.19.0", "webpack-cli": "^3.1.0", "webpack-dev-server": "^3.1.8" diff --git a/packages/shell-dev-vue3/src/App.vue b/packages/shell-dev-vue3/src/App.vue index bcbf5d9bc..ede0a6e94 100644 --- a/packages/shell-dev-vue3/src/App.vue +++ b/packages/shell-dev-vue3/src/App.vue @@ -1,16 +1,19 @@ diff --git a/packages/shell-dev-vue3/src/Nested.vue b/packages/shell-dev-vue3/src/Nested.vue new file mode 100644 index 000000000..7a9044b99 --- /dev/null +++ b/packages/shell-dev-vue3/src/Nested.vue @@ -0,0 +1,25 @@ + + + diff --git a/packages/shell-dev-vue3/src/NestedMore.vue b/packages/shell-dev-vue3/src/NestedMore.vue new file mode 100644 index 000000000..cc5fe5a43 --- /dev/null +++ b/packages/shell-dev-vue3/src/NestedMore.vue @@ -0,0 +1,14 @@ + + + diff --git a/packages/shell-dev-vue3/src/main.js b/packages/shell-dev-vue3/src/main.js index 01433bca2..776569523 100644 --- a/packages/shell-dev-vue3/src/main.js +++ b/packages/shell-dev-vue3/src/main.js @@ -1,4 +1,8 @@ -import { createApp } from 'vue' +import { createApp, h } from 'vue' import App from './App.vue' createApp(App).mount('#app') + +createApp({ + render: () => h('h1', {}, 'App 2') +}).mount('#app2') diff --git a/packages/shell-dev-vue3/target.html b/packages/shell-dev-vue3/target.html index 142c8413f..0412d6efe 100644 --- a/packages/shell-dev-vue3/target.html +++ b/packages/shell-dev-vue3/target.html @@ -6,6 +6,7 @@
+
diff --git a/packages/shell-dev-vue3/webpack.config.js b/packages/shell-dev-vue3/webpack.config.js index e81149534..6ba1df788 100644 --- a/packages/shell-dev-vue3/webpack.config.js +++ b/packages/shell-dev-vue3/webpack.config.js @@ -8,7 +8,7 @@ module.exports = createConfig({ entry: { target: './src/main.js', hook: require.resolve('@vue-devtools/shell-host/src/hook.js'), - backend: require.resolve('@vue-devtools/shell-host/src/backend.js'), + backend: require.resolve('@vue-devtools/shell-host/src/backend.js') }, output: { path: path.join(__dirname, '/build'), @@ -17,17 +17,17 @@ module.exports = createConfig({ }, resolve: { alias: { - vue: require.resolve('vue/dist/vue.esm.js'), + vue: require.resolve('vue/dist/vue.esm-bundler.js') }, - symlinks: false, + symlinks: false }, module: { rules: [ { test: /\.vue$/, - loader: require.resolve('vue-loader'), - }, - ], + loader: require.resolve('vue-loader') + } + ] }, devtool: '#cheap-module-source-map', devServer: { @@ -43,10 +43,10 @@ module.exports = createConfig({ if (req.url.startsWith('/target')) { return req.url } - }, - }, - }, - }, + } + } + } + } }) module.exports.plugins[0] = new VueLoaderPlugin() diff --git a/packages/shell-electron/src/backend.js b/packages/shell-electron/src/backend.js index 42fcedd91..90c5b688a 100644 --- a/packages/shell-electron/src/backend.js +++ b/packages/shell-electron/src/backend.js @@ -1,6 +1,6 @@ import io from 'socket.io-client' import { initBackend } from '@back' -import Bridge from '@utils/bridge' +import { Bridge } from '@utils/bridge' import { installToast } from '@back/toast' import { target } from '@utils/env' diff --git a/packages/shell-electron/src/devtools.js b/packages/shell-electron/src/devtools.js index 84011e4f7..427f4643a 100644 --- a/packages/shell-electron/src/devtools.js +++ b/packages/shell-electron/src/devtools.js @@ -1,6 +1,6 @@ import io from 'socket.io-client' import { initDevTools } from '@front' -import Bridge from '@utils/bridge' +import { Bridge } from '@utils/bridge' const port = window.process.env.PORT || 8098 const socket = io('http://localhost:' + port) diff --git a/packages/shell-host/src/backend.js b/packages/shell-host/src/backend.js index 9dd4dddb0..e9f0ba915 100644 --- a/packages/shell-host/src/backend.js +++ b/packages/shell-host/src/backend.js @@ -1,5 +1,5 @@ import { initBackend } from '@back' -import Bridge from '@utils/bridge' +import { Bridge } from '@utils/bridge' const bridge = new Bridge({ listen (fn) { diff --git a/packages/shell-host/src/devtools.js b/packages/shell-host/src/devtools.js index 1b6809a4d..5568a8053 100644 --- a/packages/shell-host/src/devtools.js +++ b/packages/shell-host/src/devtools.js @@ -1,5 +1,5 @@ import { initDevTools } from '@front' -import Bridge from '@utils/bridge' +import { Bridge } from '@utils/bridge' const target = document.getElementById('target') const targetWindow = target.contentWindow diff --git a/packages/shell-host/webpack.config.js b/packages/shell-host/webpack.config.js index 93b971d07..c4eb11ae5 100644 --- a/packages/shell-host/webpack.config.js +++ b/packages/shell-host/webpack.config.js @@ -4,7 +4,7 @@ const openInEditor = require('launch-editor-middleware') module.exports = createConfig({ entry: { - devtools: './src/devtools.js', + devtools: './src/devtools.js' }, output: { path: path.join(__dirname, '/build'), diff --git a/postcss.config.js b/postcss.config.js index 88752c6cb..f2cfe2a3d 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,5 +1,9 @@ +const path = require('path') + module.exports = { plugins: [ - require('autoprefixer') + require('autoprefixer'), + require('tailwindcss')(path.resolve(__dirname, './tailwind.config.js')), + require('postcss-nested') ] } diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 000000000..d56752005 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,38 @@ +module.exports = { + theme: { + extend: { + color: { + green: { + 500: '#42B983' + } + }, + cursor: { + 'ew-resize': 'ew-resize', + 'ns-resize': 'ns-resize' + }, + zIndex: { + 60: 60, + 70: 70, + 80: 80, + 90: 90, + 100: 100 + } + }, + darkSelector: '.vue-ui-dark-mode' + }, + variants: { + backgroundColor: ['dark', 'dark-hover', 'dark-group-hover', 'dark-even', 'dark-odd'], + borderColor: ['dark', 'dark-focus', 'dark-focus-within'], + textColor: ['dark', 'dark-hover', 'dark-active', 'dark-placeholder'] + }, + plugins: [ + require('tailwindcss-dark-mode')() + ], + purge: { + options: { + whitelist: [ + 'vue-ui-dark-mode' + ] + } + } +} diff --git a/yarn.lock b/yarn.lock index f6eb7f70c..6e9d2d378 100644 --- a/yarn.lock +++ b/yarn.lock @@ -140,20 +140,18 @@ unique-filename "^1.1.1" which "^1.3.1" -"@hapi/address@2.x.x": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.2.tgz#1c794cd6dbf2354d1eb1ef10e0303f573e1c7222" - integrity sha512-O4QDrx+JoGKZc6aN64L04vqa7e41tIiLU+OvKdcYaEMP97UttL0f9GIi9/0A4WAMx0uBd6SidDIhktZhgOcN8Q== - -"@hapi/bourne@1.x.x": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" - integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== +"@fullhuman/postcss-purgecss@^2.1.2": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@fullhuman/postcss-purgecss/-/postcss-purgecss-2.3.0.tgz#50a954757ec78696615d3e118e3fee2d9291882e" + integrity sha512-qnKm5dIOyPGJ70kPZ5jiz0I9foVOic0j+cOzNDoo8KoCf6HjicIZ99UfO2OmE7vCYSKAAepEwJtNzpiiZAh9xw== + dependencies: + postcss "7.0.32" + purgecss "^2.3.0" -"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": - version "8.3.2" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.3.2.tgz#91e7188edebc5d876f0b91a860f555ff06f0782b" - integrity sha512-NP5SG4bzix+EtSMtcudp8TvI0lB46mXNo8uFpTDw6tqxGx4z5yx+giIunEFA0Z7oUO4DuWrOJV9xqR2tJVEdyA== +"@hapi/address@^2.1.2": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== "@hapi/formula@^1.2.0": version "1.2.0" @@ -1007,6 +1005,11 @@ dependencies: defer-to-connect "^1.0.1" +"@types/anymatch@*": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" + integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== + "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" @@ -1036,6 +1039,13 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== +"@types/mini-css-extract-plugin@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@types/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.1.tgz#d4bdde5197326fca039d418f4bdda03dc74dc451" + integrity sha512-+mN04Oszdz9tGjUP/c1ReVwJXxSniLd7lF++sv+8dkABxVNthg6uccei+4ssKxRHGoMmPxdn7uBdJWONSJGTGQ== + dependencies: + "@types/webpack" "*" + "@types/minimatch@*": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -1066,11 +1076,49 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/tapable@*": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" + integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== + +"@types/uglify-js@*": + version "3.9.2" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.9.2.tgz#01992579debba674e1e359cd6bcb1a1d0ab2e02b" + integrity sha512-d6dIfpPbF+8B7WiCi2ELY7m0w1joD8cRW4ms88Emdb2w062NeEpbNCeWwVCgzLRpVG+5e74VFSg4rgJ2xXjEiQ== + dependencies: + source-map "^0.6.1" + "@types/webpack-env@^1.15.1": version "1.15.2" resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.15.2.tgz#927997342bb9f4a5185a86e6579a0a18afc33b0a" integrity sha512-67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ== +"@types/webpack-sources@*": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-1.4.0.tgz#e58f1f05f87d39a5c64cf85705bdbdbb94d4d57e" + integrity sha512-c88dKrpSle9BtTqR6ifdaxu1Lvjsl3C5OsfvuUbUwdXymshv1TkufUAXBajCCUM/f/TmnkZC/Esb03MinzSiXQ== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@*": + version "4.41.18" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.18.tgz#2945202617866ecdffa582087f1b6de04a7eed55" + integrity sha512-mQm2R8vV2BZE/qIDVYqmBVLfX73a8muwjs74SpjEyJWJxeXBbsI9L65Pcia9XfYLYWzD1c1V8m+L0p30y2N7MA== + dependencies: + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" + "@typescript-eslint/eslint-plugin@^2.29.0": version "2.34.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9" @@ -1114,10 +1162,74 @@ semver "^7.3.2" tsutils "^3.17.1" -"@vue/component-compiler-utils@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.0.0.tgz#d16fa26b836c06df5baaeb45f3d80afc47e35634" - integrity sha512-am+04/0UX7ektcmvhYmrf84BDVAD8afFOf4asZjN84q8xzxFclbk5x0MtxuKGfp+zjN5WWPJn3fjFAWtDdIGSw== +"@vue/compiler-core@3.0.0-alpha.8": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.0-alpha.8.tgz#849dab7a96c482a00e03a273f075e5d12fd7aaa8" + integrity sha512-TCio1nuzuVUS9oeQycHsjRFTO9Bs4qO43S/73+MyBe/8ZHfhXn0nx6sxYfLytxnoyeo2Z4TGTevGQq7LUKO32g== + dependencies: + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + "@vue/shared" "3.0.0-alpha.8" + estree-walker "^0.8.1" + source-map "^0.6.1" + +"@vue/compiler-core@3.0.0-beta.15": + version "3.0.0-beta.15" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.0-beta.15.tgz#8710a8e3ba15ba1a8b62bd17609d26bd27fdcc45" + integrity sha512-NLNW7tAMHl8ybRgTPTIWLsi8aXHbFngY2x95eEHAdxhNasTY5NsgmQBBH9TBAUQEn6Wo8ybmuvQoNzgcw979Zg== + dependencies: + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + "@vue/shared" "3.0.0-beta.15" + estree-walker "^0.8.1" + source-map "^0.6.1" + +"@vue/compiler-dom@3.0.0-alpha.8": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.0-alpha.8.tgz#82431ffaec5e889cd069954f4f5b90406f123108" + integrity sha512-y/zGe9mIDIqm6l0xVKA0+AQ2iCQZoqt16JKViP6r4TEcF8FdB9cAGV4vC07fGv3HeI2FpaHL5j8KQ15k9BP+Gg== + dependencies: + "@vue/compiler-core" "3.0.0-alpha.8" + "@vue/shared" "3.0.0-alpha.8" + +"@vue/compiler-dom@3.0.0-beta.15": + version "3.0.0-beta.15" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.0-beta.15.tgz#ee6dc9ae1dabb5c5c257d7cc20c5f3e95d5e5f4f" + integrity sha512-0qVaCosZ6XrkmlSOndGlNh33JQ2oao82uWxC/qw4QWBGm6a1DcKkZFIZFYLQWg5ZIcSrEQrR1VzUidBaZw9AIg== + dependencies: + "@vue/compiler-core" "3.0.0-beta.15" + "@vue/shared" "3.0.0-beta.15" + +"@vue/compiler-sfc@^3.0.0-beta.15": + version "3.0.0-beta.15" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.0.0-beta.15.tgz#8a8cc309fd56d5ceca76160743a4eb4e8a43281b" + integrity sha512-ZNHwUCbhGJHNmUQ51Q/Er7kvPUWru00DlWTGC3u/C1wbcqx/bwgzJ6YENbFq0rcGwrUCo7H6nP6ZSAhE2Euiog== + dependencies: + "@vue/compiler-core" "3.0.0-beta.15" + "@vue/compiler-dom" "3.0.0-beta.15" + "@vue/compiler-ssr" "3.0.0-beta.15" + "@vue/shared" "3.0.0-beta.15" + consolidate "^0.15.1" + hash-sum "^2.0.0" + lru-cache "^5.1.1" + merge-source-map "^1.1.0" + postcss "^7.0.27" + postcss-modules "^2.0.0" + postcss-selector-parser "^6.0.2" + source-map "^0.6.1" + +"@vue/compiler-ssr@3.0.0-beta.15": + version "3.0.0-beta.15" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.0.0-beta.15.tgz#516c9f34060eaf088a31e9cbe17ff974dc94cbe8" + integrity sha512-c5qZXJgJL4NEly1utrZ6ftzziGVCvw9XRuwKJ8C7CDi78wqB/Zl4zMvuyN6YnQGUS1WL+xkjFCgNwHddF1coAQ== + dependencies: + "@vue/compiler-dom" "3.0.0-beta.15" + "@vue/shared" "3.0.0-beta.15" + +"@vue/component-compiler-utils@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.1.2.tgz#8213a5ff3202f9f2137fe55370f9e8b9656081c3" + integrity sha512-QLq9z8m79mCinpaEeSURhnNCN6djxpHw0lpP/bodMlt5kALfONpryMthvnrQOlTcIKoF+VoPi+lPHUYeDFPXug== dependencies: consolidate "^0.15.1" hash-sum "^1.0.2" @@ -1125,9 +1237,17 @@ merge-source-map "^1.1.0" postcss "^7.0.14" postcss-selector-parser "^6.0.2" - prettier "^1.18.2" source-map "~0.6.1" vue-template-es2015-compiler "^1.9.0" + optionalDependencies: + prettier "^1.18.2" + +"@vue/composition-api@^0.6.7": + version "0.6.7" + resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-0.6.7.tgz#4481b547cea65dc936432f7efcf1a39f9c69420c" + integrity sha512-WAWEQK4urEsMNe3OyOp7VnMmegRZT2yRB3fDGLRXPMdfuo4+nM+uMEhUgDiUg9LFSXfLWhjwuFOJ2hnS2X7AUw== + dependencies: + tslib "^2.0.0" "@vue/eslint-config-standard@^5.0.0": version "5.1.2" @@ -1145,7 +1265,41 @@ dependencies: vue-eslint-parser "^7.0.0" -"@vue/ui@^0.11.5": +"@vue/reactivity@3.0.0-alpha.8": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.0-alpha.8.tgz#18ece6e7f6872b586035038e868b9a60ee347929" + integrity sha512-E5FLripB13siehg/40TYSWhtV1DrgyjeSEjxm28RreJ2Rr1YS8yX+v9o8jS13RbkZeqhoHnY5DEnb5dsHMf/JA== + dependencies: + "@vue/shared" "3.0.0-alpha.8" + +"@vue/runtime-core@3.0.0-alpha.8": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.0-alpha.8.tgz#a45a8020a059c78c316642a22932255ace58d212" + integrity sha512-nxFzUAZIeY/5P7wTQdkBWyWcINESHINb8sO5fzEs/QKqd0NwoFKopxuWUyeU81L5kbYG03dhiik1q2+VFABS2A== + dependencies: + "@vue/reactivity" "3.0.0-alpha.8" + "@vue/shared" "3.0.0-alpha.8" + +"@vue/runtime-dom@3.0.0-alpha.8": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.0-alpha.8.tgz#717ee80e73c2a4070d5db808f13227a9f0cd25d2" + integrity sha512-vGKtS81UE1AbRFwJyLhbezd+WrrsGrCt96idrygl4JAJhkNHVkLVJHoNRaF7UCqurAt3ay2O1JEyqRhyJHA/nA== + dependencies: + "@vue/runtime-core" "3.0.0-alpha.8" + "@vue/shared" "3.0.0-alpha.8" + csstype "^2.6.8" + +"@vue/shared@3.0.0-alpha.8": + version "3.0.0-alpha.8" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.0-alpha.8.tgz#59dd820e8a7b98847624cb94cdfa89e97993fa3c" + integrity sha512-HcYWx9tU426lQOWOJ4Ht9DCNb1yN3dxe87Fhf1pMNPt4qdHycmCszyimwe48O3VgYWsPndWg7E/RmCh3yjkPpA== + +"@vue/shared@3.0.0-beta.15": + version "3.0.0-beta.15" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.0-beta.15.tgz#77444ab234e229c3fdcc9f394678e167a55757af" + integrity sha512-wViILT5GgxMtnXVQ1xupj43wvnZ41g3NLWaBObs7l+eTxz5vq5yx72qH6HRpsfhR2Mg39jE0cfNLFEpC4lJIUQ== + +"@vue/ui@^0.11.5", "@vue/ui@^0.11.6": version "0.11.6" resolved "https://registry.yarnpkg.com/@vue/ui/-/ui-0.11.6.tgz#4b249774812e0025812adeb74b7078a4be43dfaf" integrity sha512-wYM3j3+mY7VcfpRNRMVXMwPjYHmYy90TDbOi5RXA7Vj3E0fkX9Pd+Mb0KxMmcIbIfWNJVTBzCFX6uzI0nBWCyg== @@ -1355,11 +1509,30 @@ acorn-jsx@^5.2.0: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== +acorn-node@^1.6.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^7.0.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@^6.1.1, acorn@^6.2.1: version "6.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== +acorn@^7.0.0: + version "7.3.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" + integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== + acorn@^7.1.1: version "7.2.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" @@ -1406,12 +1579,12 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== dependencies: - fast-deep-equal "^3.1.1" + fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^6.10.0: +ajv@^6.10.0, ajv@^6.12.0: 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== @@ -1501,7 +1674,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -aproba@^1.1.1: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== @@ -1516,6 +1689,14 @@ arch@2.1.1: resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1695,7 +1876,7 @@ atob-lite@^2.0.0: resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696" integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY= -atob@^2.1.1: +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== @@ -1713,6 +1894,19 @@ autoprefixer@^9.1.5: postcss "^7.0.26" postcss-value-parser "^4.0.2" +autoprefixer@^9.4.5: + version "9.8.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.4.tgz#736f1012673a70fa3464671d78d41abd54512863" + integrity sha512-84aYfXlpUe45lvmS+HoAWKCkirI/sw4JK0/bTeeqgHYco3dcsOn0NqdejISjptsYwNji/21dnkDri9PsYKk89A== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001087" + colorette "^1.2.0" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -1821,12 +2015,7 @@ bluebird@3.5.0: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" integrity sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw= -bluebird@3.7.2, bluebird@^3.1.1, bluebird@^3.5.1, bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bluebird@^3.5.3: +bluebird@3.7.2, bluebird@^3.1.1, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -1957,6 +2146,16 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" +browserslist@^4.12.0: + version "4.12.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.2.tgz#76653d7e4c57caa8a1a28513e2f4e197dc11a711" + integrity sha512-MfZaeYqR8StRZdstAK9hCKDd2StvePCYp5rHzQCPicUjfFliDgmuaBNPHYUTpAywBN8+Wc/d7NYVFkO0aqaBUw== + dependencies: + caniuse-lite "^1.0.30001088" + electron-to-chromium "^1.3.483" + escalade "^3.0.1" + node-releases "^1.1.58" + browserslist@^4.8.3: version "4.9.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.9.1.tgz#01ffb9ca31a1aef7678128fc6a2253316aa7287c" @@ -2046,7 +2245,7 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= -bytes@3.1.0: +bytes@3.1.0, bytes@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== @@ -2181,6 +2380,11 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -2227,10 +2431,15 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== -caniuse-lite@^1.0.30001004: - version "1.0.30001005" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001005.tgz#823054210be638c725521edcb869435dae46728d" - integrity sha512-g78miZm1Z5njjYR216a5812oPiLgV1ssndgGxITHWUopmjUrCswMisA0a2kSB7a0vZRox6JOKhM51+efmYN8Mg== +caniuse-lite@^1.0.30001020, caniuse-lite@^1.0.30001030: + version "1.0.30001089" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001089.tgz#0634653159f1179093a35fd7f36dbd7c4ed85101" + integrity sha512-RnL5dbdqAfQ5oxHjFUU8uiyJMvTKoXfRn0Asp2R5cpRsyiY5+kLl0fcocQijb0V9XAWFEG/2A/vSswRmpYarmA== + +caniuse-lite@^1.0.30001087, caniuse-lite@^1.0.30001088: + version "1.0.30001090" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001090.tgz#ff7766332f60e80fea4903f30d360622e5551850" + integrity sha512-QzPRKDCyp7RhjczTPZaqK3CjPA5Ht2UnXhZhCI4f7QiB5JK6KEuZBxIzyWnB3wO4hgAj4GMRxAhuiacfw0Psjg== caseless@~0.12.0: version "0.12.0" @@ -2265,6 +2474,14 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -2294,12 +2511,7 @@ chokidar@^2.0.2, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chownr@^1.0.1, chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^1.1.2: +chownr@^1.0.1, chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== @@ -2435,7 +2647,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0: +color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -2454,11 +2666,32 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +colorette@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.0.tgz#45306add826d196e8c87236ac05d797f25982e63" + integrity sha512-soRSroY+OF/8OdA3PTQXwaDJeMc7TfknKKrxeSCencL2a4+Tx5zhxmmv7hdpCjhKBjehzp8+bwe/T68K0hpIjw== + columnify@^1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" @@ -2484,6 +2717,11 @@ commander@2.15.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== +commander@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + commander@~2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" @@ -2572,6 +2810,21 @@ concat-stream@^2.0.0: readable-stream "^3.0.2" typedarray "^0.0.6" +concurrently@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-5.2.0.tgz#ead55121d08a0fc817085584c123cedec2e08975" + integrity sha512-XxcDbQ4/43d6CxR7+iV8IZXhur4KbmEJk1CetVMUqCy34z9l0DkszbY+/9wvmSnToTej0SYomc2WSRH+L0zVJw== + dependencies: + chalk "^2.4.2" + date-fns "^2.0.1" + lodash "^4.17.15" + read-pkg "^4.0.1" + rxjs "^6.5.2" + spawn-command "^0.0.2-1" + supports-color "^6.1.0" + tree-kill "^1.2.2" + yargs "^13.3.0" + config-chain@^1.1.11: version "1.1.12" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" @@ -2590,6 +2843,11 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + consolidate@^0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" @@ -2856,6 +3114,18 @@ css-loader@^1.0.0: postcss-value-parser "^3.3.0" source-list-map "^2.0.0" +css-modules-loader-core@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" + integrity sha1-WQhmgpShvs0mGuCkziGwtVHyHRY= + dependencies: + icss-replace-symbols "1.1.0" + postcss "6.0.1" + postcss-modules-extract-imports "1.1.0" + postcss-modules-local-by-default "1.2.0" + postcss-modules-scope "1.1.0" + postcss-modules-values "1.3.0" + css-parse@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4" @@ -2872,6 +3142,11 @@ css-selector-tokenizer@^0.7.0: fastparse "^1.1.2" regexpu-core "^4.6.0" +css-unit-converter@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21" + integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA== + css@^2.0.0: version "2.2.4" resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" @@ -3151,6 +3426,43 @@ d3-zoom@1: d3-selection "1" d3-transition "1" +d3@^5.16.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz#9c5e8d3b56403c79d4ed42fbd62f6113f199c877" + integrity sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw== + dependencies: + d3-array "1" + d3-axis "1" + d3-brush "1" + d3-chord "1" + d3-collection "1" + d3-color "1" + d3-contour "1" + d3-dispatch "1" + d3-drag "1" + d3-dsv "1" + d3-ease "1" + d3-fetch "1" + d3-force "1" + d3-format "1" + d3-geo "1" + d3-hierarchy "1" + d3-interpolate "1" + d3-path "1" + d3-polygon "1" + d3-quadtree "1" + d3-random "1" + d3-scale "2" + d3-scale-chromatic "1" + d3-selection "1" + d3-shape "1" + d3-time "1" + d3-time-format "2" + d3-timer "1" + d3-transition "1" + d3-voronoi "1" + d3-zoom "1" + d3@^5.9.2: version "5.15.0" resolved "https://registry.yarnpkg.com/d3/-/d3-5.15.0.tgz#ffd44958e6a3cb8a59a84429c45429b8bca5677a" @@ -3207,6 +3519,11 @@ date-fns@^1.27.2: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== +date-fns@^2.0.1: + version "2.14.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.14.0.tgz#359a87a265bb34ef2e38f93ecf63ac453f9bc7ba" + integrity sha512-1zD+68jhFgDIM0rF05rcwYO8cExdNqxjq4xP1QKM60Q45mnO6zaMWB4tOzrIr4M4GSLntsKeE4c9Bdl2jhL/yw== + dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -3231,7 +3548,7 @@ debug@3.1.0, debug@~3.1.0: dependencies: ms "2.0.0" -debug@3.2.6, debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: +debug@3.2.6, debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -3346,6 +3663,11 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + del@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" @@ -3364,6 +3686,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -3397,16 +3724,20 @@ detect-indent@^5.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== +detective@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" + integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== + dependencies: + acorn-node "^1.6.1" + defined "^1.0.0" + minimist "^1.1.1" + dezalgo@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" @@ -3523,6 +3854,11 @@ electron-to-chromium@^1.3.363: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.376.tgz#7cb7b5205564a06c8f8ecfbe832cbd47a1224bb1" integrity sha512-cv/PYVz5szeMz192ngilmezyPNFkUjuynuL2vNdiqIrio440nfTDdc0JJU0TS2KHLSVCs9gBbt4CFqM+HcBnjw== +electron-to-chromium@^1.3.483: + version "1.3.483" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.483.tgz#9269e7cfc1c8e72709824da171cbe47ca5e3ca9e" + integrity sha512-+05RF8S9rk8S0G8eBCqBRBaRq7+UN3lDs2DAvnG8SBSgQO3hjy0+qt4CmRk5eiuGbTcaicgXfPmBi31a+BD3lg== + electron@^7.0.0: version "7.1.14" resolved "https://registry.yarnpkg.com/electron/-/electron-7.1.14.tgz#1a58aa5968677a4fe564442f3b72771166c8904c" @@ -3692,7 +4028,7 @@ error-stack-parser@^2.0.0: dependencies: stackframe "^1.1.1" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1: +es-abstract@^1.17.0: version "1.17.4" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== @@ -3726,15 +4062,6 @@ es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: string.prototype.trimleft "^2.1.1" string.prototype.trimright "^2.1.1" -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - 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" @@ -3761,6 +4088,11 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" +escalade@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.1.tgz#52568a77443f6927cd0ab9c73129137533c965ed" + integrity sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -3781,15 +4113,7 @@ eslint-config-standard@^14.1.0: resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== -eslint-import-resolver-node@^0.3.2: - version "0.3.3" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" - integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== - dependencies: - debug "^2.6.9" - resolve "^1.13.1" - -eslint-import-resolver-node@^0.3.3: +eslint-import-resolver-node@^0.3.2, eslint-import-resolver-node@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== @@ -4227,10 +4551,10 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 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== +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.1" @@ -4523,7 +4847,7 @@ fs-extra@5.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^8.1.0: +fs-extra@^8.0.0, fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== @@ -4532,6 +4856,13 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-minipass@^1.2.5: + 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.6.0" + fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -4579,6 +4910,13 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" +generic-names@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" + integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== + dependencies: + loader-utils "^1.1.0" + genfun@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" @@ -4722,10 +5060,10 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.1.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0" - integrity sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ== +glob@^7.0.0, glob@^7.1.1, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -4734,10 +5072,10 @@ glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.1, glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.1.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0" + integrity sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -4824,10 +5162,10 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" -globalthis@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.0.tgz#c5fb98213a9b4595f59cf3e7074f141b4169daae" - integrity sha512-vcCAZTJ3r5Qcu5l8/2oyVdoFwxKgfYnMTR2vwWeux/NAVZK3PwcMaWkdUIn4GJbmKuRK7xcvDsLuK+CKcXyodg== +globalthis@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" + integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw== dependencies: define-properties "^1.1.3" @@ -4937,6 +5275,11 @@ has-cors@1.1.0: resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -5047,12 +5390,7 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -hosted-git-info@^2.7.1: +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: version "2.8.8" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== @@ -5173,6 +5511,11 @@ https-proxy-agent@^2.2.3: agent-base "^4.3.0" debug "^3.1.0" +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -5180,14 +5523,14 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -icss-replace-symbols@^1.1.0: +icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= @@ -5324,7 +5667,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.2, ini@^1.3.4, ini@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -5448,6 +5791,11 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -5460,7 +5808,7 @@ 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.1.5: +is-callable@^1.1.4: version "1.1.5" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== @@ -5649,7 +5997,7 @@ is-promise@^2.1.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= -is-regex@^1.0.4, is-regex@^1.0.5: +is-regex@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== @@ -5879,12 +6227,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: - 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== - -kind-of@^6.0.3: +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== @@ -6097,6 +6440,11 @@ lodash._reinterpolate@^3.0.0: resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -6142,12 +6490,17 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.17.15, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.2.1: +lodash@4.17.15, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.2.1: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -6497,6 +6850,16 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== +mini-css-extract-plugin@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" + integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -6541,7 +6904,7 @@ minimist@1.2.0: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= -minimist@^1.1.3, minimist@^1.2.5: +minimist@^1.1.1, 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== @@ -6741,6 +7104,13 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +node-emoji@^1.8.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" + integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== + dependencies: + lodash.toarray "^4.4.0" + node-fetch-npm@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz#6507d0e17a9ec0be3bec516958a497cec54bf5a4" @@ -6813,6 +7183,11 @@ node-releases@^1.1.50: dependencies: semver "^6.3.0" +node-releases@^1.1.58: + version "1.1.58" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" + integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== + nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -6848,6 +7223,16 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + normalize-url@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" @@ -6858,6 +7243,18 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== +normalize.css@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" + integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== + +npm-bundled@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + dependencies: + npm-normalize-package-bin "^1.0.1" + npm-conf@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" @@ -6895,14 +7292,6 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" - integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-packlist@^1.4.4: version "1.4.8" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" @@ -6935,7 +7324,7 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -npmlog@^4.0.2, npmlog@^4.1.2: +npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -6984,11 +7373,6 @@ object-inspect@^1.7.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== - object-is@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" @@ -7130,7 +7514,7 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-homedir@^1.0.1: +os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= @@ -7559,6 +7943,11 @@ popper.js@^1.16.0: resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== +portal-vue@^2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/portal-vue/-/portal-vue-2.1.7.tgz#ea08069b25b640ca08a5b86f67c612f15f4e4ad4" + integrity sha512-+yCno2oB3xA7irTt0EU5Ezw22L2J51uKAacE/6hMPMoO/mx3h4rXFkkBkT4GFsMDv/vEe8TNKC3ujJJ0PTwb6g== + portfinder@^1.0.25: version "1.0.25" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" @@ -7573,6 +7962,24 @@ 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= +postcss-functions@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e" + integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4= + dependencies: + glob "^7.1.2" + object-assign "^4.1.1" + postcss "^6.0.9" + postcss-value-parser "^3.3.0" + +postcss-js@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.3.tgz#a96f0f23ff3d08cec7dc5b11bf11c5f8077cdab9" + integrity sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w== + dependencies: + camelcase-css "^2.0.1" + postcss "^7.0.18" + postcss-load-config@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" @@ -7591,6 +7998,13 @@ postcss-loader@^3.0.0: postcss-load-config "^2.0.0" schema-utils "^1.0.0" +postcss-modules-extract-imports@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" + integrity sha1-thTJcgvmgW6u41+zpfqh26agXds= + dependencies: + postcss "^6.0.1" + postcss-modules-extract-imports@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" @@ -7598,7 +8012,7 @@ postcss-modules-extract-imports@^1.2.0: dependencies: postcss "^6.0.1" -postcss-modules-local-by-default@^1.2.0: +postcss-modules-local-by-default@1.2.0, postcss-modules-local-by-default@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= @@ -7606,7 +8020,7 @@ postcss-modules-local-by-default@^1.2.0: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-scope@^1.1.0: +postcss-modules-scope@1.1.0, postcss-modules-scope@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= @@ -7614,7 +8028,7 @@ postcss-modules-scope@^1.1.0: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-values@^1.3.0: +postcss-modules-values@1.3.0, postcss-modules-values@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= @@ -7622,7 +8036,26 @@ postcss-modules-values@^1.3.0: icss-replace-symbols "^1.1.0" postcss "^6.0.1" -postcss-selector-parser@^6.0.2: +postcss-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-2.0.0.tgz#473d0d7326651d8408585c2a154115d5cb36cce0" + integrity sha512-eqp+Bva+U2cwQO7dECJ8/V+X+uH1HduNeITB0CPPFAu6d/8LKQ32/j+p9rQ2YL1QytVcrNU0X+fBqgGmQIA1Rw== + dependencies: + css-modules-loader-core "^1.1.0" + generic-names "^2.0.1" + lodash.camelcase "^4.3.0" + postcss "^7.0.1" + string-hash "^1.1.1" + +postcss-nested@^4.1.1, postcss-nested@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-4.2.1.tgz#4bc2e5b35e3b1e481ff81e23b700da7f82a8b248" + integrity sha512-AMayXX8tS0HCp4O4lolp4ygj9wBn32DJWXvG6gCv+ZvJrEa00GUxJcJEEzMh87BIe6FrWdYkpR2cuyqHKrxmXw== + dependencies: + postcss "^7.0.21" + postcss-selector-parser "^6.0.2" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== @@ -7641,7 +8074,30 @@ postcss-value-parser@^4.0.2: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== -postcss@^6.0.1, postcss@^6.0.23: +postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" + integrity sha1-AA29H47vIXqjaLmiEsX8QLKo8/I= + dependencies: + chalk "^1.1.3" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@7.0.32, postcss@^7.0.1, postcss@^7.0.11, postcss@^7.0.18, postcss@^7.0.21, postcss@^7.0.27, postcss@^7.0.32: + version "7.0.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@^6.0.1, postcss@^6.0.23, postcss@^6.0.9: version "6.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== @@ -7650,7 +8106,7 @@ postcss@^6.0.1, postcss@^6.0.23: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.21, postcss@^7.0.26: +postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.26: version "7.0.27" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== @@ -7679,6 +8135,11 @@ prettier@^1.18.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +pretty-hrtime@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= + 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" @@ -7813,6 +8274,16 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +purgecss@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-2.3.0.tgz#5327587abf5795e6541517af8b190a6fb5488bb3" + integrity sha512-BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ== + dependencies: + commander "^5.0.0" + glob "^7.0.0" + postcss "7.0.32" + postcss-selector-parser "^6.0.2" + q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -7866,7 +8337,7 @@ ramda@0.24.1: resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" integrity sha1-w7d1UZfzW43DUCIoJixMkd22uFc= -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -7896,16 +8367,6 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - read-cmd-shim@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.5.tgz#87e43eba50098ba5a32d0ceb583ab8e43b961c16" @@ -7994,6 +8455,15 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" +read-pkg@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" + integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= + dependencies: + normalize-package-data "^2.3.2" + parse-json "^4.0.0" + pify "^3.0.0" + read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" @@ -8024,16 +8494,7 @@ read@1, read@~1.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@^3.0.2: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@^3.0.6: +"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.0.6: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -8085,10 +8546,18 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== +reduce-css-calc@^2.1.6: + version "2.1.7" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz#1ace2e02c286d78abcd01fd92bfe8097ab0602c2" + integrity sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA== + dependencies: + css-unit-converter "^1.1.1" + postcss-value-parser "^3.3.0" + +regenerate-unicode-properties@^8.1.0, regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== dependencies: regenerate "^1.4.0" @@ -8123,19 +8592,22 @@ regexpp@^3.0.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - regexpu-core@^4.5.4: version "4.6.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.1.0" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" + +regexpu-core@^4.6.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== dependencies: regenerate "^1.4.0" regenerate-unicode-properties "^8.2.0" @@ -8144,12 +8616,17 @@ regexpu-core@^4.5.4: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.2.0" +regjsgen@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + regjsgen@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== -regjsparser@^0.6.4: +regjsparser@^0.6.0, regjsparser@^0.6.4: version "0.6.4" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== @@ -8303,14 +8780,14 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.5.0: +resolve@^1.10.0: version "1.12.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== dependencies: path-parse "^1.0.6" -resolve@^1.10.1, resolve@^1.12.0, resolve@^1.13.1: +resolve@^1.10.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== @@ -8535,7 +9012,7 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -8545,7 +9022,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2: +semver@^7.1.2, semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== @@ -8581,10 +9058,12 @@ serialize-javascript@^1.4.0: resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== +serialize-javascript@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" + integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg== + dependencies: + randombytes "^2.1.0" serve-index@^1.9.1: version "1.9.1" @@ -8609,7 +9088,7 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0: +set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -8688,6 +9167,13 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -8838,6 +9324,13 @@ socks@~2.3.2: ip "1.1.5" smart-buffer "^4.1.0" +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" @@ -9100,6 +9593,11 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= +string-hash@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -9109,7 +9607,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -9143,14 +9641,6 @@ string.prototype.trimend@^1.0.0: define-properties "^1.1.3" es-abstract "^1.17.5" -string.prototype.trimleft@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" - integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - string.prototype.trimleft@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" @@ -9160,14 +9650,6 @@ string.prototype.trimleft@^2.1.1: es-abstract "^1.17.5" string.prototype.trimstart "^1.0.0" -string.prototype.trimright@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" - integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== - dependencies: - define-properties "^1.1.3" - function-bind "^1.1.1" - string.prototype.trimright@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" @@ -9273,11 +9755,6 @@ strip-json-comments@^3.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - strong-log-transformer@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" @@ -9297,7 +9774,7 @@ style-resources-loader@^1.2.1: loader-utils "^1.2.3" schema-utils "^2.6.1" -stylus-loader@^3.0.1: +stylus-loader@^3.0.1, stylus-loader@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6" integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA== @@ -9306,7 +9783,7 @@ stylus-loader@^3.0.1: lodash.clonedeep "^4.5.0" when "~3.6.x" -stylus@^0.54.5: +stylus@^0.54.5, stylus@^0.54.7: version "0.54.7" resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.7.tgz#c6ce4793965ee538bcebe50f31537bfc04d88cd2" integrity sha512-Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug== @@ -9346,6 +9823,13 @@ supports-color@^2.0.0: resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.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" @@ -9368,6 +9852,38 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" +tailwindcss-dark-mode@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/tailwindcss-dark-mode/-/tailwindcss-dark-mode-1.1.4.tgz#730f03022dc132c56d5716170520520bf4b1b2cc" + integrity sha512-e0zgg6V5wc+pUHLdjc7oxnbetcPv0hqvUPMfK3tvugwyEZtG8n8FhDu3kkPbu7KwAqB7NQ8aONITv+jB2TVpRA== + dependencies: + tailwindcss "^1.2.0" + +tailwindcss@^1.2.0, tailwindcss@^1.4.6: + version "1.4.6" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-1.4.6.tgz#17b37166ccda08d7e7f9ca995ea48ce1e0089700" + integrity sha512-qV0qInUq1FWih39Bc5CWECdgObSzRrbjGD4ke4kAPSIq6WXrPhv0wwOcUWJgJ66ltT9j+XnSRYikG8WNRU/fTQ== + dependencies: + "@fullhuman/postcss-purgecss" "^2.1.2" + autoprefixer "^9.4.5" + browserslist "^4.12.0" + bytes "^3.0.0" + chalk "^4.0.0" + color "^3.1.2" + detective "^5.2.0" + fs-extra "^8.0.0" + lodash "^4.17.15" + node-emoji "^1.8.1" + normalize.css "^8.0.1" + postcss "^7.0.11" + postcss-functions "^3.0.0" + postcss-js "^2.0.0" + postcss-nested "^4.1.1" + postcss-selector-parser "^6.0.0" + pretty-hrtime "^1.0.3" + reduce-css-calc "^2.1.6" + resolve "^1.14.2" + tapable@^0.1.8: version "0.1.10" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" @@ -9378,7 +9894,7 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: +tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -9408,16 +9924,16 @@ temp-write@^3.4.0: temp-dir "^1.0.0" uuid "^3.0.1" -terser-webpack-plugin@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" - integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== +terser-webpack-plugin@^1.4.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" + integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA== dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^2.1.2" + serialize-javascript "^3.1.0" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" @@ -9580,6 +10096,11 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -9617,6 +10138,11 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== +tslib@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.0.tgz#18d13fc2dce04051e20f074cc8387fd8089ce4f3" + integrity sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g== + tsutils@^3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" @@ -9748,7 +10274,7 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.2.0: +unicode-match-property-value-ecmascript@^1.1.0, unicode-match-property-value-ecmascript@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== @@ -9994,18 +10520,19 @@ vue-loader@^15.7.1, vue-loader@^15.9.0: vue-hot-reload-api "^2.3.0" vue-style-loader "^4.1.0" -vue-loader@^16.0.0-alpha.1: - version "16.0.0-alpha.3" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.0.0-alpha.3.tgz#3471a3325a07a94e569aa281f83361819e4ad280" - integrity sha512-aC7TyXfzGs30mgru4iSfmEC8ZQigwpetaBpr/Q0PA0DZa5lEX9NMT7py9SCrXVq7mZeaYaz0QC/kzuUZtnYMHw== +vue-loader@^16.0.0-beta.4: + version "16.0.0-beta.4" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.0.0-beta.4.tgz#1d9d7894f430992096727c4414bcf3b1ae8c1be9" + integrity sha512-uh/+SIwoN+hny0+GqxdkTuEmt1NV4wb8etF5cKkB1YVMv29ck0byrmkt8IIYadQ3r/fiYsr2brGJqP+hytQwuw== dependencies: + "@types/mini-css-extract-plugin" "^0.9.1" chalk "^3.0.0" hash-sum "^2.0.0" loader-utils "^1.2.3" merge-source-map "^1.1.0" source-map "^0.6.1" -vue-observe-visibility@^0.4.3: +vue-observe-visibility@^0.4.3, vue-observe-visibility@^0.4.4: version "0.4.6" resolved "https://registry.yarnpkg.com/vue-observe-visibility/-/vue-observe-visibility-0.4.6.tgz#878cb8ebcf3078e40807af29774e97105ebd519e" integrity sha512-xo0CEVdkjSjhJoDdLSvoZoQrw/H2BlzB5jrCBKGZNXN2zdZgMuZ9BKrxXDjNP2AxlcCoKc8OahI3F3r3JGLv2Q== @@ -10020,6 +10547,11 @@ vue-router@^3.0.2: resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.1.6.tgz#45f5a3a3843e31702c061dd829393554e4328f89" integrity sha512-GYhn2ynaZlysZMkFE5oCHRUTqE8BWs/a9YbKpNLi0i7xD6KG1EzDqpHQmv1F5gXjr8kL5iIVS8EOtRaVUEXTqA== +vue-router@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.3.4.tgz#4e38abc34a11c41b6c3d8244449a2e363ba6250b" + integrity sha512-SdKRBeoXUjaZ9R/8AyxsdTqkOfMcI5tWxPZOUX5Ie1BTL5rPSZ0O++pbiZCeYeythiZIdLEfkDiQPKIaWk5hDg== + vue-style-loader@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8" @@ -10050,7 +10582,16 @@ vue-virtual-scroller@^1.0.0-rc.2: vue-observe-visibility "^0.4.3" vue-resize "^0.4.5" -vue@^2.6.10: +vue-virtual-scroller@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/vue-virtual-scroller/-/vue-virtual-scroller-1.0.10.tgz#fdf243240001f05bd79aa77f2e2e60403760e2fb" + integrity sha512-Hn4qSBDhRY4XdngPioYy/ykDjrLX/NMm1fQXm/4UQQ/Xv1x8JbHGFZNftQowTcfICgN7yc31AKnUk1UGLJ2ndA== + dependencies: + scrollparent "^2.0.1" + vue-observe-visibility "^0.4.4" + vue-resize "^0.4.5" + +vue@^2.6.10, vue@^2.6.11: version "2.6.11" resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5" integrity sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ== @@ -10069,6 +10610,11 @@ vuex@^3.1.0: resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.3.tgz#f2ad73e3fb73691698b38c93f66e58e267947180" integrity sha512-k8vZqNMSNMgKelVZAPYw5MNb2xWSmVgCKtYKAptvm9YtZiOXnRXFWu//Y9zQNORTrm3dNj1n/WaZZI26tIX6Mw== +vuex@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.4.0.tgz#20cc086062d750769fce1febb34e7fceeaebde45" + integrity sha512-ajtqwEW/QhnrBZQsZxCLHThZZaa+Db45c92Asf46ZDXu6uHXgbfVuBaJ4gzD2r4UX0oMJHstFwd2r2HM4l8umg== + wait-on@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-4.0.0.tgz#4d7e4485ca759968897fd3b0cc50720c0b4ca959" @@ -10400,7 +10946,7 @@ xmlhttprequest-ssl@~1.5.4: resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= -xtend@^4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -10415,7 +10961,7 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.2: +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== @@ -10487,6 +11033,22 @@ yargs@13.2.4: y18n "^4.0.0" yargs-parser "^13.1.0" +yargs@^13.3.0: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + yargs@^14.2.2: version "14.2.3" resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" From 598c70cb7a8ea389fca16a807242e14f58df8304 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Wed, 1 Jul 2020 00:56:09 +0200 Subject: [PATCH 0246/1371] chore: remove commented code --- packages/app-frontend/src/features/components/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/app-frontend/src/features/components/index.js b/packages/app-frontend/src/features/components/index.js index e7cc519f7..8882730c8 100644 --- a/packages/app-frontend/src/features/components/index.js +++ b/packages/app-frontend/src/features/components/index.js @@ -78,7 +78,6 @@ export function useComponents () { return { rootInstances: computed(() => rootInstances.value), - // rootInstances: computed(() => []), selectedComponentId: computed(() => selectedComponentId.value), selectedComponentData: computed(() => selectedComponentData.value), selectedComponentState, From 7bd3b836ba10ac7a7a3e2476a382c6b56b79b1e1 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Wed, 1 Jul 2020 01:08:52 +0200 Subject: [PATCH 0247/1371] feat(components): auto expand 2 first levels --- .../features/components/ComponentTreeNode.vue | 11 +++++++- .../src/features/components/index.js | 27 +++++++++++++++---- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/packages/app-frontend/src/features/components/ComponentTreeNode.vue b/packages/app-frontend/src/features/components/ComponentTreeNode.vue index 6f949f4d9..18dcd417b 100644 --- a/packages/app-frontend/src/features/components/ComponentTreeNode.vue +++ b/packages/app-frontend/src/features/components/ComponentTreeNode.vue @@ -1,9 +1,11 @@ @@ -12,12 +19,12 @@ export default {

Nest children

From f0def06753f0b606ba2401c1cb68ed802cd0e80b Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Wed, 1 Jul 2020 23:28:21 +0200 Subject: [PATCH 0255/1371] fix(inspector): data type tooltip html --- .../app-frontend/src/features/inspector/StateInspector.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/app-frontend/src/features/inspector/StateInspector.vue b/packages/app-frontend/src/features/inspector/StateInspector.vue index 37214195b..15f3bb4fc 100644 --- a/packages/app-frontend/src/features/inspector/StateInspector.vue +++ b/packages/app-frontend/src/features/inspector/StateInspector.vue @@ -14,7 +14,10 @@ ]" >
From 6fe89dc15050e09e653f5d38c29897e4cf0724a9 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Wed, 1 Jul 2020 23:30:50 +0200 Subject: [PATCH 0256/1371] fix(component): clear selected component data when switching apps --- packages/app-frontend/src/features/components/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/app-frontend/src/features/components/index.js b/packages/app-frontend/src/features/components/index.js index d8d79b097..b76964996 100644 --- a/packages/app-frontend/src/features/components/index.js +++ b/packages/app-frontend/src/features/components/index.js @@ -74,6 +74,7 @@ export function useComponents () { onBridge(BridgeEvents.TO_FRONT_APP_SELECTED, ({ id, lastInspectedComponentId }) => { requestComponentTree() + selectedComponentData.value = null if (lastSelectedApp !== null) { selectComponent(lastInspectedComponentId) } From e030cf5d56424a50584212382017663a2c30ef05 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Wed, 1 Jul 2020 23:49:58 +0200 Subject: [PATCH 0257/1371] fix(component): remove tab guard on send --- packages/app-backend-core/src/index.ts | 60 +++++++++++++------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/packages/app-backend-core/src/index.ts b/packages/app-backend-core/src/index.ts index cb852e38a..cd3fa216b 100644 --- a/packages/app-backend-core/src/index.ts +++ b/packages/app-backend-core/src/index.ts @@ -184,42 +184,40 @@ async function flushAll () { } async function sendComponentTreeData (instanceId: string) { - if (ctx.currentTab === BuiltinTabs.COMPONENTS) { - const instance = ctx.currentAppRecord.instanceMap.get(instanceId) - if (!instance) { - console.warn(`Instance uid=${instanceId} not found`) - ctx.bridge.send(BridgeEvents.TO_FRONT_COMPONENT_TREE, { - instanceId, - treeData: null - }) - } else { - const maxDepth = instance === ctx.currentAppRecord.rootInstance ? 2 : 1 - const payload = { - instanceId, - treeData: stringify(await ctx.api.walkComponentTree(instance, maxDepth)) - } - ctx.bridge.send(BridgeEvents.TO_FRONT_COMPONENT_TREE, payload) + if (!instanceId) return + const instance = ctx.currentAppRecord.instanceMap.get(instanceId) + if (!instance) { + console.warn(`Instance uid=${instanceId} not found`) + ctx.bridge.send(BridgeEvents.TO_FRONT_COMPONENT_TREE, { + instanceId, + treeData: null + }) + } else { + const maxDepth = instance === ctx.currentAppRecord.rootInstance ? 2 : 1 + const payload = { + instanceId, + treeData: stringify(await ctx.api.walkComponentTree(instance, maxDepth)) } + ctx.bridge.send(BridgeEvents.TO_FRONT_COMPONENT_TREE, payload) } } async function sendSelectedComponentData (instanceId: string) { - if (ctx.currentTab === BuiltinTabs.COMPONENTS) { - const instance = ctx.currentAppRecord.instanceMap.get(instanceId) - if (!instance) { - console.warn(`Instance uid=${instanceId} not found`) - ctx.bridge.send(BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, { - instanceId, - data: null - }) - } else { - ctx.currentInspectedComponentId = instanceId - ctx.currentAppRecord.lastInspectedComponentId = instanceId - const payload = { - instanceId, - data: stringify(await ctx.api.inspectComponent(instance)) - } - ctx.bridge.send(BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, payload) + if (!instanceId) return + const instance = ctx.currentAppRecord.instanceMap.get(instanceId) + if (!instance) { + console.warn(`Instance uid=${instanceId} not found`) + ctx.bridge.send(BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, { + instanceId, + data: null + }) + } else { + ctx.currentInspectedComponentId = instanceId + ctx.currentAppRecord.lastInspectedComponentId = instanceId + const payload = { + instanceId, + data: stringify(await ctx.api.inspectComponent(instance)) } + ctx.bridge.send(BridgeEvents.TO_FRONT_COMPONENT_SELECTED_DATA, payload) } } From 32afec48603019d12dc71afc77b8426d43937945 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Wed, 1 Jul 2020 23:50:38 +0200 Subject: [PATCH 0258/1371] feat: send current tab to backend --- .../src/features/header/AppHeader.vue | 15 ++++++++++++++- .../app-frontend/src/features/header/tabs.js | 11 +++++++++++ packages/app-frontend/src/router.js | 16 +++++++++++++--- 3 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 packages/app-frontend/src/features/header/tabs.js diff --git a/packages/app-frontend/src/features/header/AppHeader.vue b/packages/app-frontend/src/features/header/AppHeader.vue index 2bcf8bb53..9a79946d9 100644 --- a/packages/app-frontend/src/features/header/AppHeader.vue +++ b/packages/app-frontend/src/features/header/AppHeader.vue @@ -1,8 +1,11 @@ From c1740d5801780428b905dbf9e0d89441577d5457 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 6 Jul 2020 14:13:48 +0200 Subject: [PATCH 0262/1371] feat: handle page reload --- packages/app-backend-core/src/toast.ts | 3 +++ packages/app-frontend/src/app.js | 6 ++--- packages/app-frontend/src/features/App.vue | 23 +++++++++++++++---- .../features/connection/AppDisconnected.vue | 8 +++++++ .../src/features/connection/index.js | 8 ++++++- packages/app-frontend/src/index.js | 6 ++--- 6 files changed, 40 insertions(+), 14 deletions(-) create mode 100644 packages/app-backend-core/src/toast.ts create mode 100644 packages/app-frontend/src/features/connection/AppDisconnected.vue diff --git a/packages/app-backend-core/src/toast.ts b/packages/app-backend-core/src/toast.ts new file mode 100644 index 000000000..ff91ab404 --- /dev/null +++ b/packages/app-backend-core/src/toast.ts @@ -0,0 +1,3 @@ +export function installToast () { + // @TODO +} diff --git a/packages/app-frontend/src/app.js b/packages/app-frontend/src/app.js index ef3aa0884..430b00c01 100644 --- a/packages/app-frontend/src/app.js +++ b/packages/app-frontend/src/app.js @@ -4,7 +4,7 @@ import SharedData, { initSharedData, destroySharedData } from '@utils/shared-dat import App from './features/App.vue' import { createRouter } from './router' import { setBridge } from './features/bridge' -import { setAppConnected } from './features/connection' +import { setAppConnected, setAppInitializing } from './features/connection' import { setupPlugins } from './plugins' import { setupAppsBridgeEvents } from './features/apps' import { setupComponentsBridgeEvents } from './features/components' @@ -51,9 +51,6 @@ export function createApp () { /** * Connect then init the app. We need to reconnect on every reload, because a * new backend will be injected. - * - * @param {Vue} app - * @param {Object} shell */ export function connectApp (app, shell) { shell.connect(async bridge => { @@ -86,5 +83,6 @@ export function connectApp (app, shell) { // @TODO bridge listeners setAppConnected(true) + setAppInitializing(false) }) } diff --git a/packages/app-frontend/src/features/App.vue b/packages/app-frontend/src/features/App.vue index b6fe37ccc..4af2c0788 100644 --- a/packages/app-frontend/src/features/App.vue +++ b/packages/app-frontend/src/features/App.vue @@ -1,6 +1,7 @@ + +
diff --git a/packages/app-frontend/src/features/components/index.js b/packages/app-frontend/src/features/components/index.js index 52efd3db3..4fdf8ba5e 100644 --- a/packages/app-frontend/src/features/components/index.js +++ b/packages/app-frontend/src/features/components/index.js @@ -4,6 +4,7 @@ import groupBy from 'lodash/groupBy' import { BridgeEvents, parse, sortByKey, searchDeepInObject, BuiltinTabs, BridgeSubscriptions } from '@vue-devtools/shared-utils' import { useBridge } from '../bridge' import { useRoute, useRouter } from '@front/util/router' +import { putError } from '../error' const rootInstances = ref([]) let componentsMap = {} @@ -177,6 +178,12 @@ export function resetComponents () { export function setupComponentsBridgeEvents (bridge) { bridge.on(BridgeEvents.TO_FRONT_COMPONENT_TREE, ({ instanceId, treeData }) => { + if (!treeData) { + if (instanceId.endsWith('root')) { + putError('Component tree not supported') + } + return + } const data = parse(treeData) const instance = componentsMap[instanceId] if (instance) { diff --git a/packages/app-frontend/src/features/error/ErrorOverlay.vue b/packages/app-frontend/src/features/error/ErrorOverlay.vue new file mode 100644 index 000000000..fab1fe5a0 --- /dev/null +++ b/packages/app-frontend/src/features/error/ErrorOverlay.vue @@ -0,0 +1,39 @@ + + + diff --git a/packages/app-frontend/src/features/error/index.js b/packages/app-frontend/src/features/error/index.js new file mode 100644 index 000000000..78b9932b5 --- /dev/null +++ b/packages/app-frontend/src/features/error/index.js @@ -0,0 +1,29 @@ +import { ref, computed } from '@vue/composition-api' + +const errors = ref([]) + +export function putError (message, icon = null) { + // Dedupe + if (errors.value.find(e => e.message === message)) { + return + } + + errors.value.push({ + message, + icon + }) +} + +export function clearError () { + errors.value.shift() +} + +export function useError () { + const error = computed(() => errors.value[0]) + + return { + error, + putError, + clearError + } +} From 6a71d5e95697844c3432688b890195bfad29374d Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 12 Jul 2020 13:26:50 +0200 Subject: [PATCH 0282/1371] feat: green hover color --- packages/app-frontend/src/assets/style/variables.styl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app-frontend/src/assets/style/variables.styl b/packages/app-frontend/src/assets/style/variables.styl index 21380f5b5..51eab2e8e 100644 --- a/packages/app-frontend/src/assets/style/variables.styl +++ b/packages/app-frontend/src/assets/style/variables.styl @@ -27,7 +27,7 @@ $active-color = $darkerGreen $border-color = $md-grey-200 $background-color = $white $component-color = $active-color -$hover-color = #E5F2FF +$hover-color = #c2e9d7 $dark-active-color = $active-color $dark-border-color = darken($vue-ui-gray-900, 30%) From 00bb80460957df686badc34284ebf97cf40d43dd Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 12 Jul 2020 13:27:03 +0200 Subject: [PATCH 0283/1371] refactor: split selected component details into component --- .../components/ComponentsInspector.vue | 26 ++---------- .../components/SelectedComponentPane.vue | 40 +++++++++++++++++++ .../src/features/components/index.js | 24 ++++++----- 3 files changed, 59 insertions(+), 31 deletions(-) create mode 100644 packages/app-frontend/src/features/components/SelectedComponentPane.vue diff --git a/packages/app-frontend/src/features/components/ComponentsInspector.vue b/packages/app-frontend/src/features/components/ComponentsInspector.vue index 8316b2f82..a921cc9e4 100644 --- a/packages/app-frontend/src/features/components/ComponentsInspector.vue +++ b/packages/app-frontend/src/features/components/ComponentsInspector.vue @@ -3,21 +3,19 @@ import { onMounted } from '@vue/composition-api' import { useComponents } from '.' import SplitPane from '@front/features/layout/SplitPane.vue' import ComponentTreeNode from './ComponentTreeNode.vue' -import StateInspector from '@front/features/inspector/StateInspector.vue' +import SelectedComponentPane from './SelectedComponentPane.vue' export default { components: { SplitPane, ComponentTreeNode, - StateInspector + SelectedComponentPane }, setup () { const { rootInstances, requestComponentTree, - selectedComponentData, - selectedComponentState, selectLastComponent, subscribeToSelectedData } = useComponents() @@ -30,9 +28,7 @@ export default { }) return { - rootInstances, - selectedComponentData, - selectedComponentState + rootInstances } } } @@ -56,21 +52,7 @@ export default { diff --git a/packages/app-frontend/src/features/components/SelectedComponentPane.vue b/packages/app-frontend/src/features/components/SelectedComponentPane.vue new file mode 100644 index 000000000..dbda599f8 --- /dev/null +++ b/packages/app-frontend/src/features/components/SelectedComponentPane.vue @@ -0,0 +1,40 @@ + + + diff --git a/packages/app-frontend/src/features/components/index.js b/packages/app-frontend/src/features/components/index.js index 4fdf8ba5e..65f2f42c6 100644 --- a/packages/app-frontend/src/features/components/index.js +++ b/packages/app-frontend/src/features/components/index.js @@ -59,12 +59,6 @@ export function useComponents () { immediate: true }) - const selectedComponentState = computed(() => selectedComponentData.value ? groupBy(sortByKey(selectedComponentData.value.state.filter(el => { - return searchDeepInObject({ - [el.key]: el.value - }, selectedComponentStateFilter.value) - })), 'type') : ({})) - function subscribeToSelectedData () { let unsub watch(selectedComponentId, value => { @@ -112,9 +106,6 @@ export function useComponents () { return { rootInstances: computed(() => rootInstances.value), selectedComponentId: computed(() => selectedComponentId.value), - selectedComponentData: computed(() => selectedComponentData.value), - selectedComponentState, - selectedComponentStateFilter, requestComponentTree, selectComponent, selectLastComponent, @@ -169,6 +160,21 @@ export function useComponent (instance) { } } +export function useSelectedComponent () { + const data = computed(() => selectedComponentData.value) + const state = computed(() => selectedComponentData.value ? groupBy(sortByKey(selectedComponentData.value.state.filter(el => { + return searchDeepInObject({ + [el.key]: el.value + }, selectedComponentStateFilter.value) + })), 'type') : ({})) + + return { + data, + state, + stateFilter: selectedComponentStateFilter + } +} + export function resetComponents () { rootInstances.value = [] componentsMap = {} From 5580c408e7dfa97e6a938c18cb213f61ce2073cc Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 12 Jul 2020 13:35:07 +0200 Subject: [PATCH 0284/1371] fix: component state scrolling --- .../components/SelectedComponentPane.vue | 8 +- packages/shell-dev-vue3/src/App.vue | 5 +- packages/shell-dev-vue3/src/NativeTypes.vue | 195 ++++++++++++++++++ packages/shell-dev-vue3/src/Other.vue | 66 ++++++ 4 files changed, 271 insertions(+), 3 deletions(-) create mode 100644 packages/shell-dev-vue3/src/NativeTypes.vue create mode 100644 packages/shell-dev-vue3/src/Other.vue diff --git a/packages/app-frontend/src/features/components/SelectedComponentPane.vue b/packages/app-frontend/src/features/components/SelectedComponentPane.vue index dbda599f8..a22a8e364 100644 --- a/packages/app-frontend/src/features/components/SelectedComponentPane.vue +++ b/packages/app-frontend/src/features/components/SelectedComponentPane.vue @@ -22,8 +22,11 @@ export default { diff --git a/packages/shell-dev-vue3/src/App.vue b/packages/shell-dev-vue3/src/App.vue index ede0a6e94..3b347a57a 100644 --- a/packages/shell-dev-vue3/src/App.vue +++ b/packages/shell-dev-vue3/src/App.vue @@ -1,13 +1,15 @@ @@ -16,4 +18,5 @@ export default {

Hello from Vue 3

+ diff --git a/packages/shell-dev-vue3/src/NativeTypes.vue b/packages/shell-dev-vue3/src/NativeTypes.vue new file mode 100644 index 000000000..d070193f1 --- /dev/null +++ b/packages/shell-dev-vue3/src/NativeTypes.vue @@ -0,0 +1,195 @@ + + + diff --git a/packages/shell-dev-vue3/src/Other.vue b/packages/shell-dev-vue3/src/Other.vue new file mode 100644 index 000000000..74184bdc6 --- /dev/null +++ b/packages/shell-dev-vue3/src/Other.vue @@ -0,0 +1,66 @@ + + + + + From 110d27e7f33056611a68d62e741e253472439af5 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sun, 12 Jul 2020 13:40:10 +0200 Subject: [PATCH 0285/1371] chore(demo): native types --- packages/shell-dev-vue3/src/NativeTypes.vue | 65 ++------------------- 1 file changed, 5 insertions(+), 60 deletions(-) diff --git a/packages/shell-dev-vue3/src/NativeTypes.vue b/packages/shell-dev-vue3/src/NativeTypes.vue index d070193f1..a1ded03cf 100644 --- a/packages/shell-dev-vue3/src/NativeTypes.vue +++ b/packages/shell-dev-vue3/src/NativeTypes.vue @@ -1,15 +1,5 @@ + + diff --git a/packages/app-frontend/src/features/timeline/Timeline.vue b/packages/app-frontend/src/features/timeline/Timeline.vue index 8ec6dd123..f54a668a1 100644 --- a/packages/app-frontend/src/features/timeline/Timeline.vue +++ b/packages/app-frontend/src/features/timeline/Timeline.vue @@ -1,9 +1,59 @@ + + diff --git a/packages/app-frontend/src/features/timeline/TimelineScrollbar.vue b/packages/app-frontend/src/features/timeline/TimelineScrollbar.vue new file mode 100644 index 000000000..2d5baef43 --- /dev/null +++ b/packages/app-frontend/src/features/timeline/TimelineScrollbar.vue @@ -0,0 +1,183 @@ + + + diff --git a/packages/app-frontend/src/features/timeline/TimelineView.vue b/packages/app-frontend/src/features/timeline/TimelineView.vue new file mode 100644 index 000000000..15cb0de62 --- /dev/null +++ b/packages/app-frontend/src/features/timeline/TimelineView.vue @@ -0,0 +1,158 @@ + + + diff --git a/packages/app-frontend/src/features/timeline/index.js b/packages/app-frontend/src/features/timeline/index.js new file mode 100644 index 000000000..289a0d923 --- /dev/null +++ b/packages/app-frontend/src/features/timeline/index.js @@ -0,0 +1,81 @@ +import { ref } from '@vue/composition-api' +import { BridgeEvents } from '@vue-devtools/shared-utils' + +const startTime = ref(0) +const endTime = ref(0) +const minTime = ref(0) +const maxTime = ref(0) + +const layers = ref([]) + +export function resetTimeline () { + const now = Date.now() + startTime.value = now - 1000 + endTime.value = now + minTime.value = now - 1000 + maxTime.value = now + + layers.value = [ + { + id: 'mouse', + label: 'Mouse', + color: 0xA451AF, + events: [] + }, + { + id: 'keyboard', + label: 'Keyboard', + color: 0x8151AF, + events: [] + }, + { + id: 'component-event', + label: 'Component events', + color: 0x41B883, + events: [] + } + ] +} + +export function useTime () { + return { + startTime, + endTime, + minTime, + maxTime + } +} + +export function useLayers () { + return { + layers + } +} + +export function setupTimelineBridgeEvents (bridge) { + resetTimeline() + + bridge.on(BridgeEvents.TO_FRONT_TIMELINE_EVENT, ({ layerId, event }) => { + const layer = layers.value.find(l => l.id === layerId) + if (!layer) { + console.error(`Layer ${layerId} not found`) + return + } + + // Update scrollbar + const scrollTime = event.time + 100 + if (scrollTime > maxTime.value) { + if (endTime.value === maxTime.value) { + if (endTime.value - startTime.value > 10000) { + // Autoscroll + const size = endTime.value - startTime.value + startTime.value = scrollTime - size + } + endTime.value = scrollTime + } + maxTime.value = scrollTime + } + + layer.events.push(event) + }) +} diff --git a/packages/shared-utils/src/consts.ts b/packages/shared-utils/src/consts.ts index dd4e2c195..eed3afc93 100644 --- a/packages/shared-utils/src/consts.ts +++ b/packages/shared-utils/src/consts.ts @@ -34,6 +34,7 @@ export enum BridgeEvents { TO_BACK_COMPONENT_MOUSE_OUT = 'b:component:mouse-out', TO_BACK_COMPONENT_CONTEXT_MENU_TARGET = 'b:component:context-menu-target', TO_BACK_COMPONENT_SET_DATA = 'b:component:set-data', + TO_FRONT_TIMELINE_EVENT = 'f:timeline:event' } export enum BridgeSubscriptions { @@ -49,6 +50,7 @@ export enum HookEvents { COMPONENT_UPDATED = 'component:updated', COMPONENT_ADDED = 'component:added', COMPONENT_REMOVED = 'component:removed', + COMPONENT_EMIT = 'component:emit', /** * @deprecated */ diff --git a/packages/shell-dev-vue3/src/App.vue b/packages/shell-dev-vue3/src/App.vue index 3b347a57a..026f51c47 100644 --- a/packages/shell-dev-vue3/src/App.vue +++ b/packages/shell-dev-vue3/src/App.vue @@ -2,6 +2,7 @@ import Child from './Child.vue' import NestedMore from './NestedMore.vue' import NativeTypes from './NativeTypes.vue' +import EventEmit from './EventEmit.vue' export default { name: 'MyApp', @@ -9,7 +10,8 @@ export default { components: { Child, NestedMore, - NativeTypes + NativeTypes, + EventEmit } } @@ -19,4 +21,5 @@ export default { + diff --git a/packages/shell-dev-vue3/src/EventEmit.vue b/packages/shell-dev-vue3/src/EventEmit.vue new file mode 100644 index 000000000..4dc340054 --- /dev/null +++ b/packages/shell-dev-vue3/src/EventEmit.vue @@ -0,0 +1,7 @@ + diff --git a/tailwind.config.js b/tailwind.config.js index 3f23cd6ee..80effea63 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -25,7 +25,7 @@ module.exports = { darkSelector: '.vue-ui-dark-mode' }, variants: { - backgroundColor: ['dark', 'dark-hover', 'dark-group-hover', 'dark-even', 'dark-odd'], + backgroundColor: ['hover', 'dark', 'dark-hover', 'dark-group-hover', 'dark-even', 'dark-odd'], borderColor: ['dark', 'dark-focus', 'dark-focus-within'], textColor: ['dark', 'dark-hover', 'dark-active', 'dark-placeholder'], visibility: ['group-hover'] diff --git a/yarn.lock b/yarn.lock index 2ecba6e3b..fb84c0585 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1007,6 +1007,318 @@ dependencies: "@types/node" ">= 8" +"@pixi/accessibility@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/accessibility/-/accessibility-5.3.3.tgz#b7bab17e3cf5eb5f511471df943155a4eadf0c6e" + integrity sha512-wC/enJtw5CrdWnu6l5u3VN9UIZPumNSNXlGez2BULY0osiLTywHJPdHpmXMz2YPXw75GsEBzkEvK4LTtnTp21A== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/display" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/app@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/app/-/app-5.3.3.tgz#6357e2e5acc1ed118b7f94c1179cef55ce6ed59c" + integrity sha512-OkO7Kq3N+FPRshVmApuiHKBpobic56VYbLVCMYPy6rjV0hc5ctkchKGFyouJuPt/rHeI6FrqZ0TaON1TShnKiA== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/display" "5.3.3" + +"@pixi/constants@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/constants/-/constants-5.3.3.tgz#faaed2d0ce364d67fe3e69ac97e9db1f6ad6c041" + integrity sha512-IybgxzLlEPm7ihp70cLNKc3IPyqkFuW+idk9Zw2St+OayJTw5ctCnLAg9cducwIVHjPYTvN46BYDa+n0KRWZYw== + +"@pixi/core@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/core/-/core-5.3.3.tgz#4b973ee3d18f6324d63311e8a00a68ecb1996532" + integrity sha512-taw50LnzV+TQVMx5HQA2ZJgF9wuhZ6DeoXHW2KkevYB0ekKYnEO2VMMiRDMcmchtyvHclJebzjeHZLGqDtKDgw== + dependencies: + "@pixi/constants" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/runner" "5.3.3" + "@pixi/settings" "5.3.3" + "@pixi/ticker" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/display@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/display/-/display-5.3.3.tgz#14646b35b80b8586316be3495e3c0e7fa610f499" + integrity sha512-dPm7Vk2BH9byu6RHBYsI9MtjUU8x1HNm/PIi6lIlxANhTjWnhxwfvmrGE7ZcRLThTenNdDVlZ2ke2XAXP98UgA== + dependencies: + "@pixi/math" "5.3.3" + "@pixi/settings" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/extract@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/extract/-/extract-5.3.3.tgz#5ab8e2977823d0ea75db003e45d6c6d72bc2b642" + integrity sha512-CE0GA+tEBPurpaXER2B1aq1sdumKLtCqE/Mms6fYUkIKF9D0Ogw9rqo79QCL9XkLMexa7xVeC3KPPiXW5wrOaA== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/filter-alpha@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/filter-alpha/-/filter-alpha-5.3.3.tgz#2d3e10e8f42f787a5115e81b13265839b2162797" + integrity sha512-AxyHLnvO892va9raZbMMtMtEGDVqO8SvEHHNnCjTBEZ67kVKy0HEYXFOBA6nJZ6BiTgGp9js+7kevi11tfqnJQ== + dependencies: + "@pixi/core" "5.3.3" + +"@pixi/filter-blur@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/filter-blur/-/filter-blur-5.3.3.tgz#c530e40038dec1725a399753ac97faa3418559cf" + integrity sha512-vLN1DL6PQXo4p7j/32PZIf+lhcBVfb9hdphSmtbxlAlpbhMWI52n3YUkeInwHs7Ev08NyhI/UhNWHqjN/lAM3w== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/settings" "5.3.3" + +"@pixi/filter-color-matrix@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/filter-color-matrix/-/filter-color-matrix-5.3.3.tgz#c1ecf83a44f68d78b5436b920b459c5222f373a5" + integrity sha512-HFr+vth5ZHHEFJYcjtWZ+O0s7Z2YWJyDyxr+nTd5Q8AT7gMDTVehpNVrm7ByaCKeEovOZzZI6A347+WmHcNpGg== + dependencies: + "@pixi/core" "5.3.3" + +"@pixi/filter-displacement@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/filter-displacement/-/filter-displacement-5.3.3.tgz#f25193f738b90cc75cd04bbbcd0aefe9ea037af1" + integrity sha512-kvrKMgqW4ELg+yT2p5vmu6h/IER/L8GD1PWyXovnzpI8RG7k8l136F9VvA3wkB6sYuNcXiDtqMtRQy5e6O4+rw== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/math" "5.3.3" + +"@pixi/filter-fxaa@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/filter-fxaa/-/filter-fxaa-5.3.3.tgz#c7701631d60f485b6ec1052f71afb0637ca5f0b8" + integrity sha512-p4vKdBwaoGRNZcoHz2ET8hBF1SoWvy9xU2B3Ci32+c0dg89ZUdGTEW0zimUHi2gMdU+2v/T0lqZ9NC9B6WVYAg== + dependencies: + "@pixi/core" "5.3.3" + +"@pixi/filter-noise@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/filter-noise/-/filter-noise-5.3.3.tgz#5d821d9f83f97d83d4be52f3ecc7e2d06ff1c084" + integrity sha512-HCky3XPk6BYGXTS7d9/FnAHnqq7Rwm5Rlj2XtWW3JItXGCScEBII227xYwrJu5Ke84tpVlDXK4W1/BevZ1AwlQ== + dependencies: + "@pixi/core" "5.3.3" + +"@pixi/graphics@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/graphics/-/graphics-5.3.3.tgz#cfaf5a0a94a811f7359c20875547c14095f1ecec" + integrity sha512-1bn9Jptg3JXgVOw0SrEMdmjSwkTBYDm6fPnPnh4goF3yDozh0xEqmXobVtCgy2fulMfHRzIfbgtRxrBf2mkCAg== + dependencies: + "@pixi/constants" "5.3.3" + "@pixi/core" "5.3.3" + "@pixi/display" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/sprite" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/interaction@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/interaction/-/interaction-5.3.3.tgz#07348e7d25b8e67473ed54f679ebe84ab9ee0400" + integrity sha512-Tjuw4XwmrG1fhGzfn5oGspRJT2OtlH+6V7AHscH0v5Ht1Kvk6aKjNncZuSCXllhGGlIuMu3Nn9WPvDEIvW3JNw== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/display" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/ticker" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/loaders@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/loaders/-/loaders-5.3.3.tgz#d415f25f9af64d97810e459caa2c0aca4b6a1b7c" + integrity sha512-wj0DzniApfDoZA/buMmO/CgCB7Q7SsESForHh7wSd7UC8rrCmz5prUTEICmJGhdHpBuVB7KDPtwaaLtr9Q/kQg== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/utils" "5.3.3" + resource-loader "^3.0.1" + +"@pixi/math@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/math/-/math-5.3.3.tgz#5d40d36fa1701e195083adb84bddf2f6420c2f4c" + integrity sha512-k5C3kQpxlGm2AdBJEUjjW2l2YlSvTKf+54vNOjD4UcEfRoDevC5p4Zg49q3UAu855lrs5qw49AbkrFKsQvPIRA== + +"@pixi/mesh-extras@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/mesh-extras/-/mesh-extras-5.3.3.tgz#99c712fdb1b0a9db66fd95a76de26361a7055ab4" + integrity sha512-V2hARC7nUPaTEFxd+B8GDkSMrMZ38S8/IInqtYzGUy6FtFs7IYKty9Rz/G665eN7ThIq8tZrOVZOl6JRBtEC8A== + dependencies: + "@pixi/constants" "5.3.3" + "@pixi/core" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/mesh" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/mesh@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/mesh/-/mesh-5.3.3.tgz#f0adf0362c18e6e7646b7abaccec47d304cbb405" + integrity sha512-q8w70oAFNdArzOHVnsn7ban68NmO5S5TMg6qSez4A8te6cebMRQsNrT/0dQ/nZcG7ACFK4jiYfbXRQivO+jgVA== + dependencies: + "@pixi/constants" "5.3.3" + "@pixi/core" "5.3.3" + "@pixi/display" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/settings" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/mixin-cache-as-bitmap@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.3.tgz#cac6a2ecf3b72fbae58ab3657998360ddbda7382" + integrity sha512-P1mo3HKDWS8IZLgaP8gujiy4We4vRcxJH6EvQAevf+GsBzdjKfcGgkKzVb9HlyQvsXML5gpTOJuw5eKgRTxSQA== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/display" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/settings" "5.3.3" + "@pixi/sprite" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/mixin-get-child-by-name@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.3.3.tgz#828dc9a7beae603648ebe2ccb67517c7137bff19" + integrity sha512-CksDZ5ZG4/tHZfDOwSuznANduasJg5JR89X3D6E9DVYx4CLVE3G2K1sbeiOJNXfGIKy30UoSD7Y7IFmUzLxp/g== + dependencies: + "@pixi/display" "5.3.3" + +"@pixi/mixin-get-global-position@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.3.3.tgz#5700b03794e5b21f61c015aeda733c3cb625fc75" + integrity sha512-M3faQYDW/ISa1+lhVkjHXRALJ33BMzLN+7x9ucx8VeCmUWvcaLlRo3CaxZsgiR+52Fii5WHl/PF/cMzdkRMF9g== + dependencies: + "@pixi/display" "5.3.3" + "@pixi/math" "5.3.3" + +"@pixi/particles@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/particles/-/particles-5.3.3.tgz#3e9d2d317d6cd11a3736830dfbd4cc0c3a1082c8" + integrity sha512-t+lG8iGNYyS6ujKvC9qQjKzyxvjxqbFxvB6hkXcOKR98JWM2726ZguHouFlIbOzOxYAGoeuHIWSDlnQNvnVE2g== + dependencies: + "@pixi/constants" "5.3.3" + "@pixi/core" "5.3.3" + "@pixi/display" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/polyfill@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/polyfill/-/polyfill-5.3.3.tgz#4d0050b0bb75a7b51841f7bfec4c29243a605be7" + integrity sha512-gmx67A6VmwKllxfIMQWzMUNJ8wJfWPT5FlUR0SoPastdTB/SfbgbyQBgKLZHqgmc6LOh2CrOLhN423lNiAroeA== + dependencies: + es6-promise-polyfill "^1.2.0" + object-assign "^4.1.1" + +"@pixi/prepare@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/prepare/-/prepare-5.3.3.tgz#a3466ecf5256a5c3fb9b86a555db17cc72d54c87" + integrity sha512-DPsKWfYJ97J67YCjPU6uvU+LBdw+64O9LG9vmzfChmYXom5VMQF9yUC6ZoYTHUPmH31iilqzGeMlPUTobnqSog== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/display" "5.3.3" + "@pixi/graphics" "5.3.3" + "@pixi/settings" "5.3.3" + "@pixi/text" "5.3.3" + "@pixi/ticker" "5.3.3" + +"@pixi/runner@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/runner/-/runner-5.3.3.tgz#79fb35b12620d7724c65f4a7aa507190ea825ac0" + integrity sha512-7eLZxxT+PwxuwzcRL1egrnEdLHwD41yFb24pMSo6XM86ppP1tdBjrv5+pLDnUuDEfNjZQxx07FAlZY+sMKANmw== + +"@pixi/settings@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/settings/-/settings-5.3.3.tgz#3ff5f8afc8376d12c7627be043ec317eba139dcd" + integrity sha512-1MYJokqpPUtvYEX0BVi0Pq2Xi6KGmWDV5hlQnTXY9NGv6tmqrPYvIb/uHFaDyVUWmrqsFL3xZ4W5zMo+c/dwVA== + dependencies: + ismobilejs "^1.1.0" + +"@pixi/sprite-animated@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/sprite-animated/-/sprite-animated-5.3.3.tgz#f24949ae04aeff9ff44e22544bc8b7f336d5209e" + integrity sha512-nG5j8veJ/cFXQTgzafPLkZqaHKbuaHcIj+ZYN1I2f31Y85/pfr2PQQLHbGr+3441wOYkEHht9nHhmZHWlOOZ0Q== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/sprite" "5.3.3" + "@pixi/ticker" "5.3.3" + +"@pixi/sprite-tiling@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/sprite-tiling/-/sprite-tiling-5.3.3.tgz#d7306256b7bf6f13c181ea4a2d95905f5ae69b9d" + integrity sha512-+Xk9AUh82rpArtrnZkw+9aJchrmHZ8QkpjsPRJcgPFHx3WEfABIkT6QEoYbRKiYH34OgO7ZOUXy9hcGPHnxjvw== + dependencies: + "@pixi/constants" "5.3.3" + "@pixi/core" "5.3.3" + "@pixi/display" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/sprite" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/sprite@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/sprite/-/sprite-5.3.3.tgz#1681d5fd0a725581bfee3c9c2c490537bf8d21ea" + integrity sha512-qo7DG0oWS1uIBqfxw2jZPn34RCR6gQ+IjZRBpFxZPKPB1cL359scZmDBqBbQ4bd4rJ/6QXQfzUdGhXfQJtc9oQ== + dependencies: + "@pixi/constants" "5.3.3" + "@pixi/core" "5.3.3" + "@pixi/display" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/settings" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/spritesheet@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/spritesheet/-/spritesheet-5.3.3.tgz#e307400d0afe4aa6e1d8d756a519e391706b5f35" + integrity sha512-pTkOCTL8jsmyAguCgcbz03UPYu+3buRkgua1g/vGyeoZBN2eJ04iSXdB0pfPrsPisxkvThGHyU23UqEDYVtXRQ== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/loaders" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/text-bitmap@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/text-bitmap/-/text-bitmap-5.3.3.tgz#0d658473d6e02ce598f779c207c42333741e15bd" + integrity sha512-QRRdEAFBwmRctp8PCPii5WUPM57T1I3r/EwyTvFCCDubOYOZu4aX/iFpCKZMl5GIphDFaGp8mNvbl+BwjUmBCA== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/display" "5.3.3" + "@pixi/loaders" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/mesh" "5.3.3" + "@pixi/settings" "5.3.3" + "@pixi/text" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/text@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/text/-/text-5.3.3.tgz#d6fc00c52bc054450ae43e2d5c6f7cedcee9ecd2" + integrity sha512-juinZC2yFXnzucWWxSdty9nfIIOAq2WA8DD2k40YL+7Y5L52/ggkgnokeQ2lrTb1BvTfx6YVNlvAsKonUek0Og== + dependencies: + "@pixi/core" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/settings" "5.3.3" + "@pixi/sprite" "5.3.3" + "@pixi/utils" "5.3.3" + +"@pixi/ticker@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/ticker/-/ticker-5.3.3.tgz#a8766d8417879fffd7507175de869805aee25eb2" + integrity sha512-p5F/dwJGwfZWUg5cCPqOnEx5iYGW+huQlZZtrTKKd1KoVehFsrzHeRBOEp4d584jsOmBf7fjJaUTyzsFn0YtOQ== + dependencies: + "@pixi/settings" "5.3.3" + +"@pixi/utils@5.3.3": + version "5.3.3" + resolved "https://registry.yarnpkg.com/@pixi/utils/-/utils-5.3.3.tgz#525321f3bb00e3e001e341020a3edee94cc0d00a" + integrity sha512-GDP2h1Mph9Uei4zmJjzDK6GZ5S9O2A09VySVfWyKgWwP3SQ/Ss0bGYm4sE6+u1NMSz1WCrLgu66H82XuXs2Cbg== + dependencies: + "@pixi/constants" "5.3.3" + "@pixi/settings" "5.3.3" + earcut "^2.1.5" + eventemitter3 "^3.1.0" + url "^0.11.0" + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" @@ -3158,42 +3470,6 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -cypress@=3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-3.4.1.tgz#ca2e4e9864679da686c6a6189603efd409664c30" - integrity sha512-1HBS7t9XXzkt6QHbwfirWYty8vzxNMawGj1yI+Fu6C3/VZJ8UtUngMW6layqwYZzLTZV8tiDpdCNBypn78V4Dg== - dependencies: - "@cypress/listr-verbose-renderer" "0.4.1" - "@cypress/xvfb" "1.2.4" - arch "2.1.1" - bluebird "3.5.0" - cachedir "1.3.0" - chalk "2.4.2" - check-more-types "2.24.0" - commander "2.15.1" - common-tags "1.8.0" - debug "3.2.6" - execa "0.10.0" - executable "4.1.1" - extract-zip "1.6.7" - fs-extra "5.0.0" - getos "3.1.1" - is-ci "1.2.1" - is-installed-globally "0.1.0" - lazy-ass "1.6.0" - listr "0.12.0" - lodash "4.17.15" - log-symbols "2.2.0" - minimist "1.2.0" - moment "2.24.0" - ramda "0.24.1" - request "2.88.0" - request-progress "3.0.0" - supports-color "5.5.0" - tmp "0.1.0" - url "0.11.0" - yauzl "2.10.0" - cypress@^3.1.0: version "3.8.3" resolved "https://registry.yarnpkg.com/cypress/-/cypress-3.8.3.tgz#e921f5482f1cbe5814891c878f26e704bbffd8f4" @@ -3817,6 +4093,11 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +earcut@^2.1.5: + version "2.2.2" + resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.2.tgz#41b0bc35f63e0fe80da7cddff28511e7e2e80d11" + integrity sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -4021,6 +4302,11 @@ es6-error@^4.1.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== +es6-promise-polyfill@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz#f38925f23cb3e3e8ce6cda8ff774fcebbb090cde" + integrity sha1-84kl8jyz4+jObNqP93T867sJDN4= + es6-promise@^4.0.3: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" @@ -6033,6 +6319,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= +ismobilejs@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ismobilejs/-/ismobilejs-1.1.1.tgz#c56ca0ae8e52b24ca0f22ba5ef3215a2ddbbaa0e" + integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw== + isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -6796,6 +7087,11 @@ mini-css-extract-plugin@^0.9.0: schema-utils "^1.0.0" webpack-sources "^1.1.0" +mini-signals@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mini-signals/-/mini-signals-1.2.0.tgz#45b08013c5fae51a24aa1a935cd317c9ed721d74" + integrity sha1-RbCAE8X65RokqhqTXNMXye1yHXQ= + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -7702,6 +7998,11 @@ parse-path@^4.0.0: is-ssh "^1.3.0" protocols "^1.4.0" +parse-uri@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-uri/-/parse-uri-1.0.0.tgz#2872dcc22f1a797acde1583d8a0ac29552ddac20" + integrity sha1-KHLcwi8aeXrN4Vg9igrClVLdrCA= + parse-url@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" @@ -7876,6 +8177,46 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pixi.js@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/pixi.js/-/pixi.js-5.3.3.tgz#6e326a52542f4acd97ea3f8593cb0aeae502df9a" + integrity sha512-uFQOXXyPMAVVayDebSFBS1AFfPT6QYNuz9Vu11yI2/k1DAef/rbYoJpSMM6SeB6dezDJPtIAaXXNxdaYzbe+kg== + dependencies: + "@pixi/accessibility" "5.3.3" + "@pixi/app" "5.3.3" + "@pixi/constants" "5.3.3" + "@pixi/core" "5.3.3" + "@pixi/display" "5.3.3" + "@pixi/extract" "5.3.3" + "@pixi/filter-alpha" "5.3.3" + "@pixi/filter-blur" "5.3.3" + "@pixi/filter-color-matrix" "5.3.3" + "@pixi/filter-displacement" "5.3.3" + "@pixi/filter-fxaa" "5.3.3" + "@pixi/filter-noise" "5.3.3" + "@pixi/graphics" "5.3.3" + "@pixi/interaction" "5.3.3" + "@pixi/loaders" "5.3.3" + "@pixi/math" "5.3.3" + "@pixi/mesh" "5.3.3" + "@pixi/mesh-extras" "5.3.3" + "@pixi/mixin-cache-as-bitmap" "5.3.3" + "@pixi/mixin-get-child-by-name" "5.3.3" + "@pixi/mixin-get-global-position" "5.3.3" + "@pixi/particles" "5.3.3" + "@pixi/polyfill" "5.3.3" + "@pixi/prepare" "5.3.3" + "@pixi/runner" "5.3.3" + "@pixi/settings" "5.3.3" + "@pixi/sprite" "5.3.3" + "@pixi/sprite-animated" "5.3.3" + "@pixi/sprite-tiling" "5.3.3" + "@pixi/spritesheet" "5.3.3" + "@pixi/text" "5.3.3" + "@pixi/text-bitmap" "5.3.3" + "@pixi/ticker" "5.3.3" + "@pixi/utils" "5.3.3" + pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" @@ -8722,6 +9063,14 @@ resolve@^1.10.0, resolve@^1.10.1, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.1 dependencies: path-parse "^1.0.6" +resource-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/resource-loader/-/resource-loader-3.0.1.tgz#33355bb5421e2994f59454bbc7f6dbff8df06d47" + integrity sha512-fBuCRbEHdLCI1eglzQhUv9Rrdcmqkydr1r6uHE2cYHvRBrcLXeSmbE/qI/urFt8rPr/IGxir3BUwM5kUK8XoyA== + dependencies: + mini-signals "^1.2.0" + parse-uri "^1.0.0" + responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" From 445cb11d8fec644bdf5090fe302453baae86b813 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 24 Aug 2020 20:24:31 +0200 Subject: [PATCH 0311/1371] feat(timeline): event inspector --- packages/app-backend-core/src/timeline.ts | 29 +++++--- .../src/features/layout/SplitPane.vue | 18 +++-- .../timeline/SelectedEventInspector.vue | 48 +++++++++++++ .../src/features/timeline/Timeline.vue | 39 ++++++---- .../src/features/timeline/TimelineView.vue | 71 +++++++++++++++---- .../src/features/timeline/index.js | 17 ++++- 6 files changed, 178 insertions(+), 44 deletions(-) create mode 100644 packages/app-frontend/src/features/timeline/SelectedEventInspector.vue diff --git a/packages/app-backend-core/src/timeline.ts b/packages/app-backend-core/src/timeline.ts index 9d30d2cd6..64ab5e70b 100644 --- a/packages/app-backend-core/src/timeline.ts +++ b/packages/app-backend-core/src/timeline.ts @@ -1,11 +1,12 @@ import { BackendContext } from '@vue-devtools/app-backend-api' -import { BridgeEvents, HookEvents } from '@vue-devtools/shared-utils' +import { BridgeEvents, HookEvents, stringify } from '@vue-devtools/shared-utils' import { hook } from './global-hook' import { getAppRecord } from './util/app' -export interface Event { +export interface Event { time: number data: TData + meta: TMeta } export function setupTimeline (ctx: BackendContext) { @@ -18,11 +19,11 @@ function setupBuiltinLayers (ctx: BackendContext) { layerId: 'mouse', event: { time: Date.now(), - data: { + data: stringify({ type: 'click', x: event.clientX, y: event.clientY - } + }) } as Event }) }) @@ -32,7 +33,7 @@ function setupBuiltinLayers (ctx: BackendContext) { layerId: 'keyboard', event: { time: Date.now(), - data: { + data: stringify({ type: 'keyup', code: event.keyCode, key: event.key, @@ -40,21 +41,29 @@ function setupBuiltinLayers (ctx: BackendContext) { shiftKey: event.shiftKey, altKey: event.altKey, metaKey: event.metaKey - } + }) } as Event }) }) - hook.on(HookEvents.COMPONENT_EMIT, (app, uid, event, params) => { + hook.on(HookEvents.COMPONENT_EMIT, async (app, instance, event, params) => { const appRecord = getAppRecord(app, ctx) - const id = `${appRecord.id}:${uid}` + const id = `${appRecord.id}:${instance.uid}` ctx.bridge.send(BridgeEvents.TO_FRONT_TIMELINE_EVENT, { layerId: 'component-event', event: { time: Date.now(), - data: { + data: stringify({ + component: { + _custom: { + type: 'component-definition', + display: (await ctx.api.getComponentName(instance)) || 'Unknown Component' + } + }, event, - params, + params + }), + meta: { componentId: id } } as Event diff --git a/packages/app-frontend/src/features/layout/SplitPane.vue b/packages/app-frontend/src/features/layout/SplitPane.vue index f2168028f..a795dddad 100644 --- a/packages/app-frontend/src/features/layout/SplitPane.vue +++ b/packages/app-frontend/src/features/layout/SplitPane.vue @@ -7,6 +7,16 @@ export default { defaultSplit: { type: Number, default: 50 + }, + + min: { + type: Number, + default: 20 + }, + + max: { + type: Number, + default: 80 } }, @@ -15,10 +25,10 @@ export default { const split = ref(props.defaultSplit) const boundSplit = computed(() => { - if (split.value < 20) { - return 20 - } else if (split.value > 80) { - return 80 + if (split.value < props.min) { + return props.min + } else if (split.value > props.max) { + return props.max } else { return split.value } diff --git a/packages/app-frontend/src/features/timeline/SelectedEventInspector.vue b/packages/app-frontend/src/features/timeline/SelectedEventInspector.vue new file mode 100644 index 000000000..bf3616e7a --- /dev/null +++ b/packages/app-frontend/src/features/timeline/SelectedEventInspector.vue @@ -0,0 +1,48 @@ + + + diff --git a/packages/app-frontend/src/features/timeline/Timeline.vue b/packages/app-frontend/src/features/timeline/Timeline.vue index f54a668a1..7c8147679 100644 --- a/packages/app-frontend/src/features/timeline/Timeline.vue +++ b/packages/app-frontend/src/features/timeline/Timeline.vue @@ -3,6 +3,7 @@ import SplitPane from '@front/features/layout/SplitPane.vue' import TimelineView from './TimelineView.vue' import TimelineScrollbar from './TimelineScrollbar.vue' import LayerItem from './LayerItem.vue' +import SelectedEventInspector from './SelectedEventInspector.vue' import { useTime, useLayers } from '.' @@ -11,7 +12,8 @@ export default { SplitPane, LayerItem, TimelineView, - TimelineScrollbar + TimelineScrollbar, + SelectedEventInspector }, setup () { @@ -41,18 +43,29 @@ export default {
diff --git a/packages/app-frontend/src/features/timeline/TimelineView.vue b/packages/app-frontend/src/features/timeline/TimelineView.vue index 15cb0de62..2c5c10036 100644 --- a/packages/app-frontend/src/features/timeline/TimelineView.vue +++ b/packages/app-frontend/src/features/timeline/TimelineView.vue @@ -1,9 +1,9 @@ @@ -22,4 +24,5 @@ export default { + diff --git a/packages/shell-dev-vue3/src/EventNesting.vue b/packages/shell-dev-vue3/src/EventNesting.vue new file mode 100644 index 000000000..9083b3b76 --- /dev/null +++ b/packages/shell-dev-vue3/src/EventNesting.vue @@ -0,0 +1,28 @@ + + + From 90ad767511b6fc6e931286e6d82d95a18da2694f Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Fri, 28 Aug 2020 19:26:06 +0200 Subject: [PATCH 0321/1371] feat(timeline): optimize display with defer --- .../timeline/SelectedEventInspector.vue | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/app-frontend/src/features/timeline/SelectedEventInspector.vue b/packages/app-frontend/src/features/timeline/SelectedEventInspector.vue index a9ce715dd..69e0d0aff 100644 --- a/packages/app-frontend/src/features/timeline/SelectedEventInspector.vue +++ b/packages/app-frontend/src/features/timeline/SelectedEventInspector.vue @@ -1,12 +1,17 @@ + + diff --git a/packages/app-frontend/src/features/components/ComponentTreeNode.vue b/packages/app-frontend/src/features/components/ComponentTreeNode.vue index 17720b30a..90f1aa1b0 100644 --- a/packages/app-frontend/src/features/components/ComponentTreeNode.vue +++ b/packages/app-frontend/src/features/components/ComponentTreeNode.vue @@ -1,5 +1,5 @@ diff --git a/packages/app-frontend/src/features/timeline/LayerItem.vue b/packages/app-frontend/src/features/timeline/LayerItem.vue index b5aabbcba..d34dd9430 100644 --- a/packages/app-frontend/src/features/timeline/LayerItem.vue +++ b/packages/app-frontend/src/features/timeline/LayerItem.vue @@ -10,7 +10,7 @@ export default { + + diff --git a/packages/shell-dev-vue3/src/devtools-plugin/index.js b/packages/shell-dev-vue3/src/devtools-plugin/index.js index 8cb89f641..7df5bdfc8 100644 --- a/packages/shell-dev-vue3/src/devtools-plugin/index.js +++ b/packages/shell-dev-vue3/src/devtools-plugin/index.js @@ -69,7 +69,19 @@ export default { children: [ { id: 'child', - label: `Child ${payload.filter}` + label: `Child ${payload.filter}`, + tags: [ + { + label: 'active', + textColor: 0x000000, + backgroundColor: 0xFF984F + }, + { + label: 'test', + textColor: 0xffffff, + backgroundColor: 0x000000 + } + ] } ] } From 27f25d9b18c757ae48a51d0017d3e5a1a521432b Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 31 Aug 2020 23:33:36 +0200 Subject: [PATCH 0353/1371] fix(timeline): events not redrawing on reset --- packages/app-frontend/src/features/timeline/TimelineView.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/app-frontend/src/features/timeline/TimelineView.vue b/packages/app-frontend/src/features/timeline/TimelineView.vue index 8d4ae0525..70dedcd2c 100644 --- a/packages/app-frontend/src/features/timeline/TimelineView.vue +++ b/packages/app-frontend/src/features/timeline/TimelineView.vue @@ -97,6 +97,7 @@ export default { layerContainers = [] layersMap = {} initLayers() + resetEvents() } onReset(() => { @@ -146,14 +147,14 @@ export default { initEvents() }) - onReset(() => { + function resetEvents () { for (const e of events) { e.g.destroy() e.g = null } events = [] initEvents() - }) + } onEventAdd(event => { if (event.stackParent) return From 602e184542eeff5fec3275704127c0675d0d6d66 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Tue, 1 Sep 2020 17:53:41 +0200 Subject: [PATCH 0354/1371] chore: fix demo error --- packages/shell-dev-vue3/src/devtools-plugin/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/shell-dev-vue3/src/devtools-plugin/index.js b/packages/shell-dev-vue3/src/devtools-plugin/index.js index 7df5bdfc8..6445d32b2 100644 --- a/packages/shell-dev-vue3/src/devtools-plugin/index.js +++ b/packages/shell-dev-vue3/src/devtools-plugin/index.js @@ -127,7 +127,7 @@ export default { // Outside of setupDevtoolsPlugin window.addEventListener('mouseup', event => { - devtoolsApi.addTimelineEvent({ + devtoolsApi && devtoolsApi.addTimelineEvent({ layerId: 'test-layer', event: { time: Date.now(), From dbdfc41985ebe077c35ceb850527b6041334a65e Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Tue, 1 Sep 2020 18:06:29 +0200 Subject: [PATCH 0355/1371] fix(hook): apps length used to show devtools pane --- packages/app-backend-core/src/hook.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/app-backend-core/src/hook.ts b/packages/app-backend-core/src/hook.ts index 55a49e008..68200cfd6 100644 --- a/packages/app-backend-core/src/hook.ts +++ b/packages/app-backend-core/src/hook.ts @@ -21,6 +21,7 @@ export function installHook (target) { initialState: null, storeModules: null, flushStoreModules: null, + apps: [], _replayBuffer (event) { const buffer = this._buffer @@ -106,6 +107,7 @@ export function installHook (target) { version, types } + hook.apps.push(appRecord) hook.emit('app:add', appRecord) }) From f4387597aa07fa943f96b8069130f9159625da25 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Tue, 1 Sep 2020 18:21:02 +0200 Subject: [PATCH 0356/1371] fix(timeline): pixi error in real devtools pane --- packages/app-frontend/package.json | 1 + .../src/features/timeline/TimelineView.vue | 13 ++++++++----- yarn.lock | 9 ++++++++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/app-frontend/package.json b/packages/app-frontend/package.json index 894d3570c..1f24c34c9 100644 --- a/packages/app-frontend/package.json +++ b/packages/app-frontend/package.json @@ -3,6 +3,7 @@ "version": "0.0.0", "private": true, "dependencies": { + "@pixi/unsafe-eval": "^5.3.3", "@vue-devtools/shared-utils": "^0.0.0", "@vue/composition-api": "^0.6.7", "@vue/ui": "^0.11.6", diff --git a/packages/app-frontend/src/features/timeline/TimelineView.vue b/packages/app-frontend/src/features/timeline/TimelineView.vue index 70dedcd2c..fa1594d59 100644 --- a/packages/app-frontend/src/features/timeline/TimelineView.vue +++ b/packages/app-frontend/src/features/timeline/TimelineView.vue @@ -1,5 +1,6 @@ diff --git a/packages/app-frontend/src/features/timeline/Timeline.vue b/packages/app-frontend/src/features/timeline/Timeline.vue index 79d50d362..5272dd6c6 100644 --- a/packages/app-frontend/src/features/timeline/Timeline.vue +++ b/packages/app-frontend/src/features/timeline/Timeline.vue @@ -23,7 +23,8 @@ export default { vScroll, allLayers, isLayerHidden, - setLayerHidden + setLayerHidden, + hoverLayerId } = useLayers() const layersEl = ref() @@ -55,6 +56,7 @@ export default { vScroll, layersEl, onLayersScroll, + hoverLayerId, allLayers, isLayerHidden, setLayerHidden, @@ -83,7 +85,10 @@ export default { v-for="layer of layers" :key="layer.id" :layer="layer" + :hover="hoverLayerId === layer.id" class="flex-none" + @mouseover.native="hoverLayerId = layer.id" + @mouseout.native="hoverLayerId = null" /> diff --git a/packages/app-frontend/src/features/timeline/TimelineView.vue b/packages/app-frontend/src/features/timeline/TimelineView.vue index 5f17c6e12..6ff57158e 100644 --- a/packages/app-frontend/src/features/timeline/TimelineView.vue +++ b/packages/app-frontend/src/features/timeline/TimelineView.vue @@ -47,6 +47,8 @@ export default { antialias: true, autoDensity: true }) + app.stage.interactive = true + app.stage.hitArea = new PIXI.Rectangle(0, 0, 100000, 100000) updateBackground() wrapper.value.appendChild(app.view) }) @@ -69,7 +71,8 @@ export default { // Layers - const { layers, vScroll } = useLayers() + const { layers, vScroll, hoverLayerId } = useLayers() + /** @type {Container[]} */ let layerContainers = [] let layersMap = {} @@ -109,6 +112,47 @@ export default { watch(layers, () => resetLayers()) + // Layer hover + + /** @type {import('pixi.js').Graphics} */ + let layerHoverEffect + + onMounted(() => { + layerHoverEffect = new PIXI.Graphics() + layerHoverEffect.alpha = 0.1 + layerHoverEffect.visible = false + app.stage.addChild(layerHoverEffect) + }) + + function drawLayerHoverEffect () { + if (!layerHoverEffect) return + + if (hoverLayerId.value) { + const { layer } = layersMap[hoverLayerId.value] + layerHoverEffect.clear() + layerHoverEffect.beginFill(layer.color) + layerHoverEffect.drawRect(0, 0, app.view.width, 32) + layerHoverEffect.y = layers.value.indexOf(layer) * 32 + layerHoverEffect.visible = true + } else { + layerHoverEffect.visible = false + } + } + + watch(hoverLayerId, () => { + drawLayerHoverEffect() + }) + + function onMouseMove (event) { + const { offsetY } = event + const layerIndex = Math.floor((offsetY + vScroll.value) / 32) + if (layerIndex < layers.value.length) { + hoverLayerId.value = layers.value[layerIndex].id + } else { + hoverLayerId.value = null + } + } + // Events const { selectedEvent } = useSelectedEvent() @@ -193,8 +237,6 @@ export default { // Event selection onMounted(() => { - app.stage.interactive = true - app.stage.hitArea = new PIXI.Rectangle(0, 0, 100000, 100000) app.stage.addListener('click', event => { let choice let distance = Number.POSITIVE_INFINITY @@ -355,11 +397,14 @@ export default { function onResize () { app.queueResize() queueEventsUpdate() + drawLayerHoverEffect() } return { wrapper, onMouseWheel, + onMouseMove, + hoverLayerId, onResize } } @@ -371,6 +416,8 @@ export default { ref="wrapper" class="relative overflow-hidden" @mousewheel="onMouseWheel" + @mousemove="onMouseMove" + @mouseout="hoverLayerId = null" > diff --git a/packages/app-frontend/src/features/timeline/index.js b/packages/app-frontend/src/features/timeline/index.js index 4e3fd9d8f..a16e2ce89 100644 --- a/packages/app-frontend/src/features/timeline/index.js +++ b/packages/app-frontend/src/features/timeline/index.js @@ -18,6 +18,7 @@ const hiddenLayersPerApp = ref({}) const vScrollPerApp = ref({}) const selectedEvent = ref(null) +const hoverLayerId = ref(null) function layerFactory (options) { return { @@ -60,6 +61,7 @@ export function resetTimeline () { maxTime.value = now layersPerApp.value = {} vScrollPerApp.value = {} + hoverLayerId.value = null fetchLayers() @@ -208,7 +210,8 @@ export function useLayers () { } }), isLayerHidden, - setLayerHidden + setLayerHidden, + hoverLayerId } } From d4415ed819e52358c556cf88da40b430f39cdfdf Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sat, 24 Oct 2020 22:30:42 +0200 Subject: [PATCH 0381/1371] fix: inspector error --- .../app-frontend/src/features/inspector/DataField.vue | 8 ++------ .../app-frontend/src/features/inspector/StateFields.vue | 8 ++------ .../src/features/inspector/StateInspector.vue | 4 +--- 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/packages/app-frontend/src/features/inspector/DataField.vue b/packages/app-frontend/src/features/inspector/DataField.vue index a307ab51a..81bbf1a01 100644 --- a/packages/app-frontend/src/features/inspector/DataField.vue +++ b/packages/app-frontend/src/features/inspector/DataField.vue @@ -180,9 +180,7 @@ :renamable="editable && valueType === 'plain-object'" :force-collapse="forceCollapse" :is-state-field="isStateField" - v-on="{ - 'edit-state': $listeners['edit-state'] - }" + @edit-state="(path, payload) => $emit('edit-state', path, payload)" /> diff --git a/packages/app-frontend/src/features/inspector/StateFields.vue b/packages/app-frontend/src/features/inspector/StateFields.vue index ae7103dc0..7969c53a5 100644 --- a/packages/app-frontend/src/features/inspector/StateFields.vue +++ b/packages/app-frontend/src/features/inspector/StateFields.vue @@ -12,9 +12,7 @@ :editable="field.editable" :force-collapse="forceCollapse" :is-state-field="isStateField(field)" - v-on="{ - 'edit-state': $listeners['edit-state'] - }" + @edit-state="(path, payload) => $emit('edit-state', path, payload)" /> From ec8f3ebdb0e4b3bf6190ad0abc0d175bedb13c91 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Sat, 24 Oct 2020 22:38:23 +0200 Subject: [PATCH 0382/1371] fix(timeline): layer hover effect x position --- packages/app-frontend/src/features/timeline/TimelineView.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/app-frontend/src/features/timeline/TimelineView.vue b/packages/app-frontend/src/features/timeline/TimelineView.vue index 6ff57158e..b72d55e67 100644 --- a/packages/app-frontend/src/features/timeline/TimelineView.vue +++ b/packages/app-frontend/src/features/timeline/TimelineView.vue @@ -132,6 +132,7 @@ export default { layerHoverEffect.clear() layerHoverEffect.beginFill(layer.color) layerHoverEffect.drawRect(0, 0, app.view.width, 32) + layerHoverEffect.x = -app.stage.x layerHoverEffect.y = layers.value.indexOf(layer) * 32 layerHoverEffect.visible = true } else { @@ -319,6 +320,7 @@ export default { function updateCamera () { app.stage.x = -(startTime.value - minTime.value) / (endTime.value - startTime.value) * app.view.width + drawLayerHoverEffect() } watch(startTime, () => queueCameraUpdate()) From 845e3f471a0ff982d78755ee9a95c1066ef69851 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Mon, 7 Dec 2020 15:51:26 +0100 Subject: [PATCH 0383/1371] feat(timeline): allow logType for errors and warnings (#1265) * feat(timeline): allow logType for errors and warnings * refactor(timeline): remove unused code for sprites * refactor: fix lint * remove unused images --- packages/api/src/api/api.ts | 3 +- packages/app-backend-core/src/index.ts | 2 +- .../src/features/timeline/TimelineView.vue | 48 +++++++++++-------- 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/packages/api/src/api/api.ts b/packages/api/src/api/api.ts index a5c6bb5dd..9d13436b0 100644 --- a/packages/api/src/api/api.ts +++ b/packages/api/src/api/api.ts @@ -34,7 +34,8 @@ export interface TimelineEventOptions { export interface TimelineEvent { time: number data: TData - meta: TMeta + logType?: 'default' | 'warning' | 'error' + meta?: TMeta } export interface CustomInspectorOptions { diff --git a/packages/app-backend-core/src/index.ts b/packages/app-backend-core/src/index.ts index 2802d0d09..1c5326800 100644 --- a/packages/app-backend-core/src/index.ts +++ b/packages/app-backend-core/src/index.ts @@ -185,7 +185,7 @@ function connect () { appId: options.all || !app || appId == null ? 'all' : appId, layerId: options.layerId, event: { - time: options.event.time, + ...options.event, data: stringify(options.event.data) } } as TimelineEventPayload) diff --git a/packages/app-frontend/src/features/timeline/TimelineView.vue b/packages/app-frontend/src/features/timeline/TimelineView.vue index b72d55e67..2bd3628fe 100644 --- a/packages/app-frontend/src/features/timeline/TimelineView.vue +++ b/packages/app-frontend/src/features/timeline/TimelineView.vue @@ -84,6 +84,8 @@ export default { container.y = y y += 32 app.stage.addChild(container) + // allow z-index sorting + container.sortableChildren = true layerContainers.push(container) layersMap[layer.id] = { layer, @@ -170,11 +172,13 @@ export default { updateEventPosition(event, g) g.y = 16 event.g = g - if (selectedEvent.value === event) { - drawSelectedEvent(event) - } else { - drawUnselectedEvent(event) - } + setTimeout(() => { + if (selectedEvent.value === event) { + drawSelectedEvent(event) + } else { + drawUnselectedEvent(event) + } + }, 5) container.addChild(g) events.push(event) @@ -254,24 +258,30 @@ export default { }) }) - function drawSelectedEvent (event) { - if (event && event.g) { - const g = event.g - g.clear() - g.beginFill(event.layer.color) - g.drawCircle(0, 0, 7) - } - } + function drawEvent (size, event) { + if (event) { + let color = event.layer.color + for (const subEvent of event.stackedEvents) { + if (subEvent.logType === 'error') { + color = 0xE53E3E + break + } else if (subEvent.logType === 'warning') { + color = 0xECC94B + } + } - function drawUnselectedEvent (event) { - if (event && event.g) { - const g = event.g - g.clear() - g.beginFill(event.layer.color) - g.drawCircle(0, 0, 4) + if (event.g) { + event.g.zIndex = size + event.g.clear() + event.g.beginFill(color) + event.g.drawCircle(0, 0, size) + } } } + const drawSelectedEvent = drawEvent.bind(null, 7) + const drawUnselectedEvent = drawEvent.bind(null, 4) + watch(selectedEvent, (event, oldEvent) => { drawUnselectedEvent(oldEvent) drawSelectedEvent(event) From 381b9720c7a94f73062f89ef4a4cf318a4ec0f19 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Mon, 7 Dec 2020 16:40:13 +0100 Subject: [PATCH 0384/1371] fix(inspector): state not loading initially --- .../features/inspector/custom/CustomInspector.vue | 2 +- .../custom/CustomInspectorSelectedNodePane.vue | 14 ++++++++++++-- .../src/features/inspector/custom/index.js | 12 +++++++++--- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/packages/app-frontend/src/features/inspector/custom/CustomInspector.vue b/packages/app-frontend/src/features/inspector/custom/CustomInspector.vue index d9655a415..6194872be 100644 --- a/packages/app-frontend/src/features/inspector/custom/CustomInspector.vue +++ b/packages/app-frontend/src/features/inspector/custom/CustomInspector.vue @@ -1,9 +1,9 @@ - - diff --git a/packages/app-frontend/src/features/timeline/Timeline.vue b/packages/app-frontend/src/features/timeline/Timeline.vue index 937e4c584..59786b9c2 100644 --- a/packages/app-frontend/src/features/timeline/Timeline.vue +++ b/packages/app-frontend/src/features/timeline/Timeline.vue @@ -3,6 +3,7 @@ import SplitPane from '@front/features/layout/SplitPane.vue' import TimelineView from './TimelineView.vue' import TimelineScrollbar from './TimelineScrollbar.vue' import LayerItem from './LayerItem.vue' +import TimelineEventList from './TimelineEventList.vue' import SelectedEventInspector from './SelectedEventInspector.vue' import { useTime, useLayers, resetTimeline, useCursor } from '.' @@ -15,6 +16,7 @@ export default { LayerItem, TimelineView, TimelineScrollbar, + TimelineEventList, SelectedEventInspector }, @@ -77,8 +79,9 @@ export default { diff --git a/packages/app-frontend/src/features/timeline/TimelineEventList.vue b/packages/app-frontend/src/features/timeline/TimelineEventList.vue new file mode 100644 index 000000000..4c6cefe57 --- /dev/null +++ b/packages/app-frontend/src/features/timeline/TimelineEventList.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/packages/app-frontend/src/features/timeline/index.js b/packages/app-frontend/src/features/timeline/index.js index e172bca5d..6e9af41a8 100644 --- a/packages/app-frontend/src/features/timeline/index.js +++ b/packages/app-frontend/src/features/timeline/index.js @@ -23,6 +23,8 @@ const vScrollPerApp = ref({}) const selectedEvent = ref(null) const hoverLayerId = ref(null) +const inspectedEvent = ref(null) + function layerFactory (options) { return { ...options, @@ -239,17 +241,22 @@ export function useLayers () { export function useSelectedEvent () { function mapEvent (e) { - return Object.freeze({ + const obj = { title: e.title, data: parse(e.data), - time: formatTime(e.time, 'ms') + time: formatTime(e.time) + } + Object.defineProperty(obj, 'original', { + value: e, + configurable: false }) + return obj } return { selectedEvent, - selectedStackedEvents: computed(() => selectedEvent.value.stackedEvents.map(mapEvent)), - selectedGroupEvents: computed(() => selectedEvent.value.group ? selectedEvent.value.group.events.map(mapEvent) : []) + selectedStackedEventDisplays: computed(() => selectedEvent.value.stackedEvents.map(mapEvent)), + selectedGroupEventDisplays: computed(() => selectedEvent.value.group ? selectedEvent.value.group.events.map(mapEvent) : []) } } @@ -259,6 +266,16 @@ export function useCursor () { } } +export function useInspectedEvent () { + return { + inspectedEvent, + inspectedEventState: computed(() => inspectedEvent.value ? { + time: formatTime(inspectedEvent.value.time, 'ms'), + ...parse(inspectedEvent.value.data) + } : null) + } +} + function fetchLayers () { getBridge().send(BridgeEvents.TO_BACK_TIMELINE_LAYER_LIST, {}) } diff --git a/packages/shell-dev-vue3/src/devtools-plugin/index.js b/packages/shell-dev-vue3/src/devtools-plugin/index.js index a66e3f2e0..5fba8e2e9 100644 --- a/packages/shell-dev-vue3/src/devtools-plugin/index.js +++ b/packages/shell-dev-vue3/src/devtools-plugin/index.js @@ -163,7 +163,7 @@ export default { }) }) - window.addEventListener('keyup', event => { + window.addEventListener('keydown', event => { devtoolsApi && devtoolsApi.addTimelineEvent({ layerId: 'test-layer', event: { From 11f4260cc8b565f5de941a0156c02d888b361399 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Tue, 15 Dec 2020 16:22:11 +0100 Subject: [PATCH 0417/1371] feat(timeline): event subtitle --- packages/api/src/api/api.ts | 1 + packages/app-backend-core/src/timeline.ts | 5 ++++- .../src/features/timeline/TimelineEventList.vue | 6 ++++++ packages/app-frontend/src/features/timeline/index.js | 1 + 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/api/src/api/api.ts b/packages/api/src/api/api.ts index 83d1037fb..a053e8239 100644 --- a/packages/api/src/api/api.ts +++ b/packages/api/src/api/api.ts @@ -38,6 +38,7 @@ export interface TimelineEvent { meta?: TMeta groupId?: string | number title?: string + subtitle?: string } export interface CustomInspectorOptions { diff --git a/packages/app-backend-core/src/timeline.ts b/packages/app-backend-core/src/timeline.ts index 3ed7c8e2f..da000d768 100644 --- a/packages/app-backend-core/src/timeline.ts +++ b/packages/app-backend-core/src/timeline.ts @@ -65,6 +65,8 @@ function setupBuiltinLayers (ctx: BackendContext) { hook.on(HookEvents.COMPONENT_EMIT, async (app, instance, event, params) => { const appRecord = getAppRecord(app, ctx) const id = `${appRecord.id}:${instance.uid}` + const componentDisplay = (await ctx.api.getComponentName(instance)) || 'Unknown Component' + ctx.bridge.send(BridgeEvents.TO_FRONT_TIMELINE_EVENT, { appId: appRecord.id, layerId: 'component-event', @@ -74,13 +76,14 @@ function setupBuiltinLayers (ctx: BackendContext) { component: { _custom: { type: 'component-definition', - display: (await ctx.api.getComponentName(instance)) || 'Unknown Component' + display: componentDisplay } }, event, params }), title: event, + subtitle: `by ${componentDisplay}`, meta: { componentId: id } diff --git a/packages/app-frontend/src/features/timeline/TimelineEventList.vue b/packages/app-frontend/src/features/timeline/TimelineEventList.vue index 4c6cefe57..47a85e703 100644 --- a/packages/app-frontend/src/features/timeline/TimelineEventList.vue +++ b/packages/app-frontend/src/features/timeline/TimelineEventList.vue @@ -102,6 +102,12 @@ export default {
{{ eventDisplay.title || 'Event' }} + + Date: Tue, 15 Dec 2020 16:32:21 +0100 Subject: [PATCH 0418/1371] refactor(timeline): event list --- .../features/timeline/TimelineEventList.vue | 68 ++++----------- .../timeline/TimelineEventListItem.vue | 82 +++++++++++++++++++ .../src/features/timeline/index.js | 18 +--- 3 files changed, 98 insertions(+), 70 deletions(-) create mode 100644 packages/app-frontend/src/features/timeline/TimelineEventListItem.vue diff --git a/packages/app-frontend/src/features/timeline/TimelineEventList.vue b/packages/app-frontend/src/features/timeline/TimelineEventList.vue index 47a85e703..353e67e3d 100644 --- a/packages/app-frontend/src/features/timeline/TimelineEventList.vue +++ b/packages/app-frontend/src/features/timeline/TimelineEventList.vue @@ -2,8 +2,10 @@ import { useInspectedEvent, useSelectedEvent } from '.' import Defer from '@front/mixins/defer' import { computed, ref, watch } from '@vue/composition-api' +import TimelineEventListItem from './TimelineEventListItem.vue' export default { + components: { TimelineEventListItem }, mixins: [ Defer() ], @@ -11,8 +13,8 @@ export default { setup () { const { selectedEvent, - selectedStackedEventDisplays: selectedStackedEvents, - selectedGroupEventDisplays: selectedGroupEvents + selectedStackedEvents, + selectedGroupEvents } = useSelectedEvent() const tabId = ref('nearby') @@ -29,8 +31,8 @@ export default { inspectedEvent } = useInspectedEvent() - function onEventClick (eventDisplay) { - inspectedEvent.value = eventDisplay.original + function inspectEvent (event) { + inspectedEvent.value = event } watch(selectedEvent, value => { @@ -43,7 +45,7 @@ export default { tabId, displayedEvents, inspectedEvent, - onEventClick + inspectEvent } } } @@ -89,54 +91,12 @@ export default { /> - +
- - diff --git a/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue b/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue new file mode 100644 index 000000000..09141a49d --- /dev/null +++ b/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/packages/app-frontend/src/features/timeline/index.js b/packages/app-frontend/src/features/timeline/index.js index 4b5610881..e9fb1a260 100644 --- a/packages/app-frontend/src/features/timeline/index.js +++ b/packages/app-frontend/src/features/timeline/index.js @@ -240,24 +240,10 @@ export function useLayers () { } export function useSelectedEvent () { - function mapEvent (e) { - const obj = { - title: e.title, - subtitle: e.subtitle, - data: parse(e.data), - time: formatTime(e.time) - } - Object.defineProperty(obj, 'original', { - value: e, - configurable: false - }) - return obj - } - return { selectedEvent, - selectedStackedEventDisplays: computed(() => selectedEvent.value.stackedEvents.map(mapEvent)), - selectedGroupEventDisplays: computed(() => selectedEvent.value.group ? selectedEvent.value.group.events.map(mapEvent) : []) + selectedStackedEvents: computed(() => selectedEvent.value.stackedEvents), + selectedGroupEvents: computed(() => selectedEvent.value.group ? selectedEvent.value.group.events : []) } } From ec92a5aaa71da04b2e7d7ce234587a6788185ec9 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Tue, 15 Dec 2020 16:54:41 +0100 Subject: [PATCH 0419/1371] feat(timeline): display layer bg if event selected --- .../src/features/timeline/LayerItem.vue | 9 +++- .../src/features/timeline/Timeline.vue | 5 ++- .../src/features/timeline/TimelineView.vue | 45 ++++++++++++++----- .../src/features/timeline/index.js | 5 ++- 4 files changed, 49 insertions(+), 15 deletions(-) diff --git a/packages/app-frontend/src/features/timeline/LayerItem.vue b/packages/app-frontend/src/features/timeline/LayerItem.vue index c3b1422fb..0e8540c22 100644 --- a/packages/app-frontend/src/features/timeline/LayerItem.vue +++ b/packages/app-frontend/src/features/timeline/LayerItem.vue @@ -9,6 +9,11 @@ export default { hover: { type: Boolean, default: false + }, + + selected: { + type: Boolean, + default: false } } } @@ -36,11 +41,11 @@ export default {
diff --git a/packages/app-frontend/src/features/timeline/Timeline.vue b/packages/app-frontend/src/features/timeline/Timeline.vue index 59786b9c2..31f458a3e 100644 --- a/packages/app-frontend/src/features/timeline/Timeline.vue +++ b/packages/app-frontend/src/features/timeline/Timeline.vue @@ -27,7 +27,8 @@ export default { allLayers, isLayerHidden, setLayerHidden, - hoverLayerId + hoverLayerId, + selectedEventLayerId } = useLayers() const layersEl = ref() @@ -66,6 +67,7 @@ export default { layersEl, onLayersScroll, hoverLayerId, + selectedEventLayerId, allLayers, isLayerHidden, setLayerHidden, @@ -98,6 +100,7 @@ export default { :key="layer.id" :layer="layer" :hover="hoverLayerId === layer.id" + :selected="selectedEventLayerId === layer.id" class="flex-none" @mouseover.native="hoverLayerId = layer.id" @mouseout.native="hoverLayerId = null" diff --git a/packages/app-frontend/src/features/timeline/TimelineView.vue b/packages/app-frontend/src/features/timeline/TimelineView.vue index b63142ef9..67349967b 100644 --- a/packages/app-frontend/src/features/timeline/TimelineView.vue +++ b/packages/app-frontend/src/features/timeline/TimelineView.vue @@ -1,7 +1,7 @@ From fabc18a8fe0a63eec23ba424047e2ceeb123e817 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Tue, 15 Dec 2020 23:36:25 +0100 Subject: [PATCH 0426/1371] fix(timeline): sometime not autoinspecting --- .../app-frontend/src/features/timeline/TimelineEventList.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app-frontend/src/features/timeline/TimelineEventList.vue b/packages/app-frontend/src/features/timeline/TimelineEventList.vue index 547539e22..6532b27b9 100644 --- a/packages/app-frontend/src/features/timeline/TimelineEventList.vue +++ b/packages/app-frontend/src/features/timeline/TimelineEventList.vue @@ -76,7 +76,7 @@ export default { } watch(selectedEvent, value => { - if (!inspectedEvent.value || !displayedEvents.value.includes(value)) { + if (!inspectedEvent.value || !displayedEvents.value.includes(inspectedEvent.value)) { inspectedEvent.value = value } }) From a6aae025e90f9b0cebb99d512d0fec2e19b8ddbb Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Tue, 15 Dec 2020 23:40:55 +0100 Subject: [PATCH 0427/1371] fix(timeline): text color --- .../src/features/timeline/TimelineEventListItem.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue b/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue index 42e0f21a0..c38589c02 100644 --- a/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue +++ b/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue @@ -37,7 +37,7 @@ export default { class="event border-gray-200 dark:border-gray-900 border-b flex items-center space-x-2 px-2 text-xs cursor-pointer select-none" :class="{ 'inspected bg-green-500 text-white': isInspected, - 'hover:bg-blue-100 dark-hover:bg-blue-900 text-gray-800 dark:text-gray-200': !isInspected + 'hover:bg-blue-100 dark-hover:bg-blue-900 text-bluegray-800 dark:text-bluegray-200': !isInspected }" @click="$emit('inspect')" @dblclick="$emit('select')" From 049bdad90629f08483703149c29fc6f79175d9e7 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Tue, 15 Dec 2020 23:41:07 +0100 Subject: [PATCH 0428/1371] chore: remove console.log --- .../app-frontend/src/features/timeline/TimelineEventList.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/app-frontend/src/features/timeline/TimelineEventList.vue b/packages/app-frontend/src/features/timeline/TimelineEventList.vue index 6532b27b9..076cbeed0 100644 --- a/packages/app-frontend/src/features/timeline/TimelineEventList.vue +++ b/packages/app-frontend/src/features/timeline/TimelineEventList.vue @@ -51,7 +51,6 @@ export default { const index = displayedEvents.value.indexOf(inspectedEvent.value) if (index !== -1) { scroller.value.scrollTop = 39 * (index + 0.5) - (scroller.value.clientHeight) / 2 + 81 - console.log(scroller.value.scrollTop) } } From 3c23ddd34ca6916f8f716a2ebd4e6f867ee64b9d Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Tue, 15 Dec 2020 23:46:45 +0100 Subject: [PATCH 0429/1371] fix(timeline): error --- .../app-frontend/src/features/timeline/TimelineEventList.vue | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/app-frontend/src/features/timeline/TimelineEventList.vue b/packages/app-frontend/src/features/timeline/TimelineEventList.vue index 076cbeed0..9b790603f 100644 --- a/packages/app-frontend/src/features/timeline/TimelineEventList.vue +++ b/packages/app-frontend/src/features/timeline/TimelineEventList.vue @@ -48,6 +48,8 @@ export default { }) function scrollToInspectedEvent () { + if (!scroller.value) return + const index = displayedEvents.value.indexOf(inspectedEvent.value) if (index !== -1) { scroller.value.scrollTop = 39 * (index + 0.5) - (scroller.value.clientHeight) / 2 + 81 @@ -59,6 +61,8 @@ export default { }) function checkScrollToInspectedEvent () { + if (!scroller.value) return + const index = displayedEvents.value.indexOf(inspectedEvent.value) const minPosition = 39 * index + 81 const maxPosition = minPosition + 39 From cbecb50e1535fcf68b5f3bce06455deb0647354e Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Tue, 15 Dec 2020 23:54:26 +0100 Subject: [PATCH 0430/1371] fix(timeline): autoinspect --- .../app-frontend/src/features/timeline/TimelineEventList.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app-frontend/src/features/timeline/TimelineEventList.vue b/packages/app-frontend/src/features/timeline/TimelineEventList.vue index 9b790603f..cca139d7e 100644 --- a/packages/app-frontend/src/features/timeline/TimelineEventList.vue +++ b/packages/app-frontend/src/features/timeline/TimelineEventList.vue @@ -79,7 +79,7 @@ export default { } watch(selectedEvent, value => { - if (!inspectedEvent.value || !displayedEvents.value.includes(inspectedEvent.value)) { + if (!inspectedEvent.value || !selectedStackedEvents.value.includes(inspectedEvent.value)) { inspectedEvent.value = value } }) From 885d1ec2bd4ce71d017ec3e81c341923c5005982 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 17 Dec 2020 11:40:28 +0100 Subject: [PATCH 0431/1371] fix(timeline): reset time when first event is added --- .../src/features/timeline/index.js | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/app-frontend/src/features/timeline/index.js b/packages/app-frontend/src/features/timeline/index.js index 7d09adaae..1d74c8a2a 100644 --- a/packages/app-frontend/src/features/timeline/index.js +++ b/packages/app-frontend/src/features/timeline/index.js @@ -14,6 +14,8 @@ const endTime = ref(0) const minTime = ref(0) const maxTime = ref(0) +const timelineIsEmpty = ref(true) + const cursorTime = ref(null) const layersPerApp = ref({}) @@ -61,18 +63,15 @@ const resetCbs = [] export function resetTimeline () { selectedEvent.value = null - - const now = Date.now() - startTime.value = now - 1000 - endTime.value = now - minTime.value = now - 1000 - maxTime.value = now layersPerApp.value = {} vScrollPerApp.value = {} hoverLayerId.value = null + timelineIsEmpty.value = true - fetchLayers() + resetTime() + // Layers + fetchLayers() hiddenLayersPerApp.value = getStorage('hidden-layers', {}) for (const cb of resetCbs) { @@ -80,6 +79,14 @@ export function resetTimeline () { } } +function resetTime () { + const now = Date.now() + startTime.value = now - 1000 + endTime.value = now + minTime.value = now - 1000 + maxTime.value = now +} + export function onTimelineReset (cb) { onUnmounted(() => { const index = resetCbs.indexOf(cb) @@ -101,6 +108,11 @@ export function onEventAdd (cb) { } function addEvent (appId, event, layer) { + if (timelineIsEmpty.value) { + timelineIsEmpty.value = false + resetTime() + } + event.layer = layer event.appId = appId layer.events.push(event) From bd638d926b65b95d16a881e4aa2893b66716a536 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 17 Dec 2020 11:41:00 +0100 Subject: [PATCH 0432/1371] fix(timeline): reset inspected event --- packages/app-frontend/src/features/timeline/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/app-frontend/src/features/timeline/index.js b/packages/app-frontend/src/features/timeline/index.js index 1d74c8a2a..3e3fab4f4 100644 --- a/packages/app-frontend/src/features/timeline/index.js +++ b/packages/app-frontend/src/features/timeline/index.js @@ -63,6 +63,7 @@ const resetCbs = [] export function resetTimeline () { selectedEvent.value = null + inspectedEvent.value = null layersPerApp.value = {} vScrollPerApp.value = {} hoverLayerId.value = null From 103b68d0612151464cb723cd9a5fd7a589c380e6 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 17 Dec 2020 11:48:43 +0100 Subject: [PATCH 0433/1371] refactor(timeline): move code around --- .../src/features/timeline/index.js | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/app-frontend/src/features/timeline/index.js b/packages/app-frontend/src/features/timeline/index.js index 3e3fab4f4..fbdc78f7d 100644 --- a/packages/app-frontend/src/features/timeline/index.js +++ b/packages/app-frontend/src/features/timeline/index.js @@ -27,38 +27,6 @@ const hoverLayerId = ref(null) const inspectedEvent = ref(null) -function layerFactory (options) { - return { - ...options, - events: [], - displayedEvents: [], - eventTimeMap: {}, - groupsMap: {}, - groups: [], - height: 1 - } -} - -function builtinLayersFactory () { - return [ - { - id: 'mouse', - label: 'Mouse', - color: 0xA451AF - }, - { - id: 'keyboard', - label: 'Keyboard', - color: 0x8151AF - }, - { - id: 'component-event', - label: 'Component events', - color: 0x41B883 - } - ].map(options => layerFactory(options)) -} - const resetCbs = [] export function resetTimeline () { @@ -192,6 +160,38 @@ export function useTime () { } } +function layerFactory (options) { + return { + ...options, + events: [], + displayedEvents: [], + eventTimeMap: {}, + groupsMap: {}, + groups: [], + height: 1 + } +} + +function builtinLayersFactory () { + return [ + { + id: 'mouse', + label: 'Mouse', + color: 0xA451AF + }, + { + id: 'keyboard', + label: 'Keyboard', + color: 0x8151AF + }, + { + id: 'component-event', + label: 'Component events', + color: 0x41B883 + } + ].map(options => layerFactory(options)) +} + function getLayers (appId) { let layers = layersPerApp.value[appId] if (!layers) { From 317a1266160f4c784150140ccb7960ba65b58ef1 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 17 Dec 2020 12:21:00 +0100 Subject: [PATCH 0434/1371] refactor(timeline): list/inspector layout --- .../src/features/timeline/LayerItem.vue | 2 +- .../timeline/SelectedEventInspector.vue | 52 +++++++++--- .../features/timeline/TimelineEventList.vue | 81 ++++++++----------- 3 files changed, 74 insertions(+), 61 deletions(-) diff --git a/packages/app-frontend/src/features/timeline/LayerItem.vue b/packages/app-frontend/src/features/timeline/LayerItem.vue index 0e8540c22..d1c1a03eb 100644 --- a/packages/app-frontend/src/features/timeline/LayerItem.vue +++ b/packages/app-frontend/src/features/timeline/LayerItem.vue @@ -29,7 +29,7 @@ export default { >
import StateInspector from '../inspector/StateInspector.vue' -import { useInspectedEvent } from '.' +import { computed } from '@vue/composition-api' +import { useInspectedEvent, useSelectedEvent } from '.' export default { components: { StateInspector }, setup () { + const { + inspectedEvent, + inspectedEventState, + time + } = useInspectedEvent() + + const { + selectedStackedEvents + } = useSelectedEvent() + + const isSelected = computed(() => selectedStackedEvents.value.includes(inspectedEvent.value)) + return { - ...useInspectedEvent() + inspectedEvent, + inspectedEventState, + time, + isSelected } } } @@ -20,11 +36,27 @@ export default { v-if="inspectedEventState" class="flex flex-col h-full" > -
- - {{ inspectedEvent.title || 'Event' }} +
+
+ + + + {{ inspectedEvent.title || 'Event' }} + + + @@ -44,9 +76,3 @@ export default { />
- - diff --git a/packages/app-frontend/src/features/timeline/TimelineEventList.vue b/packages/app-frontend/src/features/timeline/TimelineEventList.vue index cca139d7e..5b203eea7 100644 --- a/packages/app-frontend/src/features/timeline/TimelineEventList.vue +++ b/packages/app-frontend/src/features/timeline/TimelineEventList.vue @@ -52,7 +52,7 @@ export default { const index = displayedEvents.value.indexOf(inspectedEvent.value) if (index !== -1) { - scroller.value.scrollTop = 39 * (index + 0.5) - (scroller.value.clientHeight) / 2 + 81 + scroller.value.scrollTop = 39 * (index + 0.5) - (scroller.value.clientHeight) / 2 } } @@ -64,7 +64,7 @@ export default { if (!scroller.value) return const index = displayedEvents.value.indexOf(inspectedEvent.value) - const minPosition = 39 * index + 81 + const minPosition = 39 * index const maxPosition = minPosition + 39 if (scroller.value.scrollTop > minPosition || scroller.value.scrollTop + scroller.value.clientHeight < maxPosition) { @@ -109,60 +109,47 @@ export default { From 5bbf3500445c7d73212e9d3a335a577b1e5f1293 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 17 Dec 2020 12:32:02 +0100 Subject: [PATCH 0436/1371] refactor(timeline): smaller list item --- .../src/features/timeline/TimelineEventListItem.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue b/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue index c38589c02..79a56c106 100644 --- a/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue +++ b/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue @@ -86,6 +86,6 @@ export default { From b8ca7c6f0060977e0a933a5643c158e2c8afc020 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 17 Dec 2020 12:32:16 +0100 Subject: [PATCH 0437/1371] chore: remove comment --- .../src/features/timeline/TimelineEventListItem.vue | 8 -------- 1 file changed, 8 deletions(-) diff --git a/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue b/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue index 79a56c106..6fa6f754a 100644 --- a/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue +++ b/packages/app-frontend/src/features/timeline/TimelineEventListItem.vue @@ -73,14 +73,6 @@ export default { {{ time }} - -
From 018e6167214f8993b83a04d1961e6ed70a7305e1 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 17 Dec 2020 12:44:23 +0100 Subject: [PATCH 0438/1371] refactor(timeline): use virtual scroller --- .../features/timeline/TimelineEventList.vue | 32 +++++++++++-------- .../src/features/timeline/index.js | 3 ++ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/packages/app-frontend/src/features/timeline/TimelineEventList.vue b/packages/app-frontend/src/features/timeline/TimelineEventList.vue index 3a17e3dfc..a24c40006 100644 --- a/packages/app-frontend/src/features/timeline/TimelineEventList.vue +++ b/packages/app-frontend/src/features/timeline/TimelineEventList.vue @@ -73,9 +73,11 @@ export default { function scrollToInspectedEvent () { if (!scroller.value) return + const scrollerEl = scroller.value.$el + const index = filteredEvents.value.indexOf(inspectedEvent.value) if (index !== -1) { - scroller.value.scrollTop = 39 * (index + 0.5) - (scroller.value.clientHeight) / 2 + scrollerEl.scrollTop = 39 * (index + 0.5) - (scrollerEl.clientHeight) / 2 } } @@ -86,11 +88,13 @@ export default { function checkScrollToInspectedEvent () { if (!scroller.value) return + const scrollerEl = scroller.value.$el + const index = filteredEvents.value.indexOf(inspectedEvent.value) const minPosition = 39 * index const maxPosition = minPosition + 39 - if (scroller.value.scrollTop > minPosition || scroller.value.scrollTop + scroller.value.clientHeight < maxPosition) { + if (scrollerEl.scrollTop > minPosition || scrollerEl.scrollTop + scrollerEl.clientHeight < maxPosition) { scrollToInspectedEvent() } } @@ -165,18 +169,20 @@ export default { />
-
- -
+ +
diff --git a/packages/app-frontend/src/features/timeline/index.js b/packages/app-frontend/src/features/timeline/index.js index fbdc78f7d..1b8f82df8 100644 --- a/packages/app-frontend/src/features/timeline/index.js +++ b/packages/app-frontend/src/features/timeline/index.js @@ -9,6 +9,8 @@ import { getBridge } from '../bridge' const STACK_DURATION = 50 const AUTOSCROLL_DURATION = 10000 +let nextEventId = 0 + const startTime = ref(0) const endTime = ref(0) const minTime = ref(0) @@ -82,6 +84,7 @@ function addEvent (appId, event, layer) { resetTime() } + event.id = nextEventId++ event.layer = layer event.appId = appId layer.events.push(event) From 69960653a1236452d4fc1c711e820976a7a8fbab Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Thu, 17 Dec 2020 12:47:40 +0100 Subject: [PATCH 0439/1371] fix(timeline): list autoscroll --- .../src/features/timeline/TimelineEventList.vue | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/app-frontend/src/features/timeline/TimelineEventList.vue b/packages/app-frontend/src/features/timeline/TimelineEventList.vue index a24c40006..d3b9a338b 100644 --- a/packages/app-frontend/src/features/timeline/TimelineEventList.vue +++ b/packages/app-frontend/src/features/timeline/TimelineEventList.vue @@ -4,6 +4,8 @@ import Defer from '@front/mixins/defer' import { computed, ref, watch } from '@vue/composition-api' import TimelineEventListItem from './TimelineEventListItem.vue' +const itemHeight = 34 + export default { components: { TimelineEventListItem }, mixins: [ @@ -77,7 +79,7 @@ export default { const index = filteredEvents.value.indexOf(inspectedEvent.value) if (index !== -1) { - scrollerEl.scrollTop = 39 * (index + 0.5) - (scrollerEl.clientHeight) / 2 + scrollerEl.scrollTop = itemHeight * (index + 0.5) - (scrollerEl.clientHeight) / 2 } } @@ -91,8 +93,8 @@ export default { const scrollerEl = scroller.value.$el const index = filteredEvents.value.indexOf(inspectedEvent.value) - const minPosition = 39 * index - const maxPosition = minPosition + 39 + const minPosition = itemHeight * index + const maxPosition = minPosition + itemHeight if (scrollerEl.scrollTop > minPosition || scrollerEl.scrollTop + scrollerEl.clientHeight < maxPosition) { scrollToInspectedEvent() @@ -127,6 +129,7 @@ export default { scroller, filter, filteredEvents, + itemHeight, inspectedEvent, inspectEvent, selectEvent @@ -172,8 +175,8 @@ export default { + + diff --git a/packages/app-frontend/src/features/timeline/index.js b/packages/app-frontend/src/features/timeline/index.js index 1b8f82df8..b775f7f79 100644 --- a/packages/app-frontend/src/features/timeline/index.js +++ b/packages/app-frontend/src/features/timeline/index.js @@ -1,10 +1,11 @@ import { ref, computed, onUnmounted } from '@vue/composition-api' import { BridgeEvents, getStorage, parse, setStorage } from '@vue-devtools/shared-utils' +import SharedData from '@utils/shared-data' import cloneDeep from 'lodash/cloneDeep' import Vue from 'vue' import { formatTime } from '@front/util/format' import { useApps, getApps } from '../apps' -import { getBridge } from '../bridge' +import { getBridge, useBridge } from '../bridge' const STACK_DURATION = 50 const AUTOSCROLL_DURATION = 10000 @@ -31,6 +32,9 @@ const inspectedEvent = ref(null) const resetCbs = [] +const screenshots = ref([]) +let nextScreenshotId = 0 + export function resetTimeline () { selectedEvent.value = null inspectedEvent.value = null @@ -38,6 +42,7 @@ export function resetTimeline () { vScrollPerApp.value = {} hoverLayerId.value = null timelineIsEmpty.value = true + screenshots.value = [] resetTime() @@ -126,6 +131,10 @@ function addEvent (appId, event, layer) { } maxTime.value = scrollTime } + + takeScreenshot(event) + } else { + event.stackParent.screenshot.events.push(event) } for (const cb of addEventCbs) { @@ -284,6 +293,67 @@ function fetchLayers () { getBridge().send(BridgeEvents.TO_BACK_TIMELINE_LAYER_LIST, {}) } +function takeScreenshot (event) { + if (!SharedData.timelineScreenshots) return + + const time = Math.round(event.time / 100) * 100 + + const lastScreenshot = screenshots.value[screenshots.value.length - 1] + + if (!lastScreenshot || lastScreenshot.time !== time) { + const screenshot = { + id: nextScreenshotId++, + time, + image: null, + events: [ + event + ] + } + event.screenshot = screenshot + screenshots.value.push(screenshot) + + // Screenshot + if (typeof chrome !== 'undefined') { + chrome.tabs.captureVisibleTab({ + format: 'png' + }, dataUrl => { + screenshot.image = dataUrl + }) + } + } else { + event.screenshot = lastScreenshot + lastScreenshot.events.push(event) + } +} + +export function useScreenshots () { + const { bridge } = useBridge() + const { currentAppId } = useApps() + + function showScreenshot (screenshot = null) { + bridge.send(BridgeEvents.TO_BACK_TIMELINE_SHOW_SCREENSHOT, { + screenshot: screenshot ? { + ...screenshot, + events: screenshot.events.filter(event => event.appId === currentAppId.value).map(event => ({ + time: event.time, + data: event.data, + logType: event.logType, + meta: event.meta, + groupId: event.groupId, + title: event.title, + subtitle: event.subtitle, + layerId: event.layer.id + })) + } : null + }) + } + + return { + screenshots, + showScreenshot + } +} + export function setupTimelineBridgeEvents (bridge) { bridge.on(BridgeEvents.TO_FRONT_TIMELINE_EVENT, ({ appId, layerId, event }) => { const appIds = appId === 'all' ? getApps().map(app => app.id) : [appId] diff --git a/packages/app-frontend/src/util/shared-data.js b/packages/app-frontend/src/util/shared-data.js new file mode 100644 index 000000000..8aef13d15 --- /dev/null +++ b/packages/app-frontend/src/util/shared-data.js @@ -0,0 +1,10 @@ +import { watchSharedData } from '@utils/shared-data' +import { onUnmounted } from '@vue/composition-api' + +export function onSharedDataChange (prop, handler) { + const off = watchSharedData(prop, handler) + + onUnmounted(() => { + off() + }) +} diff --git a/packages/shared-utils/src/consts.ts b/packages/shared-utils/src/consts.ts index 3a19932a1..3bef767ae 100644 --- a/packages/shared-utils/src/consts.ts +++ b/packages/shared-utils/src/consts.ts @@ -5,6 +5,7 @@ export enum BuiltinTabs { } export enum BridgeEvents { + // Misc TO_BACK_SUBSCRIBE = 'b:subscribe', TO_BACK_UNSUBSCRIBE = 'b:unsubscribe', /** Backend is ready */ @@ -15,6 +16,8 @@ export enum BridgeEvents { TO_BACK_REFRESH = 'b:refresh', /** Tab was switched */ TO_BACK_TAB_SWITCH = 'b:tab:switch', + + // Apps /** App was registered */ TO_FRONT_APP_ADD = 'f:app:add', /** Get app list */ @@ -23,6 +26,8 @@ export enum BridgeEvents { TO_FRONT_APP_REMOVE = 'f:app:remove', TO_BACK_APP_SELECT = 'b:app:select', TO_FRONT_APP_SELECTED = 'f:app:selected', + + // Components TO_BACK_COMPONENT_TREE = 'b:component:tree', TO_FRONT_COMPONENT_TREE = 'f:component:tree', TO_BACK_COMPONENT_SELECTED_DATA = 'b:component:selected-data', @@ -39,13 +44,20 @@ export enum BridgeEvents { TO_FRONT_COMPONENT_PICK = 'f:component:pick', TO_BACK_COMPONENT_PICK_CANCELED = 'b:component:pick-canceled', TO_FRONT_COMPONENT_PICK_CANCELED = 'f:component:pick-canceled', + + // Timeline TO_FRONT_TIMELINE_EVENT = 'f:timeline:event', TO_BACK_TIMELINE_LAYER_LIST = 'b:timeline:layer-list', TO_FRONT_TIMELINE_LAYER_LIST = 'f:timeline:layer-list', TO_FRONT_TIMELINE_LAYER_ADD = 'f:timeline:layer-add', + TO_BACK_TIMELINE_SHOW_SCREENSHOT = 'b:timeline:show-screenshot', + + // Plugins TO_BACK_DEVTOOLS_PLUGIN_LIST = 'b:devtools-plugin:list', TO_FRONT_DEVTOOLS_PLUGIN_LIST = 'f:devtools-plugin:list', TO_FRONT_DEVTOOLS_PLUGIN_ADD = 'f:devtools-plugin:add', + + // Custom inspectors TO_BACK_CUSTOM_INSPECTOR_LIST = 'b:custom-inspector:list', TO_FRONT_CUSTOM_INSPECTOR_LIST = 'f:custom-inspector:list', TO_FRONT_CUSTOM_INSPECTOR_ADD = 'f:custom-inspector:add', diff --git a/packages/shared-utils/src/shared-data.ts b/packages/shared-utils/src/shared-data.ts index 718726b70..b8dad8533 100644 --- a/packages/shared-utils/src/shared-data.ts +++ b/packages/shared-utils/src/shared-data.ts @@ -19,7 +19,8 @@ const internalSharedData = { vuexAutoload: false, vuexGroupGettersByModule: true, showMenuScrollTip: true, - timelineTimeGrid: true + timelineTimeGrid: true, + timelineScreenshots: true } const persisted = [ @@ -34,7 +35,8 @@ const persisted = [ 'vuexGroupGettersByModule', 'timeFormat', 'showMenuScrollTip', - 'timelineTimeGrid' + 'timelineTimeGrid', + 'timelineScreenshots' ] const storageVersion = '6.0.0-alpha.1' diff --git a/packages/shell-chrome/manifest.json b/packages/shell-chrome/manifest.json index ee9f44ade..e1e348822 100644 --- a/packages/shell-chrome/manifest.json +++ b/packages/shell-chrome/manifest.json @@ -31,9 +31,7 @@ "persistent": false }, "permissions": [ - "http://*/*", - "https://*/*", - "file:///*", + "", "contextMenus", "storage" ], diff --git a/packages/shell-dev-vue3/src/EventEmit.vue b/packages/shell-dev-vue3/src/EventEmit.vue index 4dc340054..87acf3a22 100644 --- a/packages/shell-dev-vue3/src/EventEmit.vue +++ b/packages/shell-dev-vue3/src/EventEmit.vue @@ -1,5 +1,5 @@ From b9f2f57dcf142ec70e417d9223c9bdb41ca1926b Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Fri, 18 Dec 2020 15:29:15 +0100 Subject: [PATCH 0445/1371] fix(pane): broken dragger in vertical layout --- packages/app-frontend/src/features/layout/SplitPane.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/app-frontend/src/features/layout/SplitPane.vue b/packages/app-frontend/src/features/layout/SplitPane.vue index a2d7ad7ff..cdf7f9a9e 100644 --- a/packages/app-frontend/src/features/layout/SplitPane.vue +++ b/packages/app-frontend/src/features/layout/SplitPane.vue @@ -184,7 +184,7 @@ export default { } .portrait & { - top: 0; + bottom: 0; } } @@ -194,7 +194,7 @@ export default { } .portrait & { - top: -5px; + bottom: -5px; } } @@ -204,7 +204,7 @@ export default { } .portrait & { - top: -10px; + bottom: -10px; } } } From 908f9bf8ba9b8d05fef12b63e3168a2a7d0ae931 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Fri, 18 Dec 2020 17:39:14 +0100 Subject: [PATCH 0446/1371] feat: restore route --- packages/app-frontend/src/router.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/app-frontend/src/router.js b/packages/app-frontend/src/router.js index ea0e5a63c..6b4feb90f 100644 --- a/packages/app-frontend/src/router.js +++ b/packages/app-frontend/src/router.js @@ -4,7 +4,7 @@ import ComponentsInspector from './features/components/ComponentsInspector.vue' import CustomInspector from './features/inspector/custom/CustomInspector.vue' import Timeline from './features/timeline/Timeline.vue' import GlobalSettings from './features/settings/GlobalSettings.vue' -import { BuiltinTabs } from '@vue-devtools/shared-utils' +import { BuiltinTabs, getStorage, setStorage } from '@vue-devtools/shared-utils' Vue.use(VueRouter) @@ -70,9 +70,21 @@ const routes = [ } ] +const STORAGE_ROUTE = 'route' + export function createRouter () { const router = new VueRouter({ routes }) + + const previousRoute = getStorage(STORAGE_ROUTE) + if (previousRoute) { + router.push(previousRoute) + } + + router.afterEach(to => { + setStorage(STORAGE_ROUTE, to.fullPath) + }) + return router } From 61ca693085f3bfd84c69c0f95e571d64776e88a1 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Fri, 18 Dec 2020 19:00:12 +0100 Subject: [PATCH 0447/1371] fix: improve connect flow --- packages/app-backend-core/src/app.ts | 4 ++++ packages/app-backend-core/src/index.ts | 14 +++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/app-backend-core/src/app.ts b/packages/app-backend-core/src/app.ts index 65bf7005e..b6ef72ad1 100644 --- a/packages/app-backend-core/src/app.ts +++ b/packages/app-backend-core/src/app.ts @@ -106,3 +106,7 @@ export function getAppRecordId (app): number { export function getAppRecord (app: any, ctx: BackendContext) { return ctx.appRecords.find(ar => ar.options.app === app) } + +export function waitForAppsRegistration () { + return jobs.queue(async () => { /* NOOP */ }) +} diff --git a/packages/app-backend-core/src/index.ts b/packages/app-backend-core/src/index.ts index dd4e090a3..b2b9a654c 100644 --- a/packages/app-backend-core/src/index.ts +++ b/packages/app-backend-core/src/index.ts @@ -25,7 +25,7 @@ import { } from './component' import { addQueuedPlugins, addPlugin, sendPluginList, addPreviouslyRegisteredPlugins } from './plugin' import { PluginDescriptor, SetupFunction, TimelineLayerOptions, App, TimelineEventOptions, CustomInspectorOptions } from '@vue/devtools-api' -import { registerApp, selectApp, mapAppRecord, getAppRecordId } from './app' +import { registerApp, selectApp, mapAppRecord, getAppRecordId, waitForAppsRegistration } from './app' import { sendInspectorTree, getInspector, getInspectorWithAppId, sendInspectorState } from './inspector' import { showScreenshot } from './timeline-screenshot' @@ -55,11 +55,11 @@ export async function initBackend (bridge: Bridge) { hook.once(HookEvents.INIT, connect) } - hook.on(HookEvents.APP_ADD, app => { + hook.on(HookEvents.APP_ADD, async app => { + await registerApp(app, ctx) + // Will init connect hook.emit(HookEvents.INIT) - - registerApp(app, ctx) }) // In case we close and open devtools again @@ -71,12 +71,16 @@ export async function initBackend (bridge: Bridge) { } } -function connect () { +async function connect () { if (connected) { return } connected = true + await waitForAppsRegistration() + + console.log('%cconnect', 'color: blue;') + ctx.currentTab = BuiltinTabs.COMPONENTS // Subscriptions From 66fcac273c53cf5bc29feff29447b041c57661ae Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Fri, 18 Dec 2020 19:01:18 +0100 Subject: [PATCH 0448/1371] feat(components): add to instanceMap when created This allows auto-loading the previously inspected component when refreshing the page more often --- packages/app-backend-core/src/index.ts | 10 +++++++++- packages/app-frontend/src/features/components/index.js | 6 ++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/app-backend-core/src/index.ts b/packages/app-backend-core/src/index.ts index b2b9a654c..fe1b55b1f 100644 --- a/packages/app-backend-core/src/index.ts +++ b/packages/app-backend-core/src/index.ts @@ -135,12 +135,20 @@ async function connect () { } }) - hook.on(HookEvents.COMPONENT_ADDED, (app, uid, parentUid) => { + hook.on(HookEvents.COMPONENT_ADDED, (app, uid, parentUid, component) => { const parentId = getComponentId(app, parentUid, ctx) if (isSubscribed(BridgeSubscriptions.COMPONENT_TREE, sub => sub.payload.instanceId === parentId)) { // @TODO take into account current filter sendComponentTreeData(parentId, null, ctx) } + + const id = getComponentId(app, uid, ctx) + if (component.__VUE_DEVTOOLS_UID__ == null) { + component.__VUE_DEVTOOLS_UID__ = id + } + if (!ctx.currentAppRecord.instanceMap.has(id)) { + ctx.currentAppRecord.instanceMap.set(id, component) + } }) hook.on(HookEvents.COMPONENT_REMOVED, (app, uid, parentUid) => { diff --git a/packages/app-frontend/src/features/components/index.js b/packages/app-frontend/src/features/components/index.js index c56c5a41d..ec1287920 100644 --- a/packages/app-frontend/src/features/components/index.js +++ b/packages/app-frontend/src/features/components/index.js @@ -243,6 +243,9 @@ export function resetComponents () { } export function setupComponentsBridgeEvents (bridge) { + selectedComponentPendingId = null + expandedMap.value = {} + bridge.on(BridgeEvents.TO_FRONT_COMPONENT_TREE, ({ instanceId, treeData, notFound }) => { const isRoot = instanceId.endsWith('root') @@ -288,6 +291,9 @@ export function setupComponentsBridgeEvents (bridge) { if (instanceId === selectedComponentPendingId) { selectedComponentPendingId = null } + if (data === null) { + selectedComponentId.value = null + } }) } From 29abda17ca506d8157c89aa5c4ce0c748522308e Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Fri, 18 Dec 2020 19:07:29 +0100 Subject: [PATCH 0449/1371] feat(components): expose selected instance on window --- packages/app-backend-core/src/component.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/app-backend-core/src/component.ts b/packages/app-backend-core/src/component.ts index 8011aa423..7aea9db20 100644 --- a/packages/app-backend-core/src/component.ts +++ b/packages/app-backend-core/src/component.ts @@ -29,6 +29,11 @@ export async function sendSelectedComponentData (instanceId: string, ctx: Backen if (!instance) { sendEmptyComponentData(instanceId, ctx) } else { + // Expose instance on window + if (typeof window !== 'undefined') { + (window as any).$vm = instance + } + ctx.currentInspectedComponentId = instanceId ctx.currentAppRecord.lastInspectedComponentId = instanceId const payload = { From f54a5aa843dfedddf9f01fb5fc1975a135a2031f Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Fri, 18 Dec 2020 19:12:30 +0100 Subject: [PATCH 0450/1371] refactor(settings): remove non-global settings --- .../src/features/settings/GlobalSettings.vue | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/packages/app-frontend/src/features/settings/GlobalSettings.vue b/packages/app-frontend/src/features/settings/GlobalSettings.vue index 6b95da5ab..306f55191 100644 --- a/packages/app-frontend/src/features/settings/GlobalSettings.vue +++ b/packages/app-frontend/src/features/settings/GlobalSettings.vue @@ -1,25 +1,5 @@