diff --git a/env/index.js b/env/index.js index 20681f15..1c3896a6 100644 --- a/env/index.js +++ b/env/index.js @@ -7,7 +7,7 @@ try { local = require('./local'); } catch (e) {} -const getEnv = (env = 'development') => { +const getEnv = (env) => { switch ((env || '').toLowerCase()) { case 'production': return prod; diff --git a/package.json b/package.json index 508a6f1c..cca91c3c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@endpass/connect", - "version": "0.16.1-beta", - "authVersion": "0.2", + "version": "0.17.0-beta", + "authVersion": "0.3", "main": "./dist/endpass-connect.min.js", "module": "./dist/endpass-connect.esm.js", "description": "", @@ -67,34 +67,34 @@ } }, "dependencies": { - "@endpass/class": "^0.9.4", + "@endpass/class": "^0.10.0", "lodash.get": "^4.4.2", "utility-types": "^3.4.1", "web3-providers-http": "1.0.0-beta.33" }, "devDependencies": { - "@babel/core": "^7.3.4", - "@babel/parser": "^7.3.4", + "@babel/core": "^7.4.0", + "@babel/parser": "^7.4.2", "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-transform-runtime": "^7.3.4", - "@babel/preset-env": "^7.3.4", + "@babel/plugin-transform-runtime": "^7.4.0", + "@babel/preset-env": "^7.4.2", "@babel/preset-typescript": "^7.3.3", - "@babel/runtime": "^7.3.4", + "@babel/runtime": "^7.4.2", "@commitlint/cli": "^7.5.2", "@commitlint/config-conventional": "^7.5.0", "@semantic-release/changelog": "^3.0.2", "@semantic-release/git": "^7.0.8", "@types/lodash": "^4.14.122", "@types/lodash.get": "^4.4.6", - "@types/node": "^11.10.5", + "@types/node": "^11.11.6", "@types/web3": "^1.0.18", - "@typescript-eslint/eslint-plugin": "^1.4.2", - "@typescript-eslint/parser": "^1.4.2", + "@typescript-eslint/eslint-plugin": "^1.5.0", + "@typescript-eslint/parser": "^1.5.0", "babel-eslint": "^10.0.1", "babel-loader": "^8.0.5", "commitizen": "^3.0.7", "cz-conventional-changelog": "^2.1.0", - "eslint": "^5.14.1", + "eslint": "^5.15.3", "eslint-config-airbnb-base": "^13.1.0", "eslint-config-prettier": "^4.1.0", "eslint-multiple-parsers": "^1.0.1", @@ -103,20 +103,20 @@ "gh-pages": "^2.0.1", "husky": "^1.3.1", "jest": "^24.5.0", - "lint-staged": "^8.1.4", + "lint-staged": "^8.1.5", "prettier": "^1.16.4", - "regenerator-runtime": "^0.13.1", + "regenerator-runtime": "^0.13.2", "rimraf": "^2.6.3", - "rollup": "^1.4.0", + "rollup": "^1.7.3", "rollup-plugin-alias": "^1.5.1", "rollup-plugin-babel": "^4.3.2", - "rollup-plugin-commonjs": "^9.2.1", - "rollup-plugin-json": "^3.1.0", + "rollup-plugin-commonjs": "^9.2.2", + "rollup-plugin-json": "^4.0.0", "rollup-plugin-node-resolve": "^4.0.1", - "rollup-plugin-replace": "^2.1.0", + "rollup-plugin-replace": "^2.1.1", "rollup-plugin-terser": "^4.0.4", - "rollup-plugin-typescript": "^1.0.0", - "rollup-plugin-visualizer": "^1.0.2", + "rollup-plugin-typescript": "^1.0.1", + "rollup-plugin-visualizer": "^1.1.0", "semantic-release": "^15.13.3", "typescript": "^3.3.3333" } diff --git a/src/Connect.js b/src/Connect.js index 97876400..0cfe1455 100644 --- a/src/Connect.js +++ b/src/Connect.js @@ -3,7 +3,6 @@ import privateFields from '@/privateFields'; import Queue from '@/Queue'; import { METHODS } from '@/constants'; import middleware from '@/middleware'; -import Dialog from '@/class/Dialog'; import pkg from '../package.json'; @@ -94,10 +93,9 @@ export default class Connect { async openAccount() { const context = this[privateFields.context]; - const params = Dialog.createParams({ + const res = await context.askDialog({ method: METHODS.ACCOUNT, }); - const res = await context.askDialog(params); if (!res.status) throw new Error(res.error || 'Account updating failed!'); const { type, settings } = res.payload; diff --git a/src/Context.js b/src/Context.js index c988b88a..8474c476 100644 --- a/src/Context.js +++ b/src/Context.js @@ -1,4 +1,5 @@ -import { CrossWindowMessenger, Network } from '@endpass/class'; +import Network from '@endpass/class/Network'; +import CrossWindowMessenger from '@endpass/class/CrossWindowMessenger'; import { Emmiter, InpageProvider, Bridge, ProviderFactory } from '@/class'; import { INPAGE_EVENTS, @@ -6,7 +7,6 @@ import { DEFAULT_AUTH_URL, DIRECTION, } from '@/constants'; -import Dialog from './class/Dialog'; export default class Context { /** @@ -20,7 +20,7 @@ export default class Context { this.authUrl = `${authUrl}${ENV.authVersion}`; - this.namespace = options.namespace; + this.namespace = options.namespace || ''; this.haveDemoData = !!options.demoData; @@ -66,16 +66,12 @@ export default class Context { } async askDialog(params) { - const { method, route, payload } = params; + const { method, payload } = params; const bridge = this.getBridge(); - await bridge.openDialog({ route }); - const res = await bridge.ask(method, payload); - bridge.closeDialog(); - return res; } @@ -96,13 +92,12 @@ export default class Context { * know about result */ async auth(redirectUrl) { - const params = Dialog.createParams({ + const res = await this.askDialog({ method: METHODS.AUTH, payload: { redirectUrl: redirectUrl || null, }, }); - const res = await this.askDialog(params); if (!res.status) throw new Error(res.error || 'Authentificaton error!'); this.isServerLogin = true; @@ -155,7 +150,7 @@ export default class Context { activeNet: settings.net || Network.NET_ID.MAIN, }; } catch (err) { - throw new Error('User not autorized!'); + throw new Error('User not authorized!'); } } diff --git a/src/Queue/Queue.js b/src/Queue/Queue.js index 2491daec..2df8d6cb 100644 --- a/src/Queue/Queue.js +++ b/src/Queue/Queue.js @@ -1,6 +1,8 @@ // @ts-check import { INPAGE_EVENTS } from '@/constants'; -import { AsyncQueue } from '@/class'; + +// @ts-ignore +import QueueAsync from '@endpass/class/QueueAsync'; import itemStates from './itemStates'; // eslint-disable-next-line no-unused-vars @@ -18,7 +20,7 @@ export default class Queue { this.handleRequest = this.handleRequest.bind(this); // Setup net requests queue - this.queue = new AsyncQueue(); + this.queue = new QueueAsync(); // start queue this.setupEventEmitter(); diff --git a/src/class/ArrayQueue.js b/src/class/ArrayQueue.js deleted file mode 100644 index a1b37fe8..00000000 --- a/src/class/ArrayQueue.js +++ /dev/null @@ -1,11 +0,0 @@ -class ArrayQueue extends Array { - put(value) { - return this.push(value); - } - - take() { - return this.shift(); - } -} - -export default ArrayQueue; diff --git a/src/class/AsyncQueue.js b/src/class/AsyncQueue.js deleted file mode 100644 index 59c58116..00000000 --- a/src/class/AsyncQueue.js +++ /dev/null @@ -1,86 +0,0 @@ -import ArrayQueue from './ArrayQueue'; - -class AsyncQueue { - constructor() { - // enqueues > dequeues - this.values = new ArrayQueue(); - this.forcedValues = new ArrayQueue(); - // dequeues > enqueues - this.settlers = new ArrayQueue(); - this.closed = false; - } - - [Symbol.asyncIterator]() { - return this; - } - - get isEmpty() { - const allQueue = [...this.values, ...this.forcedValues]; - return !allQueue.length; - } - - putToQueue(value, queue) { - if (this.closed) { - throw new Error('Queue was closed'); - } - - if (this.settlers.length === 0) { - queue.put(value); - return; - } - - if (!this.isEmpty) { - throw new Error('Illegal internal state of the queue'); - } - - this.settlers.take().resolve({ value }); - } - - put(value) { - this.putToQueue(value, this.values); - } - - putForce(value) { - this.putToQueue(value, this.forcedValues); - } - - /** - * @returns a Promise for an IteratorResult - */ - next() { - let value; - - if (this.forcedValues.length > 0) { - value = this.forcedValues.take(); - } else if (this.values.length > 0) { - value = this.values.take(); - } - - if (value) { - return Promise.resolve({ value }); - } - - if (this.closed) { - if (this.settlers.length > 0) { - throw new Error('Illegal internal state of the queue'); - } - - return Promise.resolve({ done: true }); - } - - // Wait for new values to be enqueued - return new Promise((resolve, reject) => { - this.settlers.put({ resolve, reject }); - }); - } - - close() { - while (this.settlers.length > 0) { - this.settlers.take().resolve({ done: true }); - } - - this.closed = true; - } -} - -export default AsyncQueue; diff --git a/src/class/Bridge.js b/src/class/Bridge.js index e577fa16..b506e2a9 100644 --- a/src/class/Bridge.js +++ b/src/class/Bridge.js @@ -23,12 +23,13 @@ export default class Bridge { /** @type Resolvers */ this.readyResolvers = []; + const messenger = this.context.getMessenger(); - this.context.getMessenger().subscribe(METHODS.INITIATE, (payload, req) => { + messenger.subscribe(METHODS.INITIATE, (payload, req) => { req.answer(this.initialPayload); }); - this.context.getMessenger().subscribe(METHODS.READY_STATE_BRIDGE, () => { + messenger.subscribe(METHODS.READY_STATE_BRIDGE, () => { this.ready = true; this.readyResolvers.forEach(item => item(true)); this.readyResolvers.length = 0; @@ -52,24 +53,6 @@ export default class Bridge { }); } - /** - * - * @param {{}} params for dialog - * @return {Promise} - */ - async openDialog(params) { - await this.checkReadyState(); - - await this.dialog.open(params); - } - - /** - * Close dialog - */ - closeDialog() { - this.dialog.close(); - } - /** * Wrapper on sendMessage and awaitMessage methods * Send message with given payload and awaits answer on it diff --git a/src/class/Dialog.js b/src/class/Dialog.js index 87dd9706..b4fecd93 100644 --- a/src/class/Dialog.js +++ b/src/class/Dialog.js @@ -54,22 +54,7 @@ const propsIframeShow = { opacity: 1, }; -const methodToRoute = { - [METHODS.SIGN]: 'sign', - [METHODS.ACCOUNT]: '', - [METHODS.AUTH]: 'auth', -}; - export default class Dialog { - static createParams(params) { - const route = methodToRoute[params.method] || ''; - return { - method: params.method, - route, - payload: params.payload, - }; - } - /** * @param {Context} options.context Context * @param {String} options.url Context @@ -82,6 +67,7 @@ export default class Dialog { this.overlay = null; this.wrapper = null; this.frame = null; + this.isShown = false; this.frameStyles = inlineStylesState(propsIframe); this.mount(); @@ -110,49 +96,28 @@ export default class Dialog { this.wrapper = document.body.querySelector('[data-endpass="wrapper"]'); this.frame = document.body.querySelector('[data-endpass="frame"]'); - this.context.getMessenger().setTarget(this.frame.contentWindow); + const messenger = this.context.getMessenger(); - this.context - .getMessenger() - .subscribe(METHODS.DIALOG_RESIZE, ({ offsetHeight }) => { - this.frame.style = this.frameStyles({ - 'min-height': `${offsetHeight || 0}px`, - }); - }); - } - - /** - * Open dialog and process result - * @param {{}} params for dialog - * @return {Promise} - */ - async open(params) { - this.overlay.style = stylesOverlayShow; + messenger.setTarget(this.frame.contentWindow); - const res = await this.context - .getMessenger() - .sendAndWaitResponse(METHODS.DIALOG_OPEN, params); - - this.wrapper.style = stylesWrapperShow; - - this.frame.style = this.frameStyles(propsIframeShow); - - if (!res.status) { - this.close(); - throw new Error( - res.error || - 'Dialog was not opened due unexpected error! Please, try again', - ); - } - } - - /** - * Hide dialog - */ - close() { - this.overlay.style = stylesOverlayHide; - this.frame.style = this.frameStyles(propsIframeHide); - this.wrapper.style = stylesWrapperHide; - this.context.getMessenger().send(METHODS.DIALOG_CLOSE); + messenger.subscribe(METHODS.DIALOG_RESIZE, ({ offsetHeight }) => { + this.frame.style = this.frameStyles({ + 'min-height': `${offsetHeight || 0}px`, + }); + }); + + messenger.subscribe(METHODS.DIALOG_CLOSE, () => { + this.isShown = false; + this.overlay.style = stylesOverlayHide; + this.frame.style = this.frameStyles(propsIframeHide); + this.wrapper.style = stylesWrapperHide; + }); + + messenger.subscribe(METHODS.DIALOG_OPEN, () => { + this.isShown = true; + this.frame.style = this.frameStyles(propsIframeShow); + this.overlay.style = stylesOverlayShow; + this.wrapper.style = stylesWrapperShow; + }); } } diff --git a/src/class/InpageProvider.js b/src/class/InpageProvider.js index 8b8b3b05..a1e0443c 100644 --- a/src/class/InpageProvider.js +++ b/src/class/InpageProvider.js @@ -1,5 +1,5 @@ import get from 'lodash.get'; -import { Network } from '@endpass/class'; +import Network from '@endpass/class/Network'; import Emmiter from './Emmiter'; import { INPAGE_EVENTS, INPAGE_ID_PREFIX } from '@/constants'; import processPayload from '@/util/processPayload'; diff --git a/src/class/ProviderFactory.js b/src/class/ProviderFactory.js index de44e091..5ea2aaf5 100644 --- a/src/class/ProviderFactory.js +++ b/src/class/ProviderFactory.js @@ -6,7 +6,7 @@ import { $Values } from 'utility-types'; import Web3HttpProvider from 'web3-providers-http'; -import { Network } from '@endpass/class'; +import Network from '@endpass/class/Network'; export default class ProviderFactory { /** diff --git a/src/class/index.js b/src/class/index.js index 15bc75a2..3bf49d2e 100644 --- a/src/class/index.js +++ b/src/class/index.js @@ -3,5 +3,3 @@ export { default as InpageProvider } from './InpageProvider'; export { default as Dialog } from './Dialog'; export { default as Bridge } from './Bridge'; export { default as ProviderFactory } from './ProviderFactory'; -export { default as ArrayQueue } from './ArrayQueue'; -export { default as AsyncQueue } from './AsyncQueue'; diff --git a/src/middleware/netRequest/RequestProcess.js b/src/middleware/netRequest/RequestProcess.js index b3f20927..c59c1337 100644 --- a/src/middleware/netRequest/RequestProcess.js +++ b/src/middleware/netRequest/RequestProcess.js @@ -87,7 +87,7 @@ export default class RequestProcess { const { context } = this; const { activeAccount, activeNet } = this.settings; - const params = Dialog.createParams({ + const res = await context.askDialog({ method: METHODS.SIGN, payload: { url: window.location.origin, @@ -97,8 +97,6 @@ export default class RequestProcess { }, }); - const res = await context.askDialog(params); - if (!res.status) throw new Error(res.error || 'Sign error!'); return res.payload; diff --git a/src/middleware/requestProviderCheck.js b/src/middleware/requestProviderCheck.js index 8f4e50bd..f8a235ca 100644 --- a/src/middleware/requestProviderCheck.js +++ b/src/middleware/requestProviderCheck.js @@ -1,4 +1,4 @@ -import { Network } from '@endpass/class'; +import Network from '@endpass/class/Network'; /** @type {import("@/types/Middleware").Middleware} */ const middleware = (context, action) => { diff --git a/src/middleware/requestProviderSwitchActual.js b/src/middleware/requestProviderSwitchActual.js index 1c8b90e0..61e11939 100644 --- a/src/middleware/requestProviderSwitchActual.js +++ b/src/middleware/requestProviderSwitchActual.js @@ -1,7 +1,7 @@ import get from 'lodash.get'; import ProviderFactory from '@/class/ProviderFactory'; -import { Network } from '@endpass/class'; +import Network from '@endpass/class/Network'; /** @type {import("@/types/Middleware").Middleware} */ const middleware = (context, action) => { diff --git a/tests/unit/__mocks__/core-class.js b/tests/unit/__mocks__/core-class.js deleted file mode 100644 index 3c441336..00000000 --- a/tests/unit/__mocks__/core-class.js +++ /dev/null @@ -1,14 +0,0 @@ -jest.mock('@endpass/class', () => { - const classes = require.requireActual('@endpass/class'); - function CrossWindowMessenger() {} - const p = CrossWindowMessenger.prototype; - p.subscribe = jest.fn(); - p.setTarget = jest.fn(); - p.send = jest.fn(); - p.sendAndWaitResponse = jest.fn(); - - return { - ...classes, - CrossWindowMessenger, - }; -}); diff --git a/tests/unit/spec/Connect.spec.js b/tests/unit/spec/Connect.spec.js index 24e3e937..43358e03 100644 --- a/tests/unit/spec/Connect.spec.js +++ b/tests/unit/spec/Connect.spec.js @@ -153,7 +153,7 @@ describe('Connect class', () => { status: false, }); - const err = new Error('User not autorized!'); + const err = new Error('User not authorized!'); let check; try { await connect.getAccountData(); @@ -171,15 +171,13 @@ describe('Connect class', () => { beforeEach(() => { bridge = { ask: jest.fn(), - closeDialog: jest.fn(), - openDialog: jest.fn(), }; context.bridge = bridge; connect.setProviderSettings = jest.fn(); }); it('should open connect application and awaits any signals from it', async () => { - expect.assertions(3); + expect.assertions(2); bridge.ask.mockResolvedValueOnce({ status: true, @@ -191,7 +189,6 @@ describe('Connect class', () => { const res = await connect.openAccount(); expect(context.bridge.ask).toBeCalledWith(METHODS.ACCOUNT, undefined); - expect(context.bridge.closeDialog).toBeCalled(); expect(res).toEqual({ type: 'foo', settings: undefined, diff --git a/tests/unit/spec/Context.spec.js b/tests/unit/spec/Context.spec.js index def41c59..f62ef8c2 100644 --- a/tests/unit/spec/Context.spec.js +++ b/tests/unit/spec/Context.spec.js @@ -2,7 +2,7 @@ import Connect from '@/Connect'; import Context from '@/Context'; import privateFields from '@/privateFields'; import { METHODS } from '@/constants'; -import { CrossWindowMessenger } from '@endpass/class'; +import CrossWindowMessenger from '@endpass/class/CrossWindowMessenger'; import pkg from '@/../package'; describe('Context class', () => { @@ -42,7 +42,7 @@ describe('Context class', () => { }); it('should auth user through dialog request and returns result', async () => { - expect.assertions(3); + expect.assertions(2); const dialogResponse = { status: true, @@ -59,7 +59,6 @@ describe('Context class', () => { expect(bridge.ask).toBeCalledWith(METHODS.AUTH, { redirectUrl: null, }); - expect(bridge.closeDialog).toBeCalled(); expect(res).toEqual(dialogResponse); }); diff --git a/tests/unit/spec/RequestProcess.spec.js b/tests/unit/spec/RequestProcess.spec.js index 7f0a1545..6323c566 100644 --- a/tests/unit/spec/RequestProcess.spec.js +++ b/tests/unit/spec/RequestProcess.spec.js @@ -231,8 +231,6 @@ describe('Request process middleware', () => { ask: jest.fn().mockResolvedValueOnce({ status: true, }), - openDialog: jest.fn(), - closeDialog: jest.fn(), }; reqProcess.settings = { @@ -244,7 +242,7 @@ describe('Request process middleware', () => { }); it('should requests account data, open sign dialog, await sign message and send message to dialog', async () => { - expect.assertions(2); + expect.assertions(1); await reqProcess.sign(); @@ -254,7 +252,6 @@ describe('Request process middleware', () => { url: expect.any(String), request, }); - expect(bridge.closeDialog).toBeCalled(); }); it('should throw error is sign request status is falsy', async () => { diff --git a/tests/unit/spec/class/ArrayQueue.spec.js b/tests/unit/spec/class/ArrayQueue.spec.js deleted file mode 100644 index ddb8c35b..00000000 --- a/tests/unit/spec/class/ArrayQueue.spec.js +++ /dev/null @@ -1,49 +0,0 @@ -import { ArrayQueue } from '@/class'; - -describe('ArrayQueue class', () => { - const defaultItems = [1, 2, 3]; - let queue; - - beforeEach(() => { - queue = new ArrayQueue(...defaultItems); - }); - - describe('constructor', () => { - it('should be an Array instance', () => { - expect(queue).toBeInstanceOf(Array); - }); - - it('should create a valid instance', () => { - expect(queue).toEqual(defaultItems); - }); - }); - - describe('methods', () => { - describe('put', () => { - it('should add value to the end of the queue', () => { - const newItem = 4; - - queue.put(newItem); - - expect(queue).toEqual([...defaultItems, newItem]); - }); - }); - - describe('take', () => { - it('should return the first element of the queue', () => { - const result = queue.take(); - - expect(result).toEqual(defaultItems[0]); - }); - - it('should remove item from start of queue', () => { - // eslint-disable-next-line no-unused-vars - const [_, ...resultItems] = defaultItems; - - queue.take(); - - expect(queue).toEqual(resultItems); - }); - }); - }); -}); diff --git a/tests/unit/spec/class/AsyncQueue.spec.js b/tests/unit/spec/class/AsyncQueue.spec.js deleted file mode 100644 index c9de68ee..00000000 --- a/tests/unit/spec/class/AsyncQueue.spec.js +++ /dev/null @@ -1,275 +0,0 @@ -import { AsyncQueue } from '@/class'; - -const takeIterable = async (asyncIterable, count = Infinity) => { - const result = []; - const iterator = asyncIterable[Symbol.asyncIterator](); - - while (result.length < count) { - // eslint-disable-next-line no-await-in-loop - const { value, done } = await iterator.next(); - - if (done) break; - - result.push(value); - } - - return result; -}; - -describe('takeIterable', () => { - test('should collect values yielded by an async generator', async function() { - expect.assertions(4); - - async function* gen() { - yield 'a'; - yield 'b'; - yield 'c'; - } - - expect(await takeIterable(gen())).toEqual(['a', 'b', 'c']); - expect(await takeIterable(gen(), 2)).toEqual(['a', 'b']); - expect(await takeIterable(gen(), 1)).toEqual(['a']); - expect(await takeIterable(gen(), 0)).toEqual([]); - }); -}); - -describe('AsyncQueue class', () => { - const defaultItems = [1, 2, 3]; - let queue; - let emptyQueue; - - beforeEach(() => { - emptyQueue = new AsyncQueue(); - queue = new AsyncQueue(); - - defaultItems.forEach(item => queue.put(item)); - }); - - describe('constructor', () => { - it('should be an AsyncQueue instance', () => { - expect(queue).toBeInstanceOf(AsyncQueue); - }); - - it('should be iterable', () => { - const result = queue[Symbol.asyncIterator](); - - expect(result).toEqual(queue); - }); - }); - - describe('methods', () => { - describe('putToQueue', () => { - it('should add value to the queue', () => { - const queueMock = { - put: jest.fn(), - }; - - const newItem = 4; - - queue.putToQueue(newItem, queueMock); - - expect(queueMock.put).toBeCalledTimes(1); - expect(queueMock.put).toBeCalledWith(newItem); - }); - - it('should resolve values for empty queue', async () => { - expect.assertions(1); - - const promise = Promise.all([emptyQueue.next(), emptyQueue.next()]); - - const newItem1 = 4; - const newItem2 = 5; - - emptyQueue.putToQueue(newItem1); - emptyQueue.putToQueue(newItem2); - - const result = await promise; - const values = result.map(x => x.value); - - expect(values).toEqual([newItem1, newItem2]); - }); - - it('should throw error with wrong internal state of the queue', async () => { - expect.assertions(1); - - emptyQueue.next(); - - emptyQueue.values.put(1); - - try { - emptyQueue.putToQueue(1); - } catch (error) { - expect(error).toBeInstanceOf(Error); - } - }); - - it('should throw error if queue was closed', () => { - expect.assertions(1); - - emptyQueue.close(); - - try { - emptyQueue.putToQueue(1); - } catch (error) { - expect(error).toBeInstanceOf(Error); - } - }); - }); - - describe('put', () => { - it('should add value to the end of the queue', async () => { - expect.assertions(1); - - const newItem = 4; - - queue.put(newItem); - queue.close(); - - const result = await takeIterable(queue); - - expect(result).toEqual([...defaultItems, newItem]); - }); - }); - - describe('putForce', () => { - it('should add values ​​to the top of the queue respectively', async () => { - expect.assertions(1); - - const newItem1 = 4; - const newItem2 = 5; - - queue.putForce(newItem1); - queue.putForce(newItem2); - queue.close(); - - const result = await takeIterable(queue); - - expect(result).toEqual([newItem1, newItem2, ...defaultItems]); - }); - }); - - describe('isEmpty', () => { - it('should return true if queue is empty', () => { - expect(emptyQueue.isEmpty).toEqual(true); - }); - - it('should return false if queue is not empty', () => { - expect(queue.isEmpty).toEqual(false); - }); - - it('should return false if queue has forced item', () => { - emptyQueue.putForce(1); - - expect(emptyQueue.isEmpty).toEqual(false); - }); - }); - - describe('next', () => { - it('should return the first element of the queue', async () => { - expect.assertions(1); - - const { value } = await queue.next(); - - expect(value).toEqual(defaultItems[0]); - }); - - it('should remove item from start of queue', async () => { - expect.assertions(1); - - await queue.next(); - queue.close(); - - // eslint-disable-next-line no-unused-vars - const [_, ...expected] = defaultItems; - const result = await takeIterable(queue); - - expect(result).toEqual(expected); - }); - - it('should return done if queue was closed and empty', async () => { - expect.assertions(1); - - emptyQueue.close(); - - const result = await emptyQueue.next(); - - expect(result).toEqual({ done: true }); - }); - - it('should throw error if queue was closed before resolve', async () => { - expect.assertions(1); - - emptyQueue.close(); - emptyQueue.settlers = [1]; - - try { - await emptyQueue.next(); - } catch (error) { - expect(error).toBeInstanceOf(Error); - } - }); - }); - - describe('close', () => { - it('should close the queue', async () => { - expect.assertions(1); - - queue.close(); - - const result = await takeIterable(queue); - - expect(result).toBeTruthy(); - }); - - it('should resolve queue before closing', async () => { - expect.assertions(1); - - const promise = emptyQueue.next(); - - emptyQueue.close(); - - const result = await promise; - - expect(result).toEqual({ done: true }); - }); - }); - }); - - describe('iterable interface', () => { - it('should return valid result with for-await-of loop', async () => { - const result = []; - - queue.close(); - - // eslint-disable-next-line no-restricted-syntax - for await (const queueItem of queue) { - result.push(queueItem); - } - - expect(result).toEqual(defaultItems); - }); - - it('should wait next value with for-await-of loop', async () => { - expect.assertions(1); - - const resultLoopPromise = new Promise(async res => { - const arr = []; - - // eslint-disable-next-line no-restricted-syntax - for await (const queueItem of queue) { - arr.push(queueItem); - } - - res(arr); - }); - - const nextValue = 4; - queue.put(nextValue); - queue.close(); - - const result = await resultLoopPromise; - - expect(result).toEqual([...defaultItems, nextValue]); - }); - }); -}); diff --git a/tests/unit/spec/class/Dialog.spec.js b/tests/unit/spec/class/Dialog.spec.js index 35dcba2a..4c89cf70 100644 --- a/tests/unit/spec/class/Dialog.spec.js +++ b/tests/unit/spec/class/Dialog.spec.js @@ -2,80 +2,42 @@ import Dialog from '@/class/Dialog'; import { METHODS } from '@/constants'; describe('Dialog class', () => { + const url = 'url'; const messenger = { send: jest.fn(), sendAndWaitResponse: jest.fn(), setTarget: jest.fn(), subscribe: jest.fn(), }; + const context = { + getNamespace() { + return 'ns'; + }, + getMessenger() { + return messenger; + }, + }; beforeEach(() => { jest.clearAllMocks(); }); - it('should create params for open dialog', () => { - const params = Dialog.createParams({ - method: 'method', - payload: 'payload', - otherField: 'otherField', - }); - - expect(params).toEqual({ - method: 'method', - route: '', - payload: 'payload', - }); - }); - - it('should open dialog', async () => { - expect.assertions(2); - - messenger.sendAndWaitResponse = jest.fn().mockResolvedValueOnce({ - status: true, - }); - - const instance = new Dialog({ - context: { - getMessenger: () => messenger, - getNamespace() {}, - }, - }); - - const passData = { passData: 'passData' }; - - await instance.open(passData); - - expect(messenger.sendAndWaitResponse).toBeCalledWith(METHODS.DIALOG_OPEN, passData); - expect(messenger.send).not.toBeCalledWith(METHODS.DIALOG_CLOSE); - }); + it('should open/close dialog', () => { + const cbs = {}; + messenger.subscribe = (method, cb) => { + cbs[method] = cb; + }; - it('should not open dialog', async () => { - expect.assertions(3); + const inst = new Dialog({ context, url }); - messenger.sendAndWaitResponse = jest.fn().mockResolvedValueOnce({ - status: false, - error: 'fail', - }); + expect(inst.isShown).toBe(false); - const instance = new Dialog({ - context: { - getMessenger: () => messenger, - getNamespace() {}, - }, - }); + cbs[METHODS.DIALOG_OPEN](); - const passData = { passData: 'passData' }; + expect(inst.isShown).toBe(true); - const err = new Error('fail'); - let check; - try { - await instance.open(passData); - } catch (e) { - check = e; - } + cbs[METHODS.DIALOG_CLOSE](); - expect(messenger.sendAndWaitResponse).toBeCalledWith(METHODS.DIALOG_OPEN, passData); - expect(messenger.send).toBeCalledWith(METHODS.DIALOG_CLOSE); - expect(check).toEqual(err); + expect(inst.isShown).toBe(false); }); }); diff --git a/tests/unit/spec/class/ProviderFactory.spec.js b/tests/unit/spec/class/ProviderFactory.spec.js index d3c5ffb5..17e27d70 100644 --- a/tests/unit/spec/class/ProviderFactory.spec.js +++ b/tests/unit/spec/class/ProviderFactory.spec.js @@ -1,5 +1,5 @@ import Web3HttpProvider from 'web3-providers-http'; -import { Network } from '@endpass/class'; +import Network from '@endpass/class/Network'; import ProviderFactory from '@/class/ProviderFactory'; jest.mock('web3-providers-http'); diff --git a/tests/unit/spec/middleware/requestProviderCheck.spec.js b/tests/unit/spec/middleware/requestProviderCheck.spec.js index 3f0172ac..2504fcaf 100644 --- a/tests/unit/spec/middleware/requestProviderCheck.spec.js +++ b/tests/unit/spec/middleware/requestProviderCheck.spec.js @@ -1,5 +1,5 @@ import requestProviderCheck from '@/middleware/requestProviderCheck'; -import { Network } from '@endpass/class'; +import Network from '@endpass/class/Network'; describe('requestProviderCheck middleware', () => { const mainUrl = Network.NETWORK_URL_HTTP[Network.NET_ID.MAIN][0]; diff --git a/tests/unit/spec/middleware/requestProviderSwitchActual.spec.js b/tests/unit/spec/middleware/requestProviderSwitchActual.spec.js index da5083ea..e4d8713d 100644 --- a/tests/unit/spec/middleware/requestProviderSwitchActual.spec.js +++ b/tests/unit/spec/middleware/requestProviderSwitchActual.spec.js @@ -1,5 +1,5 @@ import Web3HttpProvider from 'web3-providers-http'; -import { Network } from '@endpass/class'; +import Network from '@endpass/class/Network'; import requestProviderSwitchActual from '@/middleware/requestProviderSwitchActual'; jest.mock('web3-providers-http', () => diff --git a/tsconfig.json b/tsconfig.json index 97070c23..624d27ef 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,6 +20,7 @@ "module": "esnext", "baseUrl": ".", "paths": { + "*": ["types/*"], "@/*": ["./src/*"], "@/types/*": ["./types/*"] } diff --git a/types/@endpass/Network.d.ts b/types/@endpass/Network.d.ts new file mode 100644 index 00000000..9009f90c --- /dev/null +++ b/types/@endpass/Network.d.ts @@ -0,0 +1,4 @@ +declare module '@endpass/class/Network' { + import Network from '@endpass/class/types/Network'; + export default Network; +} diff --git a/types/UserSettings.d.ts b/types/UserSettings.d.ts index 3a41ff3b..55b64880 100644 --- a/types/UserSettings.d.ts +++ b/types/UserSettings.d.ts @@ -1,4 +1,4 @@ -import { Network } from '@endpass/class'; +import Network from '@endpass/class/Network'; import { $Values } from 'utility-types'; export declare type UserSettings = { diff --git a/yarn.lock b/yarn.lock index 4536a0fd..1a4f31ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -29,18 +29,18 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.3.4.tgz#921a5a13746c21e32445bf0798680e9d11a6530b" - integrity sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA== +"@babel/core@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.0.tgz#248fd6874b7d755010bfe61f557461d4f446d9e9" + integrity sha512-Dzl7U0/T69DFOTwqz/FJdnOSWS57NpjNfCwMKHABr589Lg8uX1RrlBIJ7L5Dubt/xkLsx0xH5EBFzlBVes1ayA== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.3.4" - "@babel/helpers" "^7.2.0" - "@babel/parser" "^7.3.4" - "@babel/template" "^7.2.2" - "@babel/traverse" "^7.3.4" - "@babel/types" "^7.3.4" + "@babel/generator" "^7.4.0" + "@babel/helpers" "^7.4.0" + "@babel/parser" "^7.4.0" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.0" + "@babel/types" "^7.4.0" convert-source-map "^1.1.0" debug "^4.1.0" json5 "^2.1.0" @@ -71,12 +71,12 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.3.4.tgz#9aa48c1989257877a9d971296e5b73bfe72e446e" - integrity sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg== +"@babel/generator@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196" + integrity sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ== dependencies: - "@babel/types" "^7.3.4" + "@babel/types" "^7.4.0" jsesc "^2.5.1" lodash "^4.17.11" source-map "^0.5.0" @@ -97,23 +97,23 @@ "@babel/helper-explode-assignable-expression" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-call-delegate@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" - integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ== +"@babel/helper-call-delegate@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.0.tgz#f308eabe0d44f451217853aedf4dea5f6fe3294f" + integrity sha512-SdqDfbVdNQCBp3WhK2mNdDvHd3BD6qbmIc43CAyjnsfCmgHMeqgDcM3BzY2lchi7HBJGJ2CVdynLWbezaE4mmQ== dependencies: - "@babel/helper-hoist-variables" "^7.0.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/helper-hoist-variables" "^7.4.0" + "@babel/traverse" "^7.4.0" + "@babel/types" "^7.4.0" -"@babel/helper-define-map@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" - integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg== +"@babel/helper-define-map@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.0.tgz#cbfd8c1b2f12708e262c26f600cd16ed6a3bc6c9" + integrity sha512-wAhQ9HdnLIywERVcSvX40CEJwKdAa1ID4neI9NXQPDOHwwA+57DqwLiPEVy2AIyWzAk0CQ8qx4awO0VUURwLtA== dependencies: "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.0.0" - lodash "^4.17.10" + "@babel/types" "^7.4.0" + lodash "^4.17.11" "@babel/helper-explode-assignable-expression@^7.1.0": version "7.1.0" @@ -139,12 +139,12 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-hoist-variables@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" - integrity sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w== +"@babel/helper-hoist-variables@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.0.tgz#25b621399ae229869329730a62015bbeb0a6fbd6" + integrity sha512-/NErCuoe/et17IlAQFKWM24qtyYYie7sFIrW/tIQXpck6vAu2hhtYYsKLBWQV+BQZMbcIYPU/QMYuTufrY4aQw== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.4.0" "@babel/helper-member-expression-to-functions@^7.0.0": version "7.0.0" @@ -212,15 +212,15 @@ "@babel/traverse" "^7.2.3" "@babel/types" "^7.0.0" -"@babel/helper-replace-supers@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.3.4.tgz#a795208e9b911a6eeb08e5891faacf06e7013e13" - integrity sha512-pvObL9WVf2ADs+ePg0jrqlhHoxRXlOa+SHRHzAXIz2xkYuOHfGl+fKxPMaS4Fq+uje8JQPobnertBBvyrWnQ1A== +"@babel/helper-replace-supers@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.0.tgz#4f56adb6aedcd449d2da9399c2dcf0545463b64c" + integrity sha512-PVwCVnWWAgnal+kJ+ZSAphzyl58XrFeSKSAJRiqg5QToTsjL+Xu1f9+RJ+d+Q0aPhPfBGaYfkox66k86thxNSg== dependencies: "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.3.4" - "@babel/types" "^7.3.4" + "@babel/traverse" "^7.4.0" + "@babel/types" "^7.4.0" "@babel/helper-simple-access@^7.1.0": version "7.1.0" @@ -237,6 +237,13 @@ dependencies: "@babel/types" "^7.0.0" +"@babel/helper-split-export-declaration@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz#571bfd52701f492920d63b7f735030e9a3e10b55" + integrity sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw== + dependencies: + "@babel/types" "^7.4.0" + "@babel/helper-wrap-function@^7.1.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" @@ -256,6 +263,15 @@ "@babel/traverse" "^7.1.5" "@babel/types" "^7.2.0" +"@babel/helpers@^7.4.0": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.2.tgz#3bdfa46a552ca77ef5a0f8551be5f0845ae989be" + integrity sha512-gQR1eQeroDzFBikhrCccm5Gs2xBjZ57DNjGbqTaHo911IpmSxflOQWMAHPw/TXk8L3isv7s9lYzUkexOeTQUYg== + dependencies: + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.0" + "@babel/types" "^7.4.0" + "@babel/highlight@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" @@ -270,7 +286,7 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.2.tgz#95cdeddfc3992a6ca2a1315191c1679ca32c55cd" integrity sha512-QzNUC2RO1gadg+fs21fi0Uu0OuGNzRKEmgCxoLNzbCdoprLwjfmZwzUrpUNfJPaVRwBpDY47A17yYEGWyRelnQ== -"@babel/parser@^7.1.0", "@babel/parser@^7.3.4": +"@babel/parser@^7.1.0": version "7.3.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.4.tgz#a43357e4bbf4b92a437fb9e465c192848287f27c" integrity sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ== @@ -280,6 +296,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.3.tgz#32f5df65744b70888d17872ec106b02434ba1489" integrity sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA== +"@babel/parser@^7.4.0", "@babel/parser@^7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.2.tgz#b4521a400cb5a871eab3890787b4bc1326d38d91" + integrity sha512-9fJTDipQFvlfSVdD/JBtkiY0br9BtfvW2R8wo6CX/Ej2eMuV0gWPk1M67Mt3eggQvBqYW1FCEk8BN7WvGm/g5g== + "@babel/plugin-proposal-async-generator-functions@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" @@ -297,10 +318,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.2.0" -"@babel/plugin-proposal-object-rest-spread@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.4.tgz#47f73cf7f2a721aad5c0261205405c642e424654" - integrity sha512-j7VQmbbkA+qrzNqbKHrBsW3ddFnOeva6wzSe/zB7T+xaxGc+RCpwo44wCmRixAIGRoIpmVgvzFzNJqQcO3/9RA== +"@babel/plugin-proposal-object-rest-spread@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.0.tgz#e4960575205eadf2a1ab4e0c79f9504d5b82a97f" + integrity sha512-uTNi8pPYyUH2eWHyYWWSYJKwKg34hhgl4/dbejEjL+64OhbHjTX7wEVWMQl82tEmdDsGeu77+s8HHLS627h6OQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" @@ -313,14 +334,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" -"@babel/plugin-proposal-unicode-property-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520" - integrity sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw== +"@babel/plugin-proposal-unicode-property-regex@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.0.tgz#202d91ee977d760ef83f4f416b280d568be84623" + integrity sha512-h/KjEZ3nK9wv1P1FSNb9G079jXrNYR0Ko+7XkOx85+gM24iZbPn0rh4vCftk+5QKY7y1uByFataBTmX7irEF1w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.2.0" + regexpu-core "^4.5.4" "@babel/plugin-syntax-async-generators@^7.2.0": version "7.2.0" @@ -371,10 +392,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-async-to-generator@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.3.4.tgz#4e45408d3c3da231c0e7b823f407a53a7eb3048c" - integrity sha512-Y7nCzv2fw/jEZ9f678MuKdMo99MFDJMT/PvD9LisrR5JDFcJH6vYeH6RnjVt3p5tceyGRvTtEN0VOlU+rgHZjA== +"@babel/plugin-transform-async-to-generator@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.0.tgz#234fe3e458dce95865c0d152d256119b237834b0" + integrity sha512-EeaFdCeUULM+GPFEsf7pFcNSxM7hYjoj5fiYbyuiXobW4JhFnjAv9OWzNwHyHcKoPNpAfeRDuW6VyaXEDUBa7g== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -387,26 +408,26 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.3.4.tgz#5c22c339de234076eee96c8783b2fed61202c5c4" - integrity sha512-blRr2O8IOZLAOJklXLV4WhcEzpYafYQKSGT3+R26lWG41u/FODJuBggehtOwilVAcFu393v3OFj+HmaE6tVjhA== +"@babel/plugin-transform-block-scoping@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.0.tgz#164df3bb41e3deb954c4ca32ffa9fcaa56d30bcb" + integrity sha512-AWyt3k+fBXQqt2qb9r97tn3iBwFpiv9xdAiG+Gr2HpAZpuayvbL55yWrsV3MyHvXk/4vmSiedhDRl1YI2Iy5nQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.11" -"@babel/plugin-transform-classes@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.3.4.tgz#dc173cb999c6c5297e0b5f2277fdaaec3739d0cc" - integrity sha512-J9fAvCFBkXEvBimgYxCjvaVDzL6thk0j0dBvCeZmIUDBwyt+nv6HfbImsSrWsYXfDNDivyANgJlFXDUWRTZBuA== +"@babel/plugin-transform-classes@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.0.tgz#e3428d3c8a3d01f33b10c529b998ba1707043d4d" + integrity sha512-XGg1Mhbw4LDmrO9rSTNe+uI79tQPdGs0YASlxgweYRLZqo/EQktjaOV4tchL/UZbM0F+/94uOipmdNGoaGOEYg== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.1.0" + "@babel/helper-define-map" "^7.4.0" "@babel/helper-function-name" "^7.1.0" "@babel/helper-optimise-call-expression" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.3.4" - "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/helper-replace-supers" "^7.4.0" + "@babel/helper-split-export-declaration" "^7.4.0" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.2.0": @@ -416,10 +437,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz#e75269b4b7889ec3a332cd0d0c8cff8fed0dc6f3" - integrity sha512-coVO2Ayv7g0qdDbrNiadE4bU7lvCd9H539m2gMknyVjjMdwF/iCOM7R+E8PkntoqLkltO0rk+3axhpp/0v68VQ== +"@babel/plugin-transform-destructuring@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.0.tgz#acbb9b2418d290107db333f4d6cd8aa6aea00343" + integrity sha512-HySkoatyYTY3ZwLI8GGvkRWCFrjAGXUHur5sMecmCIdIharnlcWWivOqDJI76vvmVZfzwb6G08NREsrY96RhGQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -447,10 +468,10 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-for-of@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9" - integrity sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ== +"@babel/plugin-transform-for-of@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.0.tgz#56c8c36677f5d4a16b80b12f7b768de064aaeb5f" + integrity sha512-vWdfCEYLlYSxbsKj5lGtzA49K3KANtb8qCPQ1em07txJzsBwY+cKJzBHizj5fl3CCx7vt+WPdgDLTHmydkbQSQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -477,21 +498,21 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-commonjs@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404" - integrity sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ== +"@babel/plugin-transform-modules-commonjs@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.0.tgz#3b8ec61714d3b75d20c5ccfa157f2c2e087fd4ca" + integrity sha512-iWKAooAkipG7g1IY0eah7SumzfnIT3WNhT4uYB2kIsvHnNSB6MDYVa5qyICSwaTBDBY2c4SnJ3JtEa6ltJd6Jw== dependencies: "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" -"@babel/plugin-transform-modules-systemjs@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.3.4.tgz#813b34cd9acb6ba70a84939f3680be0eb2e58861" - integrity sha512-VZ4+jlGOF36S7TjKs8g4ojp4MEI+ebCQZdswWb/T9I4X84j8OtFAyjXjt/M16iIm5RIZn0UMQgg/VgIwo/87vw== +"@babel/plugin-transform-modules-systemjs@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.0.tgz#c2495e55528135797bc816f5d50f851698c586a1" + integrity sha512-gjPdHmqiNhVoBqus5qK60mWPp1CmYWp/tkh11mvb0rrys01HycEGD7NvvSoKXlWEfSM9TcL36CpsK8ElsADptQ== dependencies: - "@babel/helper-hoist-variables" "^7.0.0" + "@babel/helper-hoist-variables" "^7.4.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-modules-umd@^7.2.0": @@ -502,17 +523,17 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0": - version "7.3.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.3.0.tgz#140b52985b2d6ef0cb092ef3b29502b990f9cd50" - integrity sha512-NxIoNVhk9ZxS+9lSoAQ/LM0V2UEvARLttEHUrRDGKFaAxOYQcrkN/nLRE+BbbicCAvZPl7wMP0X60HsHE5DtQw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.2.tgz#800391136d6cbcc80728dbdba3c1c6e46f86c12e" + integrity sha512-NsAuliSwkL3WO2dzWTOL1oZJHm0TM8ZY8ZSxk2ANyKkt5SQlToGA4pzctmq1BEjoacurdwZ3xp2dCQWJkME0gQ== dependencies: regexp-tree "^0.1.0" -"@babel/plugin-transform-new-target@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" - integrity sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw== +"@babel/plugin-transform-new-target@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.0.tgz#67658a1d944edb53c8d4fa3004473a0dd7838150" + integrity sha512-6ZKNgMQmQmrEX/ncuCwnnw1yVGoaOW5KpxNhoWI7pCQdA0uZ0HqHGqenCUIENAnxRjy2WwNQ30gfGdIgqJXXqw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -524,26 +545,26 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.1.0" -"@babel/plugin-transform-parameters@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz#0d5ad15dc805e2ea866df4dd6682bfe76d1408c2" - integrity sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA== +"@babel/plugin-transform-parameters@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.0.tgz#a1309426fac4eecd2a9439a4c8c35124a11a48a9" + integrity sha512-Xqv6d1X+doyiuCGDoVJFtlZx0onAX0tnc3dY8w71pv/O0dODAbusVv2Ale3cGOwfiyi895ivOBhYa9DhAM8dUA== dependencies: - "@babel/helper-call-delegate" "^7.1.0" + "@babel/helper-call-delegate" "^7.4.0" "@babel/helper-get-function-arity" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-regenerator@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.3.4.tgz#1601655c362f5b38eead6a52631f5106b29fa46a" - integrity sha512-hvJg8EReQvXT6G9H2MvNPXkv9zK36Vxa1+csAVTpE1J3j0zlHplw76uudEbJxgvqZzAq9Yh45FLD4pk5mKRFQA== +"@babel/plugin-transform-regenerator@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.0.tgz#0780e27ee458cc3fdbad18294d703e972ae1f6d1" + integrity sha512-SZ+CgL4F0wm4npojPU6swo/cK4FcbLgxLd4cWpHaNXY/NJ2dpahODCqBbAwb2rDmVszVb3SSjnk9/vik3AYdBw== dependencies: regenerator-transform "^0.13.4" -"@babel/plugin-transform-runtime@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.3.4.tgz#57805ac8c1798d102ecd75c03b024a5b3ea9b431" - integrity sha512-PaoARuztAdd5MgeVjAxnIDAIUet5KpogqaefQvPOmPYCxYoaPhautxDh3aO8a4xHsKgT/b9gSxR0BKK1MIewPA== +"@babel/plugin-transform-runtime@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.4.0.tgz#b4d8c925ed957471bc57e0b9da53408ebb1ed457" + integrity sha512-1uv2h9wnRj98XX3g0l4q+O3jFM6HfayKup7aIu4pnnlzGz0H+cYckGBC74FZIWJXJSXAmeJ9Yu5Gg2RQpS4hWg== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -604,51 +625,53 @@ "@babel/helper-regex" "^7.0.0" regexpu-core "^4.1.3" -"@babel/preset-env@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.4.tgz#887cf38b6d23c82f19b5135298bdb160062e33e1" - integrity sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA== +"@babel/preset-env@^7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.2.tgz#2f5ba1de2daefa9dcca653848f96c7ce2e406676" + integrity sha512-OEz6VOZaI9LW08CWVS3d9g/0jZA6YCn1gsKIy/fut7yZCJti5Lm1/Hi+uo/U+ODm7g4I6gULrCP+/+laT8xAsA== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-async-generator-functions" "^7.2.0" "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.3.4" + "@babel/plugin-proposal-object-rest-spread" "^7.4.0" "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.0" "@babel/plugin-syntax-async-generators" "^7.2.0" "@babel/plugin-syntax-json-strings" "^7.2.0" "@babel/plugin-syntax-object-rest-spread" "^7.2.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.3.4" + "@babel/plugin-transform-async-to-generator" "^7.4.0" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.3.4" - "@babel/plugin-transform-classes" "^7.3.4" + "@babel/plugin-transform-block-scoping" "^7.4.0" + "@babel/plugin-transform-classes" "^7.4.0" "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.4.0" "@babel/plugin-transform-dotall-regex" "^7.2.0" "@babel/plugin-transform-duplicate-keys" "^7.2.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.0" "@babel/plugin-transform-function-name" "^7.2.0" "@babel/plugin-transform-literals" "^7.2.0" "@babel/plugin-transform-modules-amd" "^7.2.0" - "@babel/plugin-transform-modules-commonjs" "^7.2.0" - "@babel/plugin-transform-modules-systemjs" "^7.3.4" + "@babel/plugin-transform-modules-commonjs" "^7.4.0" + "@babel/plugin-transform-modules-systemjs" "^7.4.0" "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0" - "@babel/plugin-transform-new-target" "^7.0.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.2" + "@babel/plugin-transform-new-target" "^7.4.0" "@babel/plugin-transform-object-super" "^7.2.0" - "@babel/plugin-transform-parameters" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.3.4" + "@babel/plugin-transform-parameters" "^7.4.0" + "@babel/plugin-transform-regenerator" "^7.4.0" "@babel/plugin-transform-shorthand-properties" "^7.2.0" "@babel/plugin-transform-spread" "^7.2.0" "@babel/plugin-transform-sticky-regex" "^7.2.0" "@babel/plugin-transform-template-literals" "^7.2.0" "@babel/plugin-transform-typeof-symbol" "^7.2.0" "@babel/plugin-transform-unicode-regex" "^7.2.0" - browserslist "^4.3.4" + "@babel/types" "^7.4.0" + browserslist "^4.4.2" + core-js-compat "^3.0.0" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.3.0" @@ -668,12 +691,12 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.4.tgz#73d12ba819e365fcf7fd152aed56d6df97d21c83" - integrity sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g== +"@babel/runtime@^7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.2.tgz#f5ab6897320f16decd855eed70b705908a313fe8" + integrity sha512-7Bl2rALb7HpvXFL7TETNzKSAeBVCPHELzc0C//9FCxN8nsiueWSJBqaF+2oIJScyILStASR/Cx5WMkXGYTiJFA== dependencies: - regenerator-runtime "^0.12.0" + regenerator-runtime "^0.13.2" "@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.2.2": version "7.2.2" @@ -684,6 +707,15 @@ "@babel/parser" "^7.2.2" "@babel/types" "^7.2.2" +"@babel/template@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b" + integrity sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.4.0" + "@babel/types" "^7.4.0" + "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2", "@babel/traverse@^7.2.3": version "7.2.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.3.tgz#7ff50cefa9c7c0bd2d81231fdac122f3957748d8" @@ -699,17 +731,17 @@ globals "^11.1.0" lodash "^4.17.10" -"@babel/traverse@^7.3.4": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.3.4.tgz#1330aab72234f8dea091b08c4f8b9d05c7119e06" - integrity sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ== +"@babel/traverse@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.0.tgz#14006967dd1d2b3494cdd650c686db9daf0ddada" + integrity sha512-/DtIHKfyg2bBKnIN+BItaIlEg5pjAnzHOIQe5w+rHAw/rg9g0V7T4rqPX8BJPfW11kt3koyjAnTNwCzb28Y1PA== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.3.4" + "@babel/generator" "^7.4.0" "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.3.4" - "@babel/types" "^7.3.4" + "@babel/helper-split-export-declaration" "^7.4.0" + "@babel/parser" "^7.4.0" + "@babel/types" "^7.4.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.11" @@ -723,7 +755,7 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" -"@babel/types@^7.3.0", "@babel/types@^7.3.4": +"@babel/types@^7.3.0": version "7.3.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.3.4.tgz#bf482eaeaffb367a28abbf9357a94963235d90ed" integrity sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ== @@ -741,6 +773,15 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" +"@babel/types@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c" + integrity sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA== + dependencies: + esutils "^2.0.2" + lodash "^4.17.11" + to-fast-properties "^2.0.0" + "@cnakazawa/watch@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" @@ -880,10 +921,10 @@ dependencies: find-up "^2.1.0" -"@endpass/class@^0.9.4": - version "0.9.4" - resolved "https://registry.yarnpkg.com/@endpass/class/-/class-0.9.4.tgz#bd321f8518ebd4ae0fd535908bfab59d54c179c4" - integrity sha512-ReQ1ObeoSzRjt2c52Qlyd3CNBgbh/7zzwTFi3SKCqWJJAUFEqFFe7yWUyW3NGV92do/IdgjSSSngqZzmNjurrA== +"@endpass/class@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@endpass/class/-/class-0.10.0.tgz#d6157869780054b4784494ff38b18ec1fbf8e289" + integrity sha512-Qri4K3gCNpCoyIe8gKg4RZtV8H2zacdLvzmqDJamfNS5ro7ctHXACcu6tTIkopa8JzjD00zqxJqg0Vozis7WVw== dependencies: "@endpass/utils" "^1.2.1" "@ledgerhq/hw-app-eth" "^4.24.0" @@ -915,20 +956,6 @@ lodash "^4.17.11" node-notifier "^5.4.0" -"@iamstarkov/listr-update-renderer@0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@iamstarkov/listr-update-renderer/-/listr-update-renderer-0.4.1.tgz#d7c48092a2dcf90fd672b6c8b458649cb350c77e" - integrity sha512-IJyxQWsYDEkf8C8QthBn5N8tIUR9V9je6j3sMIpAkonaadjbvxmRC6RAhpa3RKxndhNnU2M6iNbtJwd7usQYIA== - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^2.3.0" - strip-ansi "^3.0.1" - "@jest/console@^24.3.0": version "24.3.0" resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.3.0.tgz#7bd920d250988ba0bf1352c4493a48e1cb97671e" @@ -1333,15 +1360,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.0.tgz#070e9ce7c90e727aca0e0c14e470f9a93ffe9390" integrity sha512-D5Rt+HXgEywr3RQJcGlZUCTCx1qVbCZpVk3/tOOA6spLNZdGm8BU+zRgdRYDoF1pO3RuXLxADzMrF903JlQXqg== -"@types/node@^11.10.5": - version "11.10.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.10.5.tgz#fbaca34086bdc118011e1f05c47688d432f2d571" - integrity sha512-DuIRlQbX4K+d5I+GMnv+UfnGh+ist0RdlvOp+JZ7ePJ6KQONCFQv/gKYSU1ZzbVdFSUCKZOltjmpFAGGv5MdYA== - -"@types/node@^11.9.5": - version "11.9.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.9.6.tgz#c632bbcc780a1349673a6e2e9b9dfa8c369d3c74" - integrity sha512-4hS2K4gwo9/aXIcoYxCtHpdgd8XUeDmo1siRCAH3RziXB65JlPqUFMtfy9VPj+og7dp3w1TFjGwYga4e0m9GwA== +"@types/node@^11.11.6": + version "11.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" + integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== "@types/stack-utils@^1.0.1": version "1.0.1" @@ -1366,29 +1388,29 @@ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.9.tgz#693e76a52f61a2f1e7fb48c0eef167b95ea4ffd0" integrity sha512-sCZy4SxP9rN2w30Hlmg5dtdRwgYQfYRiLo9usw8X9cxlf+H4FqM1xX7+sNH7NNKVdbXMJWqva7iyy+fxh/V7fA== -"@typescript-eslint/eslint-plugin@^1.4.2": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.4.2.tgz#370bc32022d1cc884a5dcf62624ef2024182769d" - integrity sha512-6WInypy/cK4rM1dirKbD5p7iFW28DbSRKT/+PGn+DYzBWEvHq5KnZAqQ5cX25JBc0qMkFxJNxNfBbFXJyyzVcw== +"@typescript-eslint/eslint-plugin@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.5.0.tgz#85c509bcfc2eb35f37958fa677379c80b7a8f66f" + integrity sha512-TZ5HRDFz6CswqBUviPX8EfS+iOoGbclYroZKT3GWGYiGScX0qo6QjHc5uuM7JN920voP2zgCkHgF5SDEVlCtjQ== dependencies: - "@typescript-eslint/parser" "1.4.2" - "@typescript-eslint/typescript-estree" "1.4.2" + "@typescript-eslint/parser" "1.5.0" + "@typescript-eslint/typescript-estree" "1.5.0" requireindex "^1.2.0" tsutils "^3.7.0" -"@typescript-eslint/parser@1.4.2", "@typescript-eslint/parser@^1.4.2": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.4.2.tgz#acfdee2019958a41d308d768e53ded975ef90ce8" - integrity sha512-OqLkY9295DXXaWToItUv3olO2//rmzh6Th6Sc7YjFFEpEuennsm5zhygLLvHZjPxPlzrQgE8UDaOPurDylaUuw== +"@typescript-eslint/parser@1.5.0", "@typescript-eslint/parser@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.5.0.tgz#a96114d195dff2a49534e4c4850fb676f905a072" + integrity sha512-pRWTnJrnxuT0ragdY26hZL+bxqDd4liMlftpH2CBlMPryOIOb1J+MdZuw6R4tIu6bWVdwbHKPTs+Q34LuGvfGw== dependencies: - "@typescript-eslint/typescript-estree" "1.4.2" + "@typescript-eslint/typescript-estree" "1.5.0" eslint-scope "^4.0.0" eslint-visitor-keys "^1.0.0" -"@typescript-eslint/typescript-estree@1.4.2": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.4.2.tgz#b16bc36c9a4748a7fca92cba4c2d73c5325c8a85" - integrity sha512-wKgi/w6k1v3R4b6oDc20cRWro2gBzp0wn6CAeYC8ExJMfvXMfiaXzw2tT9ilxdONaVWMCk7B9fMdjos7bF/CWw== +"@typescript-eslint/typescript-estree@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.5.0.tgz#986b356ecdf5a0c3bc9889d221802149cf5dbd4e" + integrity sha512-XqR14d4BcYgxcrpxIwcee7UEjncl9emKc/MgkeUfIk2u85KlsGYyaxC7Zxjmb17JtWERk/NaO+KnBsqgpIXzwA== dependencies: lodash.unescape "4.0.1" semver "5.5.0" @@ -2094,14 +2116,14 @@ browserify-sign@^4.0.0: inherits "^2.0.1" parse-asn1 "^5.0.0" -browserslist@^4.3.4: - version "4.3.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.6.tgz#0f9d9081afc66b36f477c6bdf3813f784f42396a" - integrity sha512-kMGKs4BTzRWviZ8yru18xBpx+CyHG9eqgRbj9XbE3IMgtczf4aiA0Y1YCpVdvUieKGZ03kolSPXqTcscBCb9qw== +browserslist@^4.4.2, browserslist@^4.5.1: + version "4.5.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.5.2.tgz#36ad281f040af684555a23c780f5c2081c752df0" + integrity sha512-zmJVLiKLrzko0iszd/V4SsjTaomFeoVzQGYYOYgRgsbh7WNh95RgDB0CmBdFWYs/3MyFSt69NypjL/h3iaddKQ== dependencies: - caniuse-lite "^1.0.30000921" - electron-to-chromium "^1.3.92" - node-releases "^1.1.1" + caniuse-lite "^1.0.30000951" + electron-to-chromium "^1.3.116" + node-releases "^1.1.11" bs58@^2.0.1: version "2.0.1" @@ -2324,10 +2346,10 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== -caniuse-lite@^1.0.30000921: - version "1.0.30000923" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000923.tgz#148f9bda508024b5ce957b463ae2e8302b451bb2" - integrity sha512-j5ur7eeluOFjjPUkydtXP4KFAsmH3XaQNch5tvWSO+dLHYt5PE+VgJZLWtbVOodfWij6m6zas28T4gB/cLYq1w== +caniuse-lite@^1.0.30000951: + version "1.0.30000951" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000951.tgz#c7c2fd4d71080284c8677dd410368df8d83688fe" + integrity sha512-eRhP+nQ6YUkIcNQ6hnvdhMkdc7n3zadog0KXNRxAZTT2kHjUb1yGn71OrPhSn8MOvlX97g5CR97kGVj8fMsXWg== capture-exit@^1.2.0: version "1.2.0" @@ -2808,6 +2830,26 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= +core-js-compat@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.0.0.tgz#cd9810b8000742535a4a43773866185e310bd4f7" + integrity sha512-W/Ppz34uUme3LmXWjMgFlYyGnbo1hd9JvA0LNQ4EmieqVjg2GPYbj3H6tcdP2QGPGWdRKUqZVbVKLNIFVs/HiA== + dependencies: + browserslist "^4.5.1" + core-js "3.0.0" + core-js-pure "3.0.0" + semver "^5.6.0" + +core-js-pure@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.0.0.tgz#a5679adb4875427c8c0488afc93e6f5b7125859b" + integrity sha512-yPiS3fQd842RZDgo/TAKGgS0f3p2nxssF1H65DIZvZv0Od5CygP8puHXn3IQiM/39VAvgCbdaMQpresrbGgt9g== + +core-js@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.0.tgz#a8dbfa978d29bfc263bfb66c556d0ca924c28957" + integrity sha512-WBmxlgH2122EzEJ6GH8o9L/FeoUKxxxZ6q6VUxoTlsE4EvbTWKJb447eyVxTEuq0LpXjlq/kCB2qgBvsYRkLvQ== + core-js@^2.4.0, core-js@^2.5.0: version "2.6.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.1.tgz#87416ae817de957a3f249b3b5ca475d4aaed6042" @@ -3365,10 +3407,10 @@ 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.92: - version "1.3.96" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.96.tgz#25770ec99b8b07706dedf3a5f43fa50cb54c4f9a" - integrity sha512-ZUXBUyGLeoJxp4Nt6G/GjBRLnyz8IKQGexZ2ndWaoegThgMGFO1tdDYID5gBV32/1S83osjJHyfzvanE/8HY4Q== +electron-to-chromium@^1.3.116: + version "1.3.119" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.119.tgz#9a7770da667252aeb81f667853f67c2b26e00197" + integrity sha512-3mtqcAWa4HgG+Djh/oNXlPH0cOH6MmtwxN1nHSaReb9P0Vn51qYPqYwLeoSuAX9loU1wrOBhFbiX3CkeIxPfgg== elegant-spinner@^1.0.1: version "1.0.1" @@ -3586,6 +3628,14 @@ eslint-scope@^4.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" +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== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + eslint-utils@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" @@ -3596,10 +3646,10 @@ eslint-visitor-keys@^1.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== -eslint@^5.14.1: - version "5.14.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.14.1.tgz#490a28906be313685c55ccd43a39e8d22efc04ba" - integrity sha512-CyUMbmsjxedx8B0mr79mNOqetvkbij/zrXnFeK2zc3pGRn3/tibjiNAv/3UxFEyfMDjh+ZqTrJrEGBFiGfD5Og== +eslint@^5.15.3: + version "5.15.3" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.15.3.tgz#c79c3909dc8a7fa3714fb340c11e30fd2526b8b5" + integrity sha512-vMGi0PjCHSokZxE0NLp2VneGw5sio7SSiDNgIUn2tC0XkWJRNOIoHIg3CliLVfXnJsiHxGAYrkw0PieAu8+KYQ== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.9.1" @@ -3607,7 +3657,7 @@ eslint@^5.14.1: cross-spawn "^6.0.5" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^4.0.0" + eslint-scope "^4.0.3" eslint-utils "^1.3.1" eslint-visitor-keys "^1.0.0" espree "^5.0.1" @@ -3681,6 +3731,11 @@ estree-walker@^0.5.2: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39" integrity sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig== +estree-walker@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.0.tgz#5d865327c44a618dde5699f763891ae31f257dae" + integrity sha512-peq1RfVAVzr3PU/jL31RaOjUKLoZJpObQWJJ+LgfcxDUifyLZ1RjPQZTl0pzj2uJ45b7A7XpyppXvxdEqzo4rw== + esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -6286,12 +6341,11 @@ libnpx@^10.2.0: y18n "^4.0.0" yargs "^11.0.0" -lint-staged@^8.1.4: - version "8.1.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.4.tgz#a726592c0e55231116af295e730643bb711c169b" - integrity sha512-oFbbhB/VzN8B3i/sIdb9gMfngGArI6jIfxSn+WPdQb2Ni3GJeS6T4j5VriSbQfxfMuYoQlMHOoFt+lfcWV0HfA== +lint-staged@^8.1.5: + version "8.1.5" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.5.tgz#372476fe1a58b8834eb562ed4c99126bd60bdd79" + integrity sha512-e5ZavfnSLcBJE1BTzRTqw6ly8OkqVyO3GL2M6teSmTBYQ/2BuueD5GIt2RPsP31u/vjKdexUyDCxSyK75q4BDA== dependencies: - "@iamstarkov/listr-update-renderer" "0.4.1" chalk "^2.3.1" commander "^2.14.1" cosmiconfig "^5.0.2" @@ -6304,6 +6358,7 @@ lint-staged@^8.1.4: is-glob "^4.0.0" is-windows "^1.0.2" listr "^0.14.2" + listr-update-renderer "^0.5.0" lodash "^4.17.11" log-symbols "^2.2.0" micromatch "^3.1.8" @@ -6612,7 +6667,7 @@ macos-release@^2.0.0: resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.0.0.tgz#7dddf4caf79001a851eb4fba7fb6034f251276ab" integrity sha512-iCM3ZGeqIzlrH7KxYK+fphlJpCCczyHXc+HhRVbEu9uNTCrzYJjvvtefzeKTCVHd5AP/aD/fzC80JZ4ZP+dQ/A== -magic-string@^0.25.1: +magic-string@^0.25.2: version "0.25.2" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.2.tgz#139c3a729515ec55e96e69e82a11fe890a293ad9" integrity sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg== @@ -6924,7 +6979,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: +minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -7201,10 +7256,10 @@ node-notifier@^5.4.0: shellwords "^0.1.1" which "^1.3.0" -node-releases@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.2.tgz#93c17fba5eec8650ad908de5433fa8763baebe4d" - integrity sha512-j1gEV/zX821yxdWp/1vBMN0pSUjuH9oGUdLCb4PfUko6ZW7KdRs3Z+QGGwDUhYtSpQvdVVyLd2V0YvLsmdg5jQ== +node-releases@^1.1.11: + version "1.1.11" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.11.tgz#9a0841a4b0d92b7d5141ed179e764f42ad22724a" + integrity sha512-8v1j5KfP+s5WOTa1spNUAOfreajQPN12JXbRR0oDE+YrJBQCXBnNqUDj27EKpPLOoSiU3tKi3xGPB+JaOdUEQQ== dependencies: semver "^5.3.0" @@ -8569,6 +8624,13 @@ regenerate-unicode-properties@^7.0.0: dependencies: regenerate "^1.4.0" +regenerate-unicode-properties@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.0.2.tgz#7b38faa296252376d363558cfbda90c9ce709662" + integrity sha512-SbA/iNrBUf6Pv2zU8Ekv1Qbhv92yxL4hiDa2siuxs4KKn4oOoMDHXjAf7+Nz9qinUQ46B1LcWEi/PhJfPWpZWQ== + dependencies: + regenerate "^1.4.0" + regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" @@ -8589,10 +8651,10 @@ regenerator-runtime@^0.12.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== -regenerator-runtime@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.1.tgz#522ea2aafd9200a00eee143dc14219a35a0f3991" - integrity sha512-5KzMIyPLvfdPmvsdlYsHqITrDfK9k7bmvf97HvHSN4810i254ponbxCQ1NukpRWlu6en2MBWzAlhDExEKISwAA== +regenerator-runtime@^0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" + integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== regenerator-transform@^0.13.4: version "0.13.4" @@ -8630,7 +8692,7 @@ regexpp@^2.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpu-core@^4.1.3, regexpu-core@^4.2.0: +regexpu-core@^4.1.3: version "4.4.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.4.0.tgz#8d43e0d1266883969720345e70c275ee0aec0d32" integrity sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA== @@ -8642,6 +8704,18 @@ regexpu-core@^4.1.3, regexpu-core@^4.2.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.0.2" +regexpu-core@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" + integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.0.2" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" + registry-auth-token@^3.0.1, registry-auth-token@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" @@ -8875,22 +8949,22 @@ rollup-plugin-babel@^4.3.2: "@babel/helper-module-imports" "^7.0.0" rollup-pluginutils "^2.3.0" -rollup-plugin-commonjs@^9.2.1: - version "9.2.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.2.1.tgz#bb151ca8fa23600c7a03e25f9f0a45b1ee922dac" - integrity sha512-X0A/Cp/t+zbONFinBhiTZrfuUaVwRIp4xsbKq/2ohA2CDULa/7ONSJTelqxon+Vds2R2t2qJTqJQucKUC8GKkw== +rollup-plugin-commonjs@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.2.2.tgz#4959f3ff0d9706c132e5247b47ab385f11d9aae6" + integrity sha512-FXBgY+IvZIV2AZVT/0CPMsP+b1dKkxE+F6SHI9wddqKDV9KCGDA2cV5e/VsJLwXKFgrtliqMr7Rq3QBfPiJ8Xg== dependencies: - estree-walker "^0.5.2" - magic-string "^0.25.1" + estree-walker "^0.6.0" + magic-string "^0.25.2" resolve "^1.10.0" - rollup-pluginutils "^2.3.3" + rollup-pluginutils "^2.5.0" -rollup-plugin-json@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-json/-/rollup-plugin-json-3.1.0.tgz#7c1daf60c46bc21021ea016bd00863561a03321b" - integrity sha512-BlYk5VspvGpjz7lAwArVzBXR60JK+4EKtPkCHouAWg39obk9S61hZYJDBfMK+oitPdoe11i69TlxKlMQNFC/Uw== +rollup-plugin-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-json/-/rollup-plugin-json-4.0.0.tgz#a18da0a4b30bf5ca1ee76ddb1422afbb84ae2b9e" + integrity sha512-hgb8N7Cgfw5SZAkb3jf0QXii6QX/FOkiIq2M7BAQIEydjHvTyxXHQiIzZaTFgx1GK0cRCHOCBHIyEkkLdWKxow== dependencies: - rollup-pluginutils "^2.3.1" + rollup-pluginutils "^2.5.0" rollup-plugin-node-resolve@^4.0.1: version "4.0.1" @@ -8901,14 +8975,13 @@ rollup-plugin-node-resolve@^4.0.1: is-module "^1.0.0" resolve "^1.10.0" -rollup-plugin-replace@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-2.1.0.tgz#f9c07a4a89a2f8be912ee54b3f0f68d91e9ed0ae" - integrity sha512-SxrAIgpH/B5/W4SeULgreOemxcpEgKs2gcD42zXw50bhqGWmcnlXneVInQpAqzA/cIly4bJrOpeelmB9p4YXSQ== +rollup-plugin-replace@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-2.1.1.tgz#e49cb8d07d6f91a7bf28b90b66692f2c8c0b9bba" + integrity sha512-IS5ZYBb3px0UfbDCYzKaKxelLd5dbPHhfplEXbymfvGlz9Ok44At4AjTOWe2qEax73bE8+pnMZN9C7PcVpFNlw== dependencies: - magic-string "^0.25.1" - minimatch "^3.0.2" - rollup-pluginutils "^2.0.1" + magic-string "^0.25.2" + rollup-pluginutils "^2.4.1" rollup-plugin-terser@^4.0.4: version "4.0.4" @@ -8920,25 +8993,25 @@ rollup-plugin-terser@^4.0.4: serialize-javascript "^1.6.1" terser "^3.14.1" -rollup-plugin-typescript@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-typescript/-/rollup-plugin-typescript-1.0.0.tgz#f7bcefe576011d9d2ebcc725b542ef35fb5005d4" - integrity sha512-d2KDNMJXgaaB//dDGd/YmyMiopt1Pz965Iu3zmEoL08YqNcKRBz26uHqqc47rFGfrJV5kFqifC9IYlh6dpSCLg== +rollup-plugin-typescript@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-typescript/-/rollup-plugin-typescript-1.0.1.tgz#86565033b714c3d1f3aba510aad3dc519f7091e9" + integrity sha512-rwJDNn9jv/NsKZuyBb/h0jsclP4CJ58qbvZt2Q9zDIGILF2LtdtvCqMOL+Gq9IVq5MTrTlHZNrn8h7VjQgd8tw== dependencies: - resolve "^1.8.1" - rollup-pluginutils "^2.3.1" + resolve "^1.10.0" + rollup-pluginutils "^2.5.0" -rollup-plugin-visualizer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-1.0.2.tgz#1b389c2093fff8b68cdf1c37b58fcef645cf3b5b" - integrity sha512-sbHGPI2KLqCIxKZxqL5io3xLkKWFdLdsYr58fkNh8p3TAoyuHbC89wvrfc+WtBwm/KQltQzepH6NzrzAwMdWXQ== +rollup-plugin-visualizer@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-1.1.0.tgz#56b7c340a66acfae4ae6476fddca5754907655c6" + integrity sha512-K+TbgK3ds5gpIH5dgM39qD+txbWL/gRbws4Kq0b/Bg2IZpMlB7YwAgo97KmBvWN5tCQdFhsBVtzSQ0NzL9uKZg== dependencies: mkdirp "^0.5.1" opn "^5.4.0" source-map "^0.7.3" typeface-oswald "0.0.54" -rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.3.0, rollup-pluginutils@^2.3.1, rollup-pluginutils@^2.3.3: +rollup-pluginutils@^2.3.0: version "2.3.3" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz#3aad9b1eb3e7fe8262820818840bf091e5ae6794" integrity sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA== @@ -8946,13 +9019,21 @@ rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.3.0, rollup-pluginutils@^2.3.1, estree-walker "^0.5.2" micromatch "^2.3.11" -rollup@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.4.0.tgz#fdc965b4ea7948e0b8e1a9051067dce1a61b3a24" - integrity sha512-E5HP4rgvAqkXQNYfNHgCDnX5HDHwAPDLUVSNp8iTmT49vY34G0DxEfhjPWnqnFi7v0vQtDGkKl2hvLfmsMvmcA== +rollup-pluginutils@^2.4.1, rollup-pluginutils@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.5.0.tgz#23be0f05ac3972ea7b08fc7870cb91fde5b23a09" + integrity sha512-9Muh1H+XB5f5ONmKMayUoTYR1EZwHbwJJ9oZLrKT5yuTf/RLIQ5mYIGsrERquVucJmjmaAW0Y7+6Qo1Ep+5w3Q== + dependencies: + estree-walker "^0.6.0" + micromatch "^3.1.10" + +rollup@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.7.3.tgz#cade518b92e23efa72026e264e29d9a56cbf8eb9" + integrity sha512-U3/HaZujvGofNZQldfIknKoaNFNRS+j8/uCS/jSy3FrxF9t0FBsgZW4+VXLHG7l1daTgE6+jEy0Dv7cVCB2NPg== dependencies: "@types/estree" "0.0.39" - "@types/node" "^11.9.5" + "@types/node" "^11.11.6" acorn "^6.1.1" rsvp@^3.3.3: @@ -9145,7 +9226,7 @@ semver-regex@^2.0.0: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== -"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@5.6.0, "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: +"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@5.6.0, "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== @@ -10235,6 +10316,11 @@ unicode-match-property-value-ecmascript@^1.0.2: resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" integrity sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ== +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-property-aliases-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0"