Browse Source

typescript-eslint 2 (#1568)

* Setup for typescript-eslint 2

* Cleanup linting

* Bump ui version

* Exclude build folders
Jaco Greeff 5 years ago
parent
commit
ec8be875df
42 changed files with 283 additions and 251 deletions
  1. 8 0
      .eslintrc.js
  2. 8 8
      package.json
  3. 1 1
      packages/app-accounts/src/Vanity/index.tsx
  4. 1 1
      packages/app-accounts/src/modals/Transfer.tsx
  5. 1 1
      packages/app-accounts/src/vanitygen/cli.ts
  6. 1 1
      packages/app-address-book/src/modals/Create.tsx
  7. 1 1
      packages/app-contracts/package.json
  8. 1 1
      packages/app-contracts/src/Codes/Upload.tsx
  9. 1 1
      packages/app-contracts/src/Contracts/Add.tsx
  10. 2 2
      packages/app-contracts/src/Deploy.tsx
  11. 2 3
      packages/app-contracts/src/Modal.tsx
  12. 2 3
      packages/app-contracts/src/store.ts
  13. 2 2
      packages/app-dashboard/src/index.tsx
  14. 6 8
      packages/app-explorer/src/Forks.tsx
  15. 2 1
      packages/app-explorer/src/NodeInfo/index.tsx
  16. 1 1
      packages/app-settings/src/Developer.tsx
  17. 1 1
      packages/app-settings/src/util.tsx
  18. 1 1
      packages/apps/package.json
  19. 1 1
      packages/apps/src/Content/index.tsx
  20. 5 5
      packages/apps/src/overlays/Connecting.tsx
  21. 2 2
      packages/react-api/package.json
  22. 1 1
      packages/react-api/src/Api.tsx
  23. 1 1
      packages/react-api/src/util/isEqual.ts
  24. 1 2
      packages/react-api/src/with/api.tsx
  25. 3 2
      packages/react-api/src/with/call.tsx
  26. 4 4
      packages/react-components/package.json
  27. 1 0
      packages/react-components/src/AddressCard.tsx
  28. 1 1
      packages/react-components/src/Button/Button.tsx
  29. 0 1
      packages/react-components/src/Collection.tsx
  30. 1 1
      packages/react-components/src/Editor.tsx
  31. 2 2
      packages/react-components/src/InputAddress.tsx
  32. 2 2
      packages/react-components/src/InputFile.tsx
  33. 2 1
      packages/react-components/src/InputNumber.tsx
  34. 1 1
      packages/react-components/src/Row.tsx
  35. 1 1
      packages/react-components/src/Status/Queue.tsx
  36. 1 1
      packages/react-components/src/Status/types.ts
  37. 1 1
      packages/react-params/src/Param/KeyValue.tsx
  38. 1 1
      packages/react-params/src/valueToText.tsx
  39. 1 1
      packages/react-query/src/Elapsed.tsx
  40. 5 1
      packages/react-signer/src/Modal.tsx
  41. 22 0
      tsconfig.eslint.json
  42. 181 181
      yarn.lock

+ 8 - 0
.eslintrc.js

@@ -3,6 +3,14 @@ const base = require('@polkadot/dev-react/config/eslint');
 // add override for any (a metric ton of them, initial conversion)
 module.exports = {
   ...base,
+  parserOptions: {
+    ...base.parserOptions,
+    createDefaultProgram: false,
+    extraFileExtensions: ['*.d.ts'],
+    project: [
+      './tsconfig.eslint.json'
+    ]
+  },
   rules: {
     ...base.rules,
     '@typescript-eslint/no-explicit-any': 'off'

+ 8 - 8
package.json

@@ -10,12 +10,12 @@
     "packages/*"
   ],
   "resolutions": {
-    "@polkadot/api": "^0.91.0-beta.9",
-    "@polkadot/api-contract": "^0.91.0-beta.9",
-    "@polkadot/keyring": "^1.1.1",
-    "@polkadot/types": "^0.91.0-beta.9",
-    "@polkadot/util": "^1.1.1",
-    "@polkadot/util-crypto": "^1.1.1",
+    "@polkadot/api": "^0.91.0-beta.10",
+    "@polkadot/api-contract": "^0.91.0-beta.10",
+    "@polkadot/keyring": "^1.2.0-beta.5",
+    "@polkadot/types": "^0.91.0-beta.10",
+    "@polkadot/util": "^1.2.0-beta.5",
+    "@polkadot/util-crypto": "^1.2.0-beta.5",
     "@types/styled-components": "4.1.8",
     "babel-core": "^7.0.0-bridge.0",
     "typescript": "^3.6.2"
@@ -34,8 +34,8 @@
   "devDependencies": {
     "@babel/core": "^7.5.5",
     "@babel/runtime": "^7.5.5",
-    "@polkadot/dev-react": "^0.31.0-beta.5",
-    "@polkadot/ts": "^0.1.69",
+    "@polkadot/dev-react": "^0.31.0-beta.6",
+    "@polkadot/ts": "^0.1.70",
     "autoprefixer": "^9.6.1",
     "empty": "^0.10.1",
     "gh-pages": "^2.1.1",

+ 1 - 1
packages/app-accounts/src/Vanity/index.tsx

@@ -60,7 +60,7 @@ class VanityApp extends TxComponent<Props, State> {
     withHex: true
   };
 
-  private _isActive: boolean = false;
+  private _isActive = false;
 
   public componentWillUnmount (): void {
     this._isActive = false;

+ 1 - 1
packages/app-accounts/src/modals/Transfer.tsx

@@ -65,7 +65,7 @@ class Transfer extends React.PureComponent<Props, State> {
       (balances_fees !== prevProps.balances_fees) || (prevState.senderId !== senderId) ||
       hasLengthChanged
     ) {
-      this.setMaxBalance().catch(console.error);
+      this.setMaxBalance().catch((error: Error): void => console.error(error));
     }
   }
 

+ 1 - 1
packages/app-accounts/src/vanitygen/cli.ts

@@ -130,4 +130,4 @@ cryptoWaitReady()
       }
     }
   })
-  .catch(console.error);
+  .catch((error: Error): void => console.error(error));

+ 1 - 1
packages/app-address-book/src/modals/Create.tsx

@@ -120,7 +120,7 @@ class Create extends React.PureComponent<Props, State> {
     };
   }
 
-  private nextState (newState: Partial<State>, allowEdit: boolean = false): void {
+  private nextState (newState: Partial<State>, allowEdit = false): void {
     this.setState(
       (prevState: State): State => {
         let { address = prevState.address, name = prevState.name, tags = prevState.tags } = newState;

+ 1 - 1
packages/app-contracts/package.json

@@ -11,7 +11,7 @@
   "license": "Apache-2.0",
   "dependencies": {
     "@babel/runtime": "^7.5.5",
-    "@polkadot/api-contract": "^0.91.0-beta.9",
+    "@polkadot/api-contract": "^0.91.0-beta.10",
     "@polkadot/react-components": "^0.35.0-beta.21"
   }
 }

+ 1 - 1
packages/app-contracts/src/Codes/Upload.tsx

@@ -4,10 +4,10 @@
 
 import { Hash } from '@polkadot/types/interfaces';
 import { ApiProps } from '@polkadot/react-api/types';
-import { SubmittableResult } from '@polkadot/api/SubmittableExtrinsic';
 
 import BN from 'bn.js';
 import React from 'react';
+import { SubmittableResult } from '@polkadot/api';
 import { withApi, withMulti } from '@polkadot/react-api';
 import { Button, InputFile, TxButton } from '@polkadot/react-components';
 import { compactAddLength } from '@polkadot/util';

+ 1 - 1
packages/app-contracts/src/Contracts/Add.tsx

@@ -96,7 +96,7 @@ class Add extends ContractModal<Props, State> {
     this.setState({ isAddressValid });
   }
 
-  private onAdd = async (): Promise<void> => {
+  private onAdd = (): void => {
     const { api } = this.props;
     const status: Partial<ActionStatus> = { action: 'create' };
     const { address, abi, name, tags } = this.state;

+ 2 - 2
packages/app-contracts/src/Deploy.tsx

@@ -5,13 +5,13 @@
 import { AccountId } from '@polkadot/types/interfaces';
 import { TypeDef } from '@polkadot/types/types';
 import { ApiProps } from '@polkadot/react-api/types';
-import { SubmittableResult } from '@polkadot/api/SubmittableExtrinsic';
 import { I18nProps } from '@polkadot/react-components/types';
 
 import BN from 'bn.js';
 import React from 'react';
 import { RouteComponentProps } from 'react-router';
 import { withRouter } from 'react-router-dom';
+import { SubmittableResult } from '@polkadot/api';
 import { Abi } from '@polkadot/api-contract';
 import { withApi, withMulti } from '@polkadot/react-api';
 import keyring from '@polkadot/ui-keyring';
@@ -246,7 +246,7 @@ class Deploy extends ContractModal<Props, State> {
     this.setState({ params });
   }
 
-  private onSuccess = async (result: SubmittableResult): Promise<void> => {
+  private onSuccess = (result: SubmittableResult): void => {
     const { api, history } = this.props;
 
     const section = api.tx.contracts ? 'contracts' : 'contract';

+ 2 - 3
packages/app-contracts/src/Modal.tsx

@@ -33,7 +33,6 @@ export interface ContractModalState {
 
 class ContractModal<P extends ContractModalProps, S extends ContractModalState> extends TxComponent<P, S> {
   // horrible :(
-  // eslint-disable-next-line @typescript-eslint/no-object-literal-type-assertion
   protected defaultState: S = {
     accountId: null,
     gasLimit: new BN(0),
@@ -72,7 +71,7 @@ class ContractModal<P extends ContractModalProps, S extends ContractModalState>
     );
   }
 
-  protected headerText: string = '';
+  protected headerText = '';
 
   protected renderContent: () => React.ReactNode | null = (): React.ReactNode => null;
 
@@ -204,7 +203,7 @@ class ContractModal<P extends ContractModalProps, S extends ContractModalState>
     }
   }
 
-  protected onAddAbi = (abi: string | null | undefined, contractAbi: Abi | null = null, isAbiSupplied: boolean = false): void => {
+  protected onAddAbi = (abi: string | null | undefined, contractAbi: Abi | null = null, isAbiSupplied = false): void => {
     this.setState({ abi, contractAbi, isAbiSupplied, isAbiValid: !!abi });
   }
 

+ 2 - 3
packages/app-contracts/src/store.ts

@@ -13,8 +13,6 @@ import { api } from '@polkadot/react-api';
 
 const KEY_CODE = 'code:';
 
-const codeRegex = new RegExp(`^${KEY_CODE}`, '');
-
 class Store extends EventEmitter {
   private allCode: Record<string, CodeStored> = {};
 
@@ -30,6 +28,7 @@ class Store extends EventEmitter {
     return this.allCode[codeHash];
   }
 
+  // eslint-disable-next-line @typescript-eslint/require-await
   public async saveCode (codeHash: string | Hash, partial: Partial<CodeJson>): Promise<void> {
     const hex = (typeof codeHash === 'string' ? createType('Hash', codeHash) : codeHash).toHex();
 
@@ -64,7 +63,7 @@ class Store extends EventEmitter {
           return;
         }
 
-        if (codeRegex.test(key)) {
+        if (key.startsWith(KEY_CODE)) {
           this.addCode(json);
         }
       });

+ 2 - 2
packages/app-dashboard/src/index.tsx

@@ -44,7 +44,7 @@ class App extends React.PureComponent<Props, State> {
     );
   }
 
-  private renderEntry (route: Route): React.ReactNode {
+  private renderEntry = (route: Route): React.ReactNode => {
     return (
       <Entry
         key={route.name}
@@ -57,7 +57,7 @@ class App extends React.PureComponent<Props, State> {
   // the entries of an equal width. So here we add a non-content spacers at the end that just
   // ensures flex has enough items to render something usable to the user. Since we don't
   // quite know how many items per row, we just render a bunch, n === routes.length
-  private renderSpacer (route: Route, index: number): React.ReactNode {
+  private renderSpacer = (route: Route, index: number): React.ReactNode => {
     return (
       <Spacer key={index} />
     );

+ 6 - 8
packages/app-explorer/src/Forks.tsx

@@ -63,7 +63,7 @@ class Forks extends React.PureComponent<Props, State> {
 
   private _headers: Map<string, LinkHeader> = new Map();
 
-  private _firstNum: string = '';
+  private _firstNum = '';
 
   private _subFinHead: UnsubFn | null = null;
 
@@ -102,8 +102,7 @@ class Forks extends React.PureComponent<Props, State> {
     if (!this._headers.has(hash)) {
       // if this is the first, add to the root entry
       if (this._firstNum === bn) {
-        // @ts-ignore root will always exist
-        this._children.get('root').push(hash);
+        (this._children.get('root') as any[]).push(hash);
       }
 
       // add to the header map
@@ -111,8 +110,7 @@ class Forks extends React.PureComponent<Props, State> {
 
       // check to see if the children already has a entry
       if (this._children.has(parent)) {
-        // @ts-ignore, we just checked for existence above
-        this._children.get(parent).push(hash);
+        (this._children.get(parent) as any[]).push(hash);
       } else {
         this._children.set(parent, [hash]);
       }
@@ -288,7 +286,7 @@ class Forks extends React.PureComponent<Props, State> {
   }
 
   // fills in a header based on the supplied data
-  private createHdr (bn: string, hash: string, parent: string, isEmpty: boolean = false): LinkHeader {
+  private createHdr (bn: string, hash: string, parent: string, isEmpty = false): LinkHeader {
     return { bn, hash, height: 0, isEmpty, isFinalized: false, parent, width: 0 };
   }
 
@@ -351,8 +349,8 @@ class Forks extends React.PureComponent<Props, State> {
     const root = this.createLink();
 
     // add all the root entries first, we iterate from these
-    // @ts-ignore We add the root entry explicitly, it exists as per init
-    this._children.get('root').forEach((hash): void => {
+    // We add the root entry explicitly, it exists as per init
+    (this._children.get('root') as string[]).forEach((hash): void => {
       const hdr = this._headers.get(hash);
 
       // if this fails, well, we have a bigger issue :(

+ 2 - 1
packages/app-explorer/src/NodeInfo/index.tsx

@@ -29,7 +29,7 @@ interface State {
 }
 
 class App extends React.PureComponent<Props, State> {
-  private isActive: boolean = true;
+  private isActive = true;
 
   public state: State = {
     nextRefresh: Date.now()
@@ -79,6 +79,7 @@ class App extends React.PureComponent<Props, State> {
     this.setState({
       info,
       nextRefresh: (Date.now() + POLL_TIMEOUT),
+      // eslint-disable-next-line @typescript-eslint/no-misused-promises
       timerId: window.setTimeout(this.getStatus, POLL_TIMEOUT)
     });
   }

+ 1 - 1
packages/app-settings/src/Developer.tsx

@@ -27,7 +27,7 @@ interface State {
 }
 
 class Developer extends React.PureComponent<Props, State> {
-  private defaultCode: string = '{\n\n}';
+  private defaultCode = '{\n\n}';
 
   public constructor (props: Props) {
     super(props);

+ 1 - 1
packages/app-settings/src/util.tsx

@@ -9,7 +9,7 @@ import React from 'react';
 import { ChainImg } from '@polkadot/react-components';
 import uiSettings from '@polkadot/ui-settings';
 
-export function createOption ({ info, text, value }: SetOption, overrides: string[] = [], override: string = 'empty'): Option {
+export function createOption ({ info, text, value }: SetOption, overrides: string[] = [], override = 'empty'): Option {
   return {
     text: (
       <div className='ui--Dropdown-item'>

+ 1 - 1
packages/apps/package.json

@@ -15,7 +15,7 @@
     "@babel/runtime": "^7.5.5",
     "@polkadot/react-components": "^0.35.0-beta.21",
     "@polkadot/react-signer": "^0.35.0-beta.21",
-    "@polkadot/ui-assets": "^0.43.0-beta.4",
+    "@polkadot/ui-assets": "^0.43.0-beta.6",
     "query-string": "^6.8.2"
   }
 }

+ 1 - 1
packages/apps/src/Content/index.tsx

@@ -53,7 +53,7 @@ class Content extends React.Component<Props> {
     const { isApiConnected, isApiReady, location, t } = this.props;
     const app = location.pathname.slice(1) || '';
     const { Component, display: { needsApi }, name } = routing.routes.find((route): boolean =>
-      !!(route && app.indexOf(route.name) === 0)
+      !!(route && app.startsWith(route.name))
     ) || unknown;
 
     if (needsApi && (!isApiReady || !isApiConnected)) {

+ 5 - 5
packages/apps/src/overlays/Connecting.tsx

@@ -14,8 +14,8 @@ import translate from '../translate';
 import BaseOverlay from './Base';
 
 type Props = I18nProps & ApiProps;
-// @ts-ignore
-const isFirefox = typeof InstallTrigger !== 'undefined';
+
+const isFirefox = typeof (window as any).InstallTrigger !== 'undefined';
 
 class Connecting extends React.PureComponent<Props> {
   public render (): React.ReactNode {
@@ -47,9 +47,9 @@ class Connecting extends React.PureComponent<Props> {
     }
 
     const wsUrl = settings.apiUrl;
-    const isWs = wsUrl.indexOf('ws://') === 0;
-    const isWsRemote = wsUrl.indexOf('127.0.0.1') === -1;
-    const isHttps = window.location.protocol.indexOf('https:') === 0;
+    const isWs = wsUrl.startsWith('ws://');
+    const isWsRemote = wsUrl.includes('127.0.0.1');
+    const isHttps = window.location.protocol.startsWith('https:');
 
     return (
       <BaseOverlay

+ 2 - 2
packages/react-api/package.json

@@ -31,8 +31,8 @@
   "homepage": "https://github.com/polkadot-js/ui/tree/master/packages/ui-reactive#readme",
   "dependencies": {
     "@babel/runtime": "^7.5.5",
-    "@polkadot/api": "^0.91.0-beta.9",
-    "@polkadot/extension-dapp": "^0.9.0-beta.2",
+    "@polkadot/api": "^0.91.0-beta.10",
+    "@polkadot/extension-dapp": "^0.10.0-beta.0",
     "rxjs-compat": "^6.4.0"
   }
 }

+ 1 - 1
packages/react-api/src/Api.tsx

@@ -84,7 +84,7 @@ export default class Api extends React.PureComponent<Props, State> {
 
     injectedPromise
       .then((): void => this.setState({ isWaitingInjected: false }))
-      .catch(console.error);
+      .catch((error: Error) => console.error(error));
   }
 
   private subscribeEvents (): void {

+ 1 - 1
packages/react-api/src/util/isEqual.ts

@@ -20,7 +20,7 @@ function flatten (key: string | null, value: any): any {
   return value;
 }
 
-export default function isEqual <T> (a?: T, b?: T, debug: boolean = false): boolean {
+export default function isEqual <T> (a?: T, b?: T, debug = false): boolean {
   const jsonA = JSON.stringify({ test: a }, flatten);
   const jsonB = JSON.stringify({ test: b }, flatten);
 

+ 1 - 2
packages/react-api/src/with/api.tsx

@@ -21,10 +21,9 @@ export default function withApi <P extends ApiProps> (Inner: React.ComponentType
             assert(apiProps && apiProps.api, 'Application root must be wrapped inside \'react-api/Api\' to provide API context');
 
             return (
-              // @ts-ignore Something here with the props are going wonky
               <Inner
                 {...defaultProps}
-                {...apiProps}
+                {...(apiProps as any)}
                 {...this.props}
                 ref={this.component}
               />

+ 3 - 2
packages/react-api/src/with/call.tsx

@@ -53,11 +53,11 @@ export default function withCall<P extends ApiProps> (
 
       private destroy?: () => void;
 
-      private isActive: boolean = false;
+      private isActive = false;
 
       private propName: string;
 
-      private timerId: number = -1;
+      private timerId = -1;
 
       public constructor (props: P) {
         super(props);
@@ -244,6 +244,7 @@ export default function withCall<P extends ApiProps> (
         }
       }
 
+      // eslint-disable-next-line @typescript-eslint/require-await
       private async unsubscribe (): Promise<void> {
         if (this.destroy) {
           this.destroy();

+ 4 - 4
packages/react-components/package.json

@@ -11,12 +11,12 @@
   "license": "Apache-2.0",
   "dependencies": {
     "@babel/runtime": "^7.5.5",
-    "@polkadot/keyring": "^1.1.1",
+    "@polkadot/keyring": "^1.2.0-beta.5",
     "@polkadot/react-api": "^0.35.0-beta.21",
-    "@polkadot/react-identicon": "^0.43.0-beta.4",
+    "@polkadot/react-identicon": "^0.43.0-beta.6",
     "@polkadot/react-query": "^0.35.0-beta.21",
-    "@polkadot/ui-keyring": "^0.43.0-beta.4",
-    "@polkadot/ui-settings": "^0.43.0-beta.4",
+    "@polkadot/ui-keyring": "^0.43.0-beta.6",
+    "@polkadot/ui-settings": "^0.43.0-beta.6",
     "@types/chart.js": "^2.8.4",
     "@types/i18next": "^13.0.0",
     "@types/react-copy-to-clipboard": "^4.2.6",

+ 1 - 0
packages/react-components/src/AddressCard.tsx

@@ -3,6 +3,7 @@
 // of the Apache-2.0 license. See the LICENSE file for details.
 // import { I18nProps } from '@polkadot/react-components/types';
 
+// eslint-disable-next-line @typescript-eslint/ban-ts-ignore
 // @ts-ignore This line needed for the styled export... don't ask why
 // eslint-disable-next-line @typescript-eslint/no-unused-vars
 import BN from 'bn.js';

+ 1 - 1
packages/react-components/src/Button/Button.tsx

@@ -14,7 +14,7 @@ import Tooltip from '../Tooltip';
 let idCounter = 0;
 
 export default class Button extends React.PureComponent<ButtonProps> {
-  private id: string = `button-${++idCounter}`;
+  private id = `button-${++idCounter}`;
 
   public render (): React.ReactNode {
     const { children, className, floated, icon, isBasic = false, isCircular = false, isDisabled = false, isLoading = false, isNegative = false, isPositive = false, isPrimary = false, label, labelIcon, labelPosition, onClick, size, style, tabIndex, tooltip } = this.props;

+ 0 - 1
packages/react-components/src/Collection.tsx

@@ -44,7 +44,6 @@ export default class Collection<P extends CollectionProps, S extends CollectionS
   public constructor (props: P) {
     super(props);
 
-    // eslint-disable-next-line @typescript-eslint/no-object-literal-type-assertion
     this.state = {
       isEmpty: Collection.isEmpty(props.children)
     } as S;

+ 1 - 1
packages/react-components/src/Editor.tsx

@@ -35,7 +35,7 @@ interface Props extends BareProps {
  * ```
  */
 class Editor extends React.Component<Props> {
-  private id: string = `flask-${Date.now()}`;
+  private id = `flask-${Date.now()}`;
 
   private editor: any;
 

+ 2 - 2
packages/react-components/src/InputAddress.tsx

@@ -251,8 +251,8 @@ class InputAddress extends React.PureComponent<Props, State> {
     const queryLower = query.toLowerCase();
     const matches = filteredOptions.filter((item): boolean =>
       item.value !== null && (
-        item.name.toLowerCase().indexOf(queryLower) !== -1 ||
-        item.value.toLowerCase().indexOf(queryLower) !== -1
+        item.name.toLowerCase().includes(queryLower) ||
+        item.value.toLowerCase().includes(queryLower)
       )
     );
 

+ 2 - 2
packages/react-components/src/InputFile.tsx

@@ -107,8 +107,8 @@ class InputFile extends React.PureComponent<Props, State> {
         // ignore
       };
 
-      // @ts-ignore ummm... events are not properly specified here?
-      reader.onload = ({ target: { result } }: LoadEvent): void => {
+      // ummm... events are not properly specified here?
+      (reader as any).onload = ({ target: { result } }: LoadEvent): void => {
         const data = new Uint8Array(result);
         const name = file.name;
 

+ 2 - 1
packages/react-components/src/InputNumber.tsx

@@ -74,7 +74,7 @@ class InputNumber extends React.PureComponent<Props, State> {
     };
   }
 
-  public static units: string = 'Unit';
+  public static units = 'Unit';
 
   public static setUnit (units: string = InputNumber.units): void {
     InputNumber.units = units;
@@ -286,6 +286,7 @@ class InputNumber extends React.PureComponent<Props, State> {
   private inputValueToBn = (value: string, siUnit?: string): BN => {
     const [siPower, basePower, siUnitPower] = this.getSiPowers(siUnit);
 
+    // eslint-disable-next-line @typescript-eslint/prefer-regexp-exec
     const isDecimalValue = value.match(/^(\d+)\.(\d+)$/);
 
     if (isDecimalValue) {

+ 1 - 1
packages/react-components/src/Row.tsx

@@ -270,7 +270,7 @@ class Row<P extends RowProps, S extends RowState> extends React.PureComponent<P,
     );
   }
 
-  protected renderName (withCopy: boolean = false): React.ReactNode {
+  protected renderName (withCopy = false): React.ReactNode {
     const { defaultName, isEditable } = this.props;
     const { address, isEditingName, name } = this.state;
     const withName = name !== defaultName;

+ 1 - 1
packages/react-components/src/Status/Queue.tsx

@@ -12,7 +12,7 @@ import jsonrpc from '@polkadot/jsonrpc';
 import { createType } from '@polkadot/types';
 
 import { QueueProvider } from './Context';
-import { SubmittableResult } from '@polkadot/api/SubmittableExtrinsic';
+import { SubmittableResult } from '@polkadot/api';
 import { SubmittableExtrinsic } from '@polkadot/api/promise/types';
 
 export interface Props extends BareProps {

+ 1 - 1
packages/react-components/src/Status/types.ts

@@ -2,7 +2,7 @@
 // This software may be modified and distributed under the terms
 // of the Apache-2.0 license. See the LICENSE file for details.
 
-import { SubmittableResult } from '@polkadot/api/SubmittableExtrinsic';
+import { SubmittableResult } from '@polkadot/api';
 import { SubmittableExtrinsic } from '@polkadot/api/promise/types';
 import { SignerPayload, SignerResult } from '@polkadot/api/types';
 import { RpcMethod } from '@polkadot/jsonrpc/types';

+ 1 - 1
packages/react-params/src/Param/KeyValue.tsx

@@ -66,7 +66,7 @@ export default class KeyValue extends React.PureComponent<Props, State> {
     );
   }
 
-  public static createParam (hex: string, length: number = -1): StateParam {
+  public static createParam (hex: string, length = -1): StateParam {
     let u8a;
 
     try {

+ 1 - 1
packages/react-params/src/valueToText.tsx

@@ -28,7 +28,7 @@ function div ({ key, className }: DivProps, ...values: React.ReactNode[]): React
 }
 
 // eslint-disable-next-line @typescript-eslint/no-unused-vars
-function valueToText (type: string, value: any, swallowError: boolean = true, contentShorten: boolean = true): React.ReactNode {
+function valueToText (type: string, value: any, swallowError = true, contentShorten = true): React.ReactNode {
   if (isNull(value) || isUndefined(value)) {
     return div({}, '<unknown>');
   }

+ 1 - 1
packages/react-query/src/Elapsed.tsx

@@ -60,7 +60,7 @@ export default class Elapsed extends React.PureComponent<Props, State> {
     );
   }
 
-  private getDisplayValue (now: number = 0, value: BN | Date | number = 0): string {
+  private getDisplayValue (now = 0, value: BN | Date | number = 0): string {
     const tsValue = (
       value && (value as Date).getTime
         ? (value as Date).getTime()

+ 5 - 1
packages/react-signer/src/Modal.tsx

@@ -2,7 +2,6 @@
 // This software may be modified and distributed under the terms
 // of the Apache-2.0 license. See the LICENSE file for details.
 
-import { SubmittableResult } from '@polkadot/api/SubmittableExtrinsic';
 import { SignerOptions, SignerPayload } from '@polkadot/api/types';
 import { SubmittableExtrinsic } from '@polkadot/api/promise/types';
 import { ApiProps } from '@polkadot/react-api/types';
@@ -14,6 +13,7 @@ import { QueueTx, QueueTxMessageSetStatus, QueueTxResult, QueueTxStatus } from '
 
 import BN from 'bn.js';
 import React from 'react';
+import { SubmittableResult } from '@polkadot/api';
 import { web3FromSource } from '@polkadot/extension-dapp';
 import { createType } from '@polkadot/types';
 import { Button, InputBalance, Modal } from '@polkadot/react-components';
@@ -335,7 +335,9 @@ class Signer extends React.PureComponent<Props, State> {
     queueSetTxStatus(id, 'sending');
 
     return isUnsigned
+      // eslint-disable-next-line @typescript-eslint/unbound-method
       ? this.makeExtrinsicCall(submittable, queueTx, submittable.send)
+      // eslint-disable-next-line @typescript-eslint/unbound-method
       : this.makeExtrinsicCall(submittable, queueTx, submittable.signAndSend, keyring.getPair(accountId as string));
   }
 
@@ -395,6 +397,7 @@ class Signer extends React.PureComponent<Props, State> {
     }
 
     try {
+      // eslint-disable-next-line @typescript-eslint/require-await
       const unsubscribe = await extrinsicCall.apply(extrinsic, [...params, async (result: SubmittableResult): Promise<void> => {
         if (!result || !result.status) {
           return;
@@ -435,6 +438,7 @@ class Signer extends React.PureComponent<Props, State> {
     }
   }
 
+  // eslint-disable-next-line @typescript-eslint/require-await
   private async makeExtrinsicSignature (payload: SignerPayload, { id, signerCb }: QueueTx, pair: KeyringPair): Promise<void> {
     console.log('makeExtrinsicSignature: payload ::', JSON.stringify(payload));
 

+ 22 - 0
tsconfig.eslint.json

@@ -0,0 +1,22 @@
+{
+  "extends": "./tsconfig.json",
+  "exclude": [
+    "build",
+    "packages/*/build"
+  ],
+  "include": [
+    "packages/**/*.d.ts",
+    "packages/**/*.ts",
+    "packages/**/*.tsx",
+    "packages/**/*.js",
+    "packages/**/*.spec.ts",
+    "packages/**/*.spec.js",
+    "scripts/*.js",
+    "test/*.js",
+    "*.js"
+  ],
+  "compilerOptions": {
+    "allowJs": true,
+    "checkJs": true
+  }
+}

+ 181 - 181
yarn.lock

@@ -1930,55 +1930,55 @@
     universal-user-agent "^3.0.0"
     url-template "^2.0.8"
 
-"@polkadot/api-contract@^0.91.0-beta.9":
-  version "0.91.0-beta.9"
-  resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-0.91.0-beta.9.tgz#55b0ac8c518ceed20598a6f5d0146957ddafc014"
-  integrity sha512-1YqGoPGbdz1wZ5EtRhhmpXfYZrZGwOB95LuDEY9Hs7p/2cd0oXNjDZHdl5lHHVDBIK6e0wn3SrZZBV/uUov0NQ==
+"@polkadot/api-contract@^0.91.0-beta.10":
+  version "0.91.0-beta.10"
+  resolved "https://registry.yarnpkg.com/@polkadot/api-contract/-/api-contract-0.91.0-beta.10.tgz#3fe213ad7c2ff8ed2ff7106dd0fa9e45469b575d"
+  integrity sha512-fjOxEZnL96bQ88V2q0gKICvTBDdQoFQ0oTVziifMFmEmZr5tmR8yPsAulTkfvfg/zgiOV8w8JfdDKUrdVSpO6A==
   dependencies:
     "@babel/runtime" "^7.5.5"
-    "@polkadot/types" "^0.91.0-beta.9"
+    "@polkadot/types" "^0.91.0-beta.10"
 
-"@polkadot/api-derive@^0.91.0-beta.9":
-  version "0.91.0-beta.9"
-  resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-0.91.0-beta.9.tgz#00038df9faa04646100ae25492c0b8ba6ad788cd"
-  integrity sha512-+rQy3JBRq7fymJlQz+42PJTfwiGUqlyxBP4Ee7+U9B1pUYfQDa8MW1qJn1rad72BOaQ3hPevkfJbHDVYxhv6bA==
+"@polkadot/api-derive@^0.91.0-beta.10":
+  version "0.91.0-beta.10"
+  resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-0.91.0-beta.10.tgz#cd38daa44e06c54567f63a94170cd72b0a9ce1a8"
+  integrity sha512-UDwitZmchevkP0MW+eKnSfaAMwet5wMtQhdcNvS6qXTLw+61lwoIaXcF9zaHKlLSuizlL+hIrjIir+QADjMAfQ==
   dependencies:
     "@babel/runtime" "^7.5.5"
-    "@polkadot/api" "^0.91.0-beta.9"
-    "@polkadot/types" "^0.91.0-beta.9"
+    "@polkadot/api" "^0.91.0-beta.10"
+    "@polkadot/types" "^0.91.0-beta.10"
 
-"@polkadot/api-metadata@^0.91.0-beta.9":
-  version "0.91.0-beta.9"
-  resolved "https://registry.yarnpkg.com/@polkadot/api-metadata/-/api-metadata-0.91.0-beta.9.tgz#19e2160cad15db66878d8bd35ac88159ad761627"
-  integrity sha512-D5Nl4Y2YgBEXh4vD1LkqmhgH4ZWYg6SPYJpglgQ7a5tqGPfGUFWdJw7s5fXG3/7GWDYWpnyZbcL9Kr3AITE8nA==
+"@polkadot/api-metadata@^0.91.0-beta.10":
+  version "0.91.0-beta.10"
+  resolved "https://registry.yarnpkg.com/@polkadot/api-metadata/-/api-metadata-0.91.0-beta.10.tgz#6d571aa02831d49e1207e5c69c38f4d89959f805"
+  integrity sha512-bcCejQ1KgWSvXfLBdQhKf4lCB4hy+SaGkyVv8JdziroPoA5iivoh76a4ZQSicTSrwbszM9Hnvh6Lw5yzNtX64w==
   dependencies:
     "@babel/runtime" "^7.5.5"
-    "@polkadot/types" "^0.91.0-beta.9"
+    "@polkadot/types" "^0.91.0-beta.10"
     "@polkadot/util" "^1.1.1"
     "@polkadot/util-crypto" "^1.1.1"
 
-"@polkadot/api@^0.91.0-beta.9":
-  version "0.91.0-beta.9"
-  resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-0.91.0-beta.9.tgz#9fc653aa6ea1ecfb41cb256c0803a5bf47e88398"
-  integrity sha512-Izhamvsd/AEB7+EXiV84NcusjjaiEmL7VV7QAzuivzWxhngiTskQzCpNiltYWzeIB2V1HOMmi3nzn60Kmri/ww==
+"@polkadot/api@^0.91.0-beta.10":
+  version "0.91.0-beta.10"
+  resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-0.91.0-beta.10.tgz#e2195a12d37f2000eea5910ff165cf6842979131"
+  integrity sha512-n9AObIi52KtOiclTmzqQGRYD1nGAtX73RVlk/+U6rAAqTEBItZ5tkZ7Acy1UJuWyvS+PQsIUQVbFdmxxHmOKEQ==
   dependencies:
     "@babel/runtime" "^7.5.5"
-    "@polkadot/api-derive" "^0.91.0-beta.9"
-    "@polkadot/api-metadata" "^0.91.0-beta.9"
-    "@polkadot/rpc-core" "^0.91.0-beta.9"
-    "@polkadot/rpc-provider" "^0.91.0-beta.9"
-    "@polkadot/types" "^0.91.0-beta.9"
+    "@polkadot/api-derive" "^0.91.0-beta.10"
+    "@polkadot/api-metadata" "^0.91.0-beta.10"
+    "@polkadot/rpc-core" "^0.91.0-beta.10"
+    "@polkadot/rpc-provider" "^0.91.0-beta.10"
+    "@polkadot/types" "^0.91.0-beta.10"
     "@polkadot/util-crypto" "^1.1.1"
 
-"@polkadot/dev-react@^0.31.0-beta.5":
-  version "0.31.0-beta.5"
-  resolved "https://registry.yarnpkg.com/@polkadot/dev-react/-/dev-react-0.31.0-beta.5.tgz#32f0cc9e69062cda7c98b09863a6efc83f4daf1a"
-  integrity sha512-vrCR2L4kprkLk2TLa6n6+WeAQmVzPsB+9GmPfVrkkf5qqyQ/hMevYtEgGAC/lOj4Y2NHJwwIICDvY6S0mOS1yA==
+"@polkadot/dev-react@^0.31.0-beta.6":
+  version "0.31.0-beta.6"
+  resolved "https://registry.yarnpkg.com/@polkadot/dev-react/-/dev-react-0.31.0-beta.6.tgz#1d071870023b4f968f9ec0aad950ed811f49c30e"
+  integrity sha512-LBA59TB6weeVxA1JjB1S5G25LDEr+/1PsdCfhJz/atnKCEfIrRepigYoWXH4OfhcWTEnxRwinusH825936TlMA==
   dependencies:
     "@babel/core" "^7.5.5"
     "@babel/plugin-syntax-dynamic-import" "^7.2.0"
     "@babel/preset-react" "^7.0.0"
-    "@polkadot/dev" "^0.31.0-beta.5"
+    "@polkadot/dev" "^0.31.0-beta.6"
     "@types/react" "^16.9.2"
     "@types/react-dom" "^16.9.0"
     "@types/styled-components" "4.1.8"
@@ -2006,10 +2006,10 @@
     webpack-plugin-serve "^0.12.1"
     worker-loader "^2.0.0"
 
-"@polkadot/dev@^0.31.0-beta.5":
-  version "0.31.0-beta.5"
-  resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.31.0-beta.5.tgz#8e854d1b4bc876253916c91b141de3be6d19e667"
-  integrity sha512-INo4EzxYJTVzGoPE1FJPR8oc9/Fa7/0t33kipXh7+D0J+qXN5bXylaHUAoi0+edrPzZeeErW+n6i2V8/LDNTPg==
+"@polkadot/dev@^0.31.0-beta.6":
+  version "0.31.0-beta.6"
+  resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.31.0-beta.6.tgz#b2e760bec71fe831a377c9c7cf33a05174476cc8"
+  integrity sha512-+fV1MHWincNHAdUDeLt+PfEwWNceXR85nMjisIAnWcpzr882+dc+mC/8/rQF3LvSJZQvOUMP7ZxrEP8kX8O68Q==
   dependencies:
     "@babel/cli" "^7.5.5"
     "@babel/core" "^7.5.5"
@@ -2024,8 +2024,8 @@
     "@babel/runtime" "^7.5.5"
     "@types/jest" "^24.0.18"
     "@types/node" "^12.7.2"
-    "@typescript-eslint/eslint-plugin" "^1.13.0"
-    "@typescript-eslint/parser" "^1.13.0"
+    "@typescript-eslint/eslint-plugin" "^2.0.0"
+    "@typescript-eslint/parser" "^2.0.0"
     babel-core "^7.0.0-bridge.0"
     babel-jest "^24.9.0"
     babel-plugin-module-resolver "^3.2.0"
@@ -2051,45 +2051,45 @@
     typescript "^3.6.2"
     vuepress "^1.0.3"
 
-"@polkadot/extension-dapp@^0.9.0-beta.2":
-  version "0.9.0-beta.2"
-  resolved "https://registry.yarnpkg.com/@polkadot/extension-dapp/-/extension-dapp-0.9.0-beta.2.tgz#b2cf1eaaf2e765f12208a7d216dc880886c2b89e"
-  integrity sha512-N4DCwPgYR1WdBeBqjywjomF4wM2nPtYWBcdJgellt/kQWt+nDDsut/7AIMxwFBO16DgE14N8VicaV/yiWyTohw==
+"@polkadot/extension-dapp@^0.10.0-beta.0":
+  version "0.10.0-beta.0"
+  resolved "https://registry.yarnpkg.com/@polkadot/extension-dapp/-/extension-dapp-0.10.0-beta.0.tgz#7e96b9aa57ca3769384e9e63b6fa081729b2a748"
+  integrity sha512-0MS5gL0eujNF6+Q7rWOYWcce3QH/a7Z5lE+OdxYC3UXPVzS7LVo/VRe7v3/ucQECFiOvwpJP6ZHNaxDoZfUtMg==
   dependencies:
     "@babel/runtime" "^7.5.5"
-    "@polkadot/extension-inject" "^0.9.0-beta.2"
+    "@polkadot/extension-inject" "^0.10.0-beta.0"
 
-"@polkadot/extension-inject@^0.9.0-beta.2":
-  version "0.9.0-beta.2"
-  resolved "https://registry.yarnpkg.com/@polkadot/extension-inject/-/extension-inject-0.9.0-beta.2.tgz#c16090a9a7396263741b56904c08185f893e7192"
-  integrity sha512-4Ixkby609GX/fKZhNiZgZmf0Pmuw+Hdc0ti+0ucgG6c9lXY96qSXmGz4EnwYrHCvuhRXQI9blEnvXngipxAslg==
+"@polkadot/extension-inject@^0.10.0-beta.0":
+  version "0.10.0-beta.0"
+  resolved "https://registry.yarnpkg.com/@polkadot/extension-inject/-/extension-inject-0.10.0-beta.0.tgz#fc5aa3c8b800516a06c9ab8d4d4d17774868c51f"
+  integrity sha512-2O6EX15W1LxJy3njAMbM1w9J5tHA3w35shYyJxcWTMWGq1Tb9yUa2c/bWjsNK1D5Y3rV228PRMLOb1Besqm2Dg==
   dependencies:
     "@babel/runtime" "^7.5.5"
 
-"@polkadot/jsonrpc@^0.91.0-beta.9":
-  version "0.91.0-beta.9"
-  resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.91.0-beta.9.tgz#073e0628fef065e2694a4450b32a0284ce725991"
-  integrity sha512-B7aHmkH0U4QA/C1sVNiAwLzPVr6WNZTd5hsN5sENXNu5br50DQV9XxZJKsDUB7l++TJZejfoFHE5c73LtGT+VQ==
+"@polkadot/jsonrpc@^0.91.0-beta.10":
+  version "0.91.0-beta.10"
+  resolved "https://registry.yarnpkg.com/@polkadot/jsonrpc/-/jsonrpc-0.91.0-beta.10.tgz#3f7edd71d49c17a0f12fe6dbe646ab14d89f5bcb"
+  integrity sha512-7CZLv3VNlJS/Ed2rT5CCxlz0/wOynFwwrvnoGzpz5hw78GnSugXOFHwE5y5oCbEaZ++qLwnJ8GMTEJiLyPM7Hg==
   dependencies:
     "@babel/runtime" "^7.5.5"
 
-"@polkadot/keyring@^1.1.1":
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-1.1.1.tgz#397f0f3bf154fa64d818765bee721f6b4c64eacb"
-  integrity sha512-1mEXzQoh0jfuDunOZF7YcCRsgaUucYoXz3KoKjVcyGH4oREL6GJvc0nXAIVK/e/6mnANIysUYq4Aa8/MDKQgQw==
+"@polkadot/keyring@^1.2.0-beta.5":
+  version "1.2.0-beta.5"
+  resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-1.2.0-beta.5.tgz#bac4fe845efdf07e40760c6ff700d7e29c3f6cb8"
+  integrity sha512-Pmq0kibuRJVGCqqW+w1Xwgd5UOQHrhyfvRx8XaU79iAZVUBzeJFWF8k+IraRJ5795sZfgECNBcCcm+KYJoaHcw==
   dependencies:
     "@babel/runtime" "^7.5.5"
-    "@polkadot/util" "^1.1.1"
-    "@polkadot/util-crypto" "^1.1.1"
+    "@polkadot/util" "^1.2.0-beta.5"
+    "@polkadot/util-crypto" "^1.2.0-beta.5"
 
-"@polkadot/react-identicon@^0.43.0-beta.4":
-  version "0.43.0-beta.4"
-  resolved "https://registry.yarnpkg.com/@polkadot/react-identicon/-/react-identicon-0.43.0-beta.4.tgz#25304d124016d32cf93fc1c2e0c5b9706f2584ad"
-  integrity sha512-7bda/1iRvtBc/j56FKDAPQWmVpsqmm10Q8ZLK9qEtEXPVskQnRjzG0dQL0+Q9jT3DmON0eyo5D07xvy0+e1N8g==
+"@polkadot/react-identicon@^0.43.0-beta.6":
+  version "0.43.0-beta.6"
+  resolved "https://registry.yarnpkg.com/@polkadot/react-identicon/-/react-identicon-0.43.0-beta.6.tgz#a5fbf7d435e32d5708e15ff85d8afc5a8e98bfff"
+  integrity sha512-OfOPMy7lPW3TEUuYzWxRGSiRzLGvVQZBriydFzSeRUnNmdU+qFSaanBSxC71BNm5aBaqa22wMmffETmycRaRjw==
   dependencies:
     "@babel/runtime" "^7.5.5"
-    "@polkadot/ui-settings" "^0.43.0-beta.4"
-    "@polkadot/ui-shared" "^0.43.0-beta.4"
+    "@polkadot/ui-settings" "^0.43.0-beta.6"
+    "@polkadot/ui-shared" "^0.43.0-beta.6"
     "@types/color" "^3.0.0"
     "@types/react-copy-to-clipboard" "^4.2.6"
     color "^3.1.2"
@@ -2097,25 +2097,25 @@
     react-copy-to-clipboard "^5.0.1"
     styled-components "^4.3.1"
 
-"@polkadot/rpc-core@^0.91.0-beta.9":
-  version "0.91.0-beta.9"
-  resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-0.91.0-beta.9.tgz#04a94db7f19a8a0bd6ec3bdabd5d8af87169f28c"
-  integrity sha512-Jt/lIX2tbHAis4FLsS1/ga8++XkB8gO1Q89yLnDBFRh7PELiqLSMbQWi/JoXzPnB2fi2aib81WH3l4d+ScUQiA==
+"@polkadot/rpc-core@^0.91.0-beta.10":
+  version "0.91.0-beta.10"
+  resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-0.91.0-beta.10.tgz#7ea3f329b32e19c4656f409529776b1dbd519b0a"
+  integrity sha512-9uOrfhRyS79FvZulJi4ZKKRouHmeLAVny7dyU4BgxoRK5hqAp5oHWoqFDlKa5Vl3eX3kJeG3HnOoRp+JBfOxeA==
   dependencies:
     "@babel/runtime" "^7.5.5"
-    "@polkadot/jsonrpc" "^0.91.0-beta.9"
-    "@polkadot/rpc-provider" "^0.91.0-beta.9"
-    "@polkadot/types" "^0.91.0-beta.9"
+    "@polkadot/jsonrpc" "^0.91.0-beta.10"
+    "@polkadot/rpc-provider" "^0.91.0-beta.10"
+    "@polkadot/types" "^0.91.0-beta.10"
     "@polkadot/util" "^1.1.1"
     rxjs "^6.5.2"
 
-"@polkadot/rpc-provider@^0.91.0-beta.9":
-  version "0.91.0-beta.9"
-  resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-0.91.0-beta.9.tgz#f7281669177913061c4ee69a68a8513817f44d29"
-  integrity sha512-qHeXkwiFb6LI/g0P5mFGbnvcSh+zu88ASnlf4IYl97lXJkhd3F64oUSDKS7QJB4XuEA4CIvxOCBzVtIu6rFVyg==
+"@polkadot/rpc-provider@^0.91.0-beta.10":
+  version "0.91.0-beta.10"
+  resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-0.91.0-beta.10.tgz#35a545de34bcef99a13930d99e79bf4717ea710f"
+  integrity sha512-qAlnqZuSMYedD0mFqxdduLb08ZDG96aE3HlZiXAfu304WPQFsvRUc559IdLmtvduS/szuFXX6T7qx+IG96IXgw==
   dependencies:
     "@babel/runtime" "^7.5.5"
-    "@polkadot/api-metadata" "^0.91.0-beta.9"
+    "@polkadot/api-metadata" "^0.91.0-beta.10"
     "@polkadot/util" "^1.1.1"
     "@polkadot/util-crypto" "^1.1.1"
     "@types/nock" "^10.0.3"
@@ -2123,17 +2123,17 @@
     isomorphic-fetch "^2.2.1"
     websocket "^1.0.29"
 
-"@polkadot/ts@^0.1.69":
-  version "0.1.69"
-  resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.69.tgz#ffc5b4b4c7aedc0a7e61d13b9487ba3bae30cbd5"
-  integrity sha512-JrzntjqVfEOV/VEMNx8TeW4263bLyvou+ecxNUAW1plAQXEp7PdDtR1wVS1mlhM0/mXt1iYZXet2XchP0po7Fg==
+"@polkadot/ts@^0.1.70":
+  version "0.1.70"
+  resolved "https://registry.yarnpkg.com/@polkadot/ts/-/ts-0.1.70.tgz#0f6462871c557fc81bf0e0542d5ac4ccd18f134c"
+  integrity sha512-SREHjU1WHfQeHo8/ieeQuiahHXSvZMyySdP44+G+sySgTDHK5wfOK7zJKv1dFOZBHrWcqtjCptTNMg2B9E2ysQ==
   dependencies:
     "@types/chrome" "^0.0.88"
 
-"@polkadot/types@^0.91.0-beta.9":
-  version "0.91.0-beta.9"
-  resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-0.91.0-beta.9.tgz#5dd567ebe4016b454a5ba8d3e58b709267ccdd29"
-  integrity sha512-srGIq07uE1Y1+hn8P7WsgflgET9QeqVvjnWOCiJnS3zZjXc+xGv42nYfxAeRnPNdWB7OlJRK1xX/KxO6z1l1ug==
+"@polkadot/types@^0.91.0-beta.10":
+  version "0.91.0-beta.10"
+  resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-0.91.0-beta.10.tgz#8abca52da3caccf71f2895bad9814c6d1be000b3"
+  integrity sha512-q8uILsHFrrL5TKkuhmktotsujt+j647oL6SjLglTfrZOFk6CiCxKFZUWUEwSKMJApF3WWjmFrjHZ77LEFLvJ1w==
   dependencies:
     "@babel/runtime" "^7.5.5"
     "@polkadot/util" "^1.1.1"
@@ -2141,17 +2141,17 @@
     "@types/memoizee" "^0.4.2"
     memoizee "^0.4.14"
 
-"@polkadot/ui-assets@^0.43.0-beta.4":
-  version "0.43.0-beta.4"
-  resolved "https://registry.yarnpkg.com/@polkadot/ui-assets/-/ui-assets-0.43.0-beta.4.tgz#8fca200713caa4d2bff7ece7e4ca5ba85841352d"
-  integrity sha512-PYIjSpttpL7HB7iA6xbUQnWklVOFD+M0hDrig/o5ZaEYG0gmCMy+I5AIDobswxAstTtgdHyYfLEg1RoGpg89uA==
+"@polkadot/ui-assets@^0.43.0-beta.6":
+  version "0.43.0-beta.6"
+  resolved "https://registry.yarnpkg.com/@polkadot/ui-assets/-/ui-assets-0.43.0-beta.6.tgz#0bcb3fb2cd3185ec26eca1049aed4d934210b25a"
+  integrity sha512-xBVbJsuRQSLwKbPuDEy+W+xA/6Vtm+/cFXxMg7Qb0bTw4hSUYHAxeAuYFteX04vQxKj8qMGhsUUmA3BzJh/hNg==
   dependencies:
     "@babel/runtime" "^7.5.5"
 
-"@polkadot/ui-keyring@^0.43.0-beta.4":
-  version "0.43.0-beta.4"
-  resolved "https://registry.yarnpkg.com/@polkadot/ui-keyring/-/ui-keyring-0.43.0-beta.4.tgz#ae2e4072d1adea9c47447b163b4172e7c81b3133"
-  integrity sha512-E6m2FaWqLYC54OSQbJiiBO1J4cwMEqk1J75u1foFVhFpW4IE6HiqUMRflRf2QSH9sRFyImSit6AcQ+HtoztTYA==
+"@polkadot/ui-keyring@^0.43.0-beta.6":
+  version "0.43.0-beta.6"
+  resolved "https://registry.yarnpkg.com/@polkadot/ui-keyring/-/ui-keyring-0.43.0-beta.6.tgz#43183881ae345cf8d442d2657c4afe8fc2c2370a"
+  integrity sha512-mk5AeBEoefCpAU7binBm0vZNe2S8hXUD9xGNjUEpFtnVNvGFfM72slthIgLLjA5XPtgNh+wf22DQ0uBC3RjP1Q==
   dependencies:
     "@babel/runtime" "^7.5.5"
     "@types/mkdirp" "^0.5.2"
@@ -2161,32 +2161,32 @@
     store "^2.0.12"
     styled-components "^4.3.1"
 
-"@polkadot/ui-settings@^0.43.0-beta.4":
-  version "0.43.0-beta.4"
-  resolved "https://registry.yarnpkg.com/@polkadot/ui-settings/-/ui-settings-0.43.0-beta.4.tgz#48c9010f7d7300b6febd70270da818036ba7d2d1"
-  integrity sha512-1jbtzcjh/92CjaBe5ROmfSmJUzSZ1F+YWpJOt8JBGXF/AQN9X8F/Ntc7aFR5kiD6W9hCIh+1QsPb1zdeR46iew==
+"@polkadot/ui-settings@^0.43.0-beta.6":
+  version "0.43.0-beta.6"
+  resolved "https://registry.yarnpkg.com/@polkadot/ui-settings/-/ui-settings-0.43.0-beta.6.tgz#8d093016dd6ad0e69e7d35333e9b4e2f012535cb"
+  integrity sha512-+5UsADNiQNIRfp7LEMU4LIi7Nnu3fIEgT+SlqWVs8PELZRSJi1ZCqQbAPPfysKu0h+UQ8dWVoiUxRE2glcT8ZQ==
   dependencies:
     "@babel/runtime" "^7.5.5"
     "@types/store" "^2.0.2"
     store "^2.0.12"
 
-"@polkadot/ui-shared@^0.43.0-beta.4":
-  version "0.43.0-beta.4"
-  resolved "https://registry.yarnpkg.com/@polkadot/ui-shared/-/ui-shared-0.43.0-beta.4.tgz#9453348298d6632bbf97a104a4b2e3f737489f30"
-  integrity sha512-+Uk7Z7bBKbOZT8Q5p9v6fCD+CNpH6p0V26fPIC8oVW23PtD/qUplPvE/tB6dlW+xkHb25v9Hc83O/Ldae82G5Q==
+"@polkadot/ui-shared@^0.43.0-beta.6":
+  version "0.43.0-beta.6"
+  resolved "https://registry.yarnpkg.com/@polkadot/ui-shared/-/ui-shared-0.43.0-beta.6.tgz#7e1555bfbbdf03fe4cf0fffd57de00340f28c48d"
+  integrity sha512-+z6XsKJMOXUHurblwM6rXykeY0kV+sUWPXaKbxNZ6OXxR/DhHKgs1rCpXUoWGNGw07okk7wPmUTmcp7YwSNRXQ==
   dependencies:
     "@babel/runtime" "^7.5.5"
     "@types/color" "^3.0.0"
     color "^3.1.2"
 
-"@polkadot/util-crypto@^1.1.1":
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-1.1.1.tgz#c9735058e46f55043feeadf88a9e3476739ff959"
-  integrity sha512-TxfLP4egz4sD/xP4nN0kTyls042HMTwkz2V1WPiB1aSPbBwfWUgKQkDXQcSYFIqsI7iCx4cV98Yx9oLz9NXBOw==
+"@polkadot/util-crypto@^1.1.1", "@polkadot/util-crypto@^1.2.0-beta.5":
+  version "1.2.0-beta.5"
+  resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-1.2.0-beta.5.tgz#c9b5cad0000e4079929bf90fc2e73e15fb77f4c3"
+  integrity sha512-ffnExVlHedNhR9LfaWKWX0sXxU3BDcVrRqOIgNvPmy0VuwKSaDX/Zr06slz9JNmgMygsUBoLwTGeSrfW3AW5Gg==
   dependencies:
     "@babel/runtime" "^7.5.5"
-    "@polkadot/util" "^1.1.1"
-    "@polkadot/wasm-crypto" "^0.13.1"
+    "@polkadot/util" "^1.2.0-beta.5"
+    "@polkadot/wasm-crypto" "^0.14.0-beta.2"
     "@types/bip39" "^2.4.2"
     "@types/bs58" "^4.0.0"
     "@types/pbkdf2" "^3.0.0"
@@ -2201,10 +2201,10 @@
     tweetnacl "^1.0.1"
     xxhashjs "^0.2.2"
 
-"@polkadot/util@^1.1.1":
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-1.1.1.tgz#44461fe75edab2156e6699bf1cfcc5007a603707"
-  integrity sha512-53yRPNMTYvyG5gde6sgNAA4QVjacAcupPqqDygJD4rytetOU5tmGGSnrs005FtG149pmGgV1rDUHm1R+3ogE4w==
+"@polkadot/util@^1.1.1", "@polkadot/util@^1.2.0-beta.5":
+  version "1.2.0-beta.5"
+  resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-1.2.0-beta.5.tgz#546103410f46a805eceb4c220ed396e82ab3725d"
+  integrity sha512-KnBaQU6QHHuO3UyYUAWAdMkdd3976sVnyFUUk69ATRk8TCF84TI2Zwcjvq9VVyoCTGR8IPIpPOhmQYhUFiFzsQ==
   dependencies:
     "@babel/runtime" "^7.5.5"
     "@types/bn.js" "^4.11.5"
@@ -2214,10 +2214,10 @@
     ip-regex "^4.1.0"
     moment "^2.24.0"
 
-"@polkadot/wasm-crypto@^0.13.1":
-  version "0.13.1"
-  resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-0.13.1.tgz#602305b2ca86fc320a35ce820835e0e2dd9e646e"
-  integrity sha512-24a63FynhyBHEGxqoDMZHAcaSxJqnjBPnEcmXXYCN2lI7b4iKaJKF2t+/FUmY7XTST+xNgFTJZ7A/o8jjgC/mA==
+"@polkadot/wasm-crypto@^0.14.0-beta.2":
+  version "0.14.0-beta.3"
+  resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-0.14.0-beta.3.tgz#740e576ed07e378b55e7333239da23a44d0a07f3"
+  integrity sha512-CbPx+ymPkE5TPDH/1cnIi7WhssIRrVY3Ira2qY9YDcc1+L3Gr3yvPvLnNnynaZ+LtYkt57jRSZtUbUgXoT98Dw==
 
 "@semantic-ui-react/event-stack@^3.1.0":
   version "3.1.0"
@@ -2429,9 +2429,9 @@
     "@types/node" "*"
 
 "@types/node@*", "@types/node@^12.7.2":
-  version "12.7.2"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.2.tgz#c4e63af5e8823ce9cc3f0b34f7b998c2171f0c44"
-  integrity sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg==
+  version "12.7.3"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.3.tgz#27b3f40addaf2f580459fdb405222685542f907a"
+  integrity sha512-3SiLAIBkDWDg6vFo0+5YJyHPWU9uwu40Qe+v+0MH8wRKYBimHvvAOyk3EzMrD/TrIlLYfXrqDqrg913PynrMJQ==
 
 "@types/normalize-package-data@^2.4.0":
   version "2.4.0"
@@ -2566,43 +2566,43 @@
   dependencies:
     "@types/yargs-parser" "*"
 
-"@typescript-eslint/eslint-plugin@^1.13.0":
-  version "1.13.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.13.0.tgz#22fed9b16ddfeb402fd7bcde56307820f6ebc49f"
-  integrity sha512-WQHCozMnuNADiqMtsNzp96FNox5sOVpU8Xt4meaT4em8lOG1SrOv92/mUbEHQVh90sldKSfcOc/I0FOb/14G1g==
+"@typescript-eslint/eslint-plugin@^2.0.0":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.0.0.tgz#609a5d7b00ce21a6f94d7ef282eba9da57ca1e42"
+  integrity sha512-Mo45nxTTELODdl7CgpZKJISvLb+Fu64OOO2ZFc2x8sYSnUpFrBUW3H+H/ZGYmEkfnL6VkdtOSxgdt+Av79j0sA==
   dependencies:
-    "@typescript-eslint/experimental-utils" "1.13.0"
-    eslint-utils "^1.3.1"
+    "@typescript-eslint/experimental-utils" "2.0.0"
+    eslint-utils "^1.4.0"
     functional-red-black-tree "^1.0.1"
     regexpp "^2.0.1"
-    tsutils "^3.7.0"
+    tsutils "^3.14.0"
 
-"@typescript-eslint/experimental-utils@1.13.0":
-  version "1.13.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz#b08c60d780c0067de2fb44b04b432f540138301e"
-  integrity sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==
+"@typescript-eslint/experimental-utils@2.0.0":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.0.0.tgz#f3d298bb411357f35c4184e24280b256b6321949"
+  integrity sha512-XGJG6GNBXIEx/mN4eTRypN/EUmsd0VhVGQ1AG+WTgdvjHl0G8vHhVBHrd/5oI6RRYBRnedNymSYWW1HAdivtmg==
   dependencies:
     "@types/json-schema" "^7.0.3"
-    "@typescript-eslint/typescript-estree" "1.13.0"
+    "@typescript-eslint/typescript-estree" "2.0.0"
     eslint-scope "^4.0.0"
 
-"@typescript-eslint/parser@^1.13.0":
-  version "1.13.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-1.13.0.tgz#61ac7811ea52791c47dc9fd4dd4a184fae9ac355"
-  integrity sha512-ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==
+"@typescript-eslint/parser@^2.0.0":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.0.0.tgz#4273bb19d03489daf8372cdaccbc8042e098178f"
+  integrity sha512-ibyMBMr0383ZKserIsp67+WnNVoM402HKkxqXGlxEZsXtnGGurbnY90pBO3e0nBUM7chEEOcxUhgw9aPq7fEBA==
   dependencies:
     "@types/eslint-visitor-keys" "^1.0.0"
-    "@typescript-eslint/experimental-utils" "1.13.0"
-    "@typescript-eslint/typescript-estree" "1.13.0"
+    "@typescript-eslint/experimental-utils" "2.0.0"
+    "@typescript-eslint/typescript-estree" "2.0.0"
     eslint-visitor-keys "^1.0.0"
 
-"@typescript-eslint/typescript-estree@1.13.0":
-  version "1.13.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz#8140f17d0f60c03619798f1d628b8434913dc32e"
-  integrity sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==
+"@typescript-eslint/typescript-estree@2.0.0":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.0.0.tgz#c9f6c0efd1b11475540d6a55dc973cc5b9a67e77"
+  integrity sha512-NXbmzA3vWrSgavymlzMWNecgNOuiMMp62MO3kI7awZRLRcsA1QrYWo6q08m++uuAGVbXH/prZi2y1AWuhSu63w==
   dependencies:
     lodash.unescape "4.0.1"
-    semver "5.5.0"
+    semver "^6.2.0"
 
 "@vue/babel-helper-vue-jsx-merge-props@^1.0.0":
   version "1.0.0"
@@ -3958,13 +3958,13 @@ browserify-zlib@^0.2.0:
     pako "~1.0.5"
 
 browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.4, browserslist@^4.6.6:
-  version "4.6.6"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz#6e4bf467cde520bc9dbdf3747dafa03531cec453"
-  integrity sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==
+  version "4.7.0"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17"
+  integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==
   dependencies:
-    caniuse-lite "^1.0.30000984"
-    electron-to-chromium "^1.3.191"
-    node-releases "^1.1.25"
+    caniuse-lite "^1.0.30000989"
+    electron-to-chromium "^1.3.247"
+    node-releases "^1.1.29"
 
 bs58@^4.0.1:
   version "4.0.1"
@@ -4224,7 +4224,7 @@ caniuse-api@^3.0.0:
     lodash.memoize "^4.1.2"
     lodash.uniq "^4.5.0"
 
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000984:
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989:
   version "1.0.30000989"
   resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9"
   integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==
@@ -5850,10 +5850,10 @@ ejs@^2.6.2:
   resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.2.tgz#3a32c63d1cd16d11266cd4703b14fec4e74ab4f6"
   integrity sha512-PcW2a0tyTuPHz3tWyYqtK6r1fZ3gp+3Sop8Ph+ZYN81Ob5rwmbHEzaqs10N3BEsaGTkh/ooniXK+WwszGlc2+Q==
 
-electron-to-chromium@^1.3.191:
-  version "1.3.244"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.244.tgz#7ba5461fa320ab16540a31b1d0defb7ec29b16e4"
-  integrity sha512-nEfPd2EKnFeLuZ/+JsRG3KixRQwWf2SPpp09ftNt5ouGhg408N759+oXvdXy57+TcM34ykfJYj2JMkc1O3R0lQ==
+electron-to-chromium@^1.3.247:
+  version "1.3.248"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.248.tgz#1f5f950797e192e9a951b8a44fc08974b609adcb"
+  integrity sha512-+hQe6xqpODLw9Nr80KoT0/S+YarjNbI9wgZchkOopJLBLPgAsniK184P0IGVs/0NsoZf4lBnQhOsjen9a47Hrg==
 
 elliptic@^6.0.0, elliptic@^6.4.1:
   version "6.5.0"
@@ -6053,9 +6053,9 @@ es-to-primitive@^1.2.0:
     is-symbol "^1.0.2"
 
 es5-ext@^0.10.35, es5-ext@^0.10.45, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46:
-  version "0.10.50"
-  resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.50.tgz#6d0e23a0abdb27018e5ac4fd09b412bc5517a778"
-  integrity sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==
+  version "0.10.51"
+  resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.51.tgz#ed2d7d9d48a12df86e0299287e93a09ff478842f"
+  integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ==
   dependencies:
     es6-iterator "~2.0.3"
     es6-symbol "~3.1.1"
@@ -6239,7 +6239,7 @@ eslint-scope@^5.0.0:
     esrecurse "^4.1.0"
     estraverse "^4.1.1"
 
-eslint-utils@^1.3.1, eslint-utils@^1.4.2:
+eslint-utils@^1.4.0, eslint-utils@^1.4.2:
   version "1.4.2"
   resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab"
   integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==
@@ -6252,9 +6252,9 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
   integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
 
 eslint@^6.2.2:
-  version "6.2.2"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.2.2.tgz#03298280e7750d81fcd31431f3d333e43d93f24f"
-  integrity sha512-mf0elOkxHbdyGX1IJEUsNBzCDdyoUgljF3rRlgfyYh0pwGnreLc0jjD6ZuleOibjmnUWZLY2eXwSooeOgGJ2jw==
+  version "6.3.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.3.0.tgz#1f1a902f67bfd4c354e7288b81e40654d927eb6a"
+  integrity sha512-ZvZTKaqDue+N8Y9g0kp6UPZtS4FSY3qARxBs7p4f0H0iof381XHduqVerFWtK8DPtKmemqbqCFENWSQgPR/Gow==
   dependencies:
     "@babel/code-frame" "^7.0.0"
     ajv "^6.10.0"
@@ -10090,11 +10090,16 @@ miller-rabin@^4.0.0:
     bn.js "^4.0.0"
     brorand "^1.0.1"
 
-mime-db@1.40.0, "mime-db@>= 1.40.0 < 2":
+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.41.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.41.0.tgz#9110408e1f6aa1b34aef51f2c9df3caddf46b6a0"
+  integrity sha512-B5gxBI+2K431XW8C2rcc/lhppbuji67nf9v39eH8pkWoZDxnAL0PxdpH32KYRScniF8qDHBDlI+ipgg5WrCUYw==
+
 mime-types@^2.1.12, mime-types@^2.1.18, 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"
@@ -10356,9 +10361,9 @@ nan@^2.11.0, nan@^2.12.1, nan@^2.14.0:
   integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
 
 nanoid@^2.0.0:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.0.4.tgz#4889355c9ce8e24efad7c65945a4a2875ac3e8f4"
-  integrity sha512-sOJnBmY3TJQBVIBqKHoifuwygrocXg3NjS9rZSMnVl05XWSHK7Qxb177AIZQyMDjP86bz+yneozj/h9qsPLcCA==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.0.tgz#3de3dbd68cfb2f3bd52550e2bfd439cf75040eb2"
+  integrity sha512-g5WwS+p6Cm+zQhO2YOpRbQThZVnNb7DDq74h8YDCLfAGynrEOrbx2E16dc8ciENiP1va5sqaAruqn2sN+xpkWg==
 
 nanomatch@^1.2.9:
   version "1.2.13"
@@ -10539,10 +10544,10 @@ node-pre-gyp@^0.12.0:
     semver "^5.3.0"
     tar "^4"
 
-node-releases@^1.1.25:
-  version "1.1.28"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.28.tgz#503c3c70d0e4732b84e7aaa2925fbdde10482d4a"
-  integrity sha512-AQw4emh6iSXnCpDiFe0phYcThiccmkNWMZnFZ+lDJjAP8J0m2fVd59duvUUyuTirQOhIAajTFkzG6FHCLBO59g==
+node-releases@^1.1.29:
+  version "1.1.29"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.29.tgz#86a57c6587a30ecd6726449e5d293466b0a0bb86"
+  integrity sha512-R5bDhzh6I+tpi/9i2hrrvGJ3yKPYzlVOORDkXhnZuwi5D3q1I5w4vYy24PJXTcLk9Q0kws9TO77T75bcK8/ysQ==
   dependencies:
     semver "^5.3.0"
 
@@ -10664,9 +10669,9 @@ npm-packlist@^1.1.6, npm-packlist@^1.4.4:
     npm-bundled "^1.0.1"
 
 npm-pick-manifest@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-3.0.1.tgz#19c350ffbe42e0c3c054dcd50dd5760556a98bd8"
-  integrity sha512-QsJY1LuN6vuGg2BDnteeWGYODOYWZZwbW/YyCKHK4tt9uE+k2d70eg+Kr1CSLbX157Nu8UtY/Afdv884RnJSrQ==
+  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"
@@ -12520,9 +12525,9 @@ query-string@^5.0.1:
     strict-uri-encode "^1.0.0"
 
 query-string@^6.8.2:
-  version "6.8.2"
-  resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.8.2.tgz#36cb7e452ae11a4b5e9efee83375e0954407b2f6"
-  integrity sha512-J3Qi8XZJXh93t2FiKyd/7Ec6GNifsjKXUsVFkSBj/kjLsDylWhnCz4NT1bkPcKotttPW+QbKGqqPH8OoI2pdqw==
+  version "6.8.3"
+  resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.8.3.tgz#fd9fb7ffb068b79062b43383685611ee47777d4b"
+  integrity sha512-llcxWccnyaWlODe7A9hRjkvdCKamEKTh+wH8ITdTc3OhchaqUZteiSCX/2ablWHVrkVIe04dntnaZJ7BdyW0lQ==
   dependencies:
     decode-uri-component "^0.2.0"
     split-on-first "^1.0.0"
@@ -13027,9 +13032,9 @@ regex-not@^1.0.0, regex-not@^1.0.2:
     safe-regex "^1.1.0"
 
 regexp-tree@^0.1.6:
-  version "0.1.12"
-  resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.12.tgz#28eaaa6e66eeb3527c15108a3ff740d9e574e420"
-  integrity sha512-TsXZ8+cv2uxMEkLfgwO0E068gsNMLfuYwMMhiUxf0Kw2Vcgzq93vgl6wIlIYuPmfMqMjfQ9zAporiozqCnwLuQ==
+  version "0.1.13"
+  resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.13.tgz#5b19ab9377edc68bc3679256840bb29afc158d7f"
+  integrity sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw==
 
 regexp.prototype.flags@^1.2.0:
   version "1.2.0"
@@ -13545,11 +13550,6 @@ semver-greatest-satisfied-range@^1.1.0:
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
   integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
 
-semver@5.5.0:
-  version "5.5.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
-  integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==
-
 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"
@@ -14752,7 +14752,7 @@ tslib@^1.8.1, tslib@^1.9.0:
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
   integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
 
-tsutils@^3.7.0:
+tsutils@^3.14.0:
   version "3.17.1"
   resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
   integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==
@@ -15365,9 +15365,9 @@ vue-loader@^15.2.4:
     vue-style-loader "^4.1.0"
 
 vue-router@^3.0.2:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.1.2.tgz#2e0904703545dabdd42b2b7a2e617f02f99a1969"
-  integrity sha512-WssQEHSEvIS1/CI4CO2T8LJdoK4Q9Ngox28K7FDNMTfzNTk2WS5D0dDlqYCaPG+AG4Z8wJkn1KrBc7AhspZJUQ==
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.1.3.tgz#e6b14fabc0c0ee9fda0e2cbbda74b350e28e412b"
+  integrity sha512-8iSa4mGNXBjyuSZFCCO4fiKfvzqk+mhL0lnKuGcQtO1eoj8nq3CmbEG8FwK5QqoqwDgsjsf1GDuisDX4cdb/aQ==
 
 vue-server-renderer@^2.5.16:
   version "2.6.10"