Typescript-eslint 2 (#193)

This commit is contained in:
Jaco Greeff
2019-08-31 09:25:48 +02:00
committed by GitHub
parent 52cc245c37
commit 876410cc8e
20 changed files with 137 additions and 75 deletions
+12 -1
View File
@@ -1 +1,12 @@
module.exports = require('@polkadot/dev-react/config/eslint');
const base = require('@polkadot/dev-react/config/eslint');
module.exports = {
...base,
parserOptions: {
...base.parserOptions,
extraFileExtensions: ['*.d.ts'],
project: [
'./tsconfig.eslint.json'
]
}
};
+1 -1
View File
@@ -26,7 +26,7 @@
"devDependencies": {
"@babel/core": "^7.5.5",
"@babel/runtime": "^7.5.5",
"@polkadot/dev-react": "^0.31.0-beta.5",
"@polkadot/dev-react": "^0.31.0-beta.6",
"@polkadot/ts": "^0.1.69",
"babel-plugin-transform-vue-template": "^0.4.2",
"empty": "^0.10.1",
+2 -2
View File
@@ -25,8 +25,8 @@
"react": "*"
},
"devDependencies": {
"@polkadot/keyring": "^1.1.1",
"@polkadot/util-crypto": "^1.1.1",
"@polkadot/keyring": "^1.2.0-beta.3",
"@polkadot/util-crypto": "^1.2.0-beta.3",
"xmlserializer": "^0.6.1"
}
}
+2 -2
View File
@@ -32,8 +32,8 @@ function getDataUrl (value: Uint8Array): string {
// HACK See out qrcode stringToBytes override as used internally. This
// will only work for the case where we actuall pass `Bytes` in here
// @ts-ignore
qr.addData(value, 'Byte');
// eslint-disable-next-line @typescript-eslint/no-explicit-any
qr.addData(value as any, 'Byte');
qr.make();
return qr.createDataURL(16, 0);
+2 -2
View File
@@ -6,8 +6,8 @@ import qrcode from 'qrcode-generator';
// HACK The default function take string -> number[], the Uint8array is compatible
// with that signature and the use thereof
// @ts-ignore
qrcode.stringToBytes = (data: Uint8Array): Uint8Array =>
// eslint-disable-next-line @typescript-eslint/no-explicit-any
(qrcode as any).stringToBytes = (data: Uint8Array): Uint8Array =>
data;
export default qrcode;
+3 -3
View File
@@ -19,9 +19,9 @@
"styled-components": "^4.3.1"
},
"devDependencies": {
"@polkadot/keyring": "^1.1.1",
"@polkadot/types": "^0.91.0-beta.9",
"@polkadot/util": "^1.1.1"
"@polkadot/keyring": "^1.2.0-beta.3",
"@polkadot/types": "^0.91.0-beta.10",
"@polkadot/util": "^1.2.0-beta.3"
},
"peerDependencies": {
"@polkadot/keyring": "*",
@@ -25,7 +25,7 @@ function callNext (current: SubjectInfo, subject: BehaviorSubject<SubjectInfo>,
subject.next(filtered);
}
export default function genericSubject (keyCreator: (address: string) => string, withTest: boolean = false): AddressSubject {
export default function genericSubject (keyCreator: (address: string) => string, withTest = false): AddressSubject {
let current: SubjectInfo = {};
const subject = new BehaviorSubject({});
const next = (): void => callNext(current, subject, withTest);
+1 -1
View File
@@ -9,7 +9,7 @@ import { isUndefined } from '@polkadot/util';
import KeyPair from './KeyPair';
export default function createItem (address: string, _name?: string, isUppercase: boolean = true): KeyringSectionOption {
export default function createItem (address: string, _name?: string, isUppercase = true): KeyringSectionOption {
const name = isUndefined(_name)
? (
(address.length > 15)
+1 -1
View File
@@ -47,7 +47,7 @@ export default class ExtensionStore implements KeyringStore {
public set (key: string, value: KeyringJson, cb?: () => void): void {
// shortcut, don't save testing accounts in extension storage
if (key.indexOf('account:') === 0 && value.meta && value.meta.isTesting) {
if (key.startsWith('account:') && value.meta && value.meta.isTesting) {
cb && cb();
return;
+1 -1
View File
@@ -14,7 +14,7 @@
"store": "^2.0.12"
},
"devDependencies": {
"@polkadot/util": "^1.1.1"
"@polkadot/util": "^1.2.0-beta.3"
},
"peerDependencies": {
"@polkadot/util": "*"
+2 -2
View File
@@ -5,7 +5,7 @@
import { Options } from './types';
// matches https://polkadot.js.org & https://*.polkadot.io
const isPolkadot = typeof window !== 'undefined' && window.location.host.indexOf('polkadot') !== -1;
const isPolkadot = typeof window !== 'undefined' && window.location.host.includes('polkadot');
const WSS_NODES = {
parity: {
@@ -158,7 +158,7 @@ const UITHEME_DEFAULT = isPolkadot
? 'polkadot'
: 'substrate';
const UIMODE_DEFAULT = !isPolkadot && typeof window !== 'undefined' && window.location.host.indexOf('ui-light') !== -1
const UIMODE_DEFAULT = !isPolkadot && typeof window !== 'undefined' && window.location.host.includes('ui-light')
? 'light'
: 'full';
+1 -1
View File
@@ -17,6 +17,6 @@
"@polkadot/util-crypto": "*"
},
"devDependencies": {
"@polkadot/util-crypto": "^1.1.1"
"@polkadot/util-crypto": "^1.2.0-beta.3"
}
}
@@ -17,7 +17,7 @@ export default function colors (seeder: Seeder): ColorGen {
Color(hex).rotate(amount)
);
return (alpha: number = 1): string => {
return (alpha = 1): string => {
const index = Math.floor(all.length * seeder());
return all.splice(index, 1)[0]
@@ -3,7 +3,7 @@
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
export default function container (diameter: number, background: string = 'white', className: string = '', _style: { [index: string]: string } = {}): HTMLElement {
export default function container (diameter: number, background = 'white', className = '', _style: { [index: string]: string } = {}): HTMLElement {
const element = document.createElement('div');
const style = Object.assign({
background,
+1 -1
View File
@@ -24,7 +24,7 @@ function generateIcon (seed: string = encodeAddress(randomAsU8a(32))): void {
console.log(`Icon generated in ${(Date.now() - start)}ms`);
}
function generateIcons (count: number = 512): void {
function generateIcons (count = 512): void {
generateIcon(encodeAddress(new Uint8Array(32)));
for (let index = 1; index < count; index++) {
@@ -10,7 +10,7 @@ import newShape from './shape/circle';
import newElement from './svg/element';
import { SHAPE_COUNT } from './defaults';
export default function identicon (seed: string | Uint8Array, diameter: number = 256, className: string = '', style?: { [index: string]: string }): HTMLElement {
export default function identicon (seed: string | Uint8Array, diameter = 256, className = '', style?: { [index: string]: string }): HTMLElement {
const seeder = newSeeder(seed);
const colorGen = colors(seeder);
const outer = newContainer(diameter, 'white', className, style);
@@ -5,7 +5,7 @@
import createSvg from './svg';
export default function element (size: number, type: string = 'svg', x: number = 0, y: number = 0): Element {
export default function element (size: number, type = 'svg', x = 0, y = 0): Element {
const elem = createSvg(type);
elem.setAttributeNS('', 'x', `${x}`);
+1 -1
View File
@@ -134,7 +134,7 @@ function getColors (address: string): string[] {
/**
* @description Generate a array of the circles that make up an indenticon
*/
export default function generate (address: string, isSixPoint: boolean = false): Circle[] {
export default function generate (address: string, isSixPoint = false): Circle[] {
const colors = getColors(address);
return [OUTER_CIRCLE].concat(
+16
View File
@@ -0,0 +1,16 @@
{
"extends": "./tsconfig.json",
"include": [
"packages/**/*.d.ts",
"packages/**/*.ts",
"packages/**/*.tsx",
"packages/**/*.js",
"packages/**/*.spec.ts",
"packages/**/*.spec.js",
"*.js"
],
"compilerOptions": {
"allowJs": true,
"checkJs": true
}
}
+86 -51
View File
@@ -2001,15 +2001,15 @@
universal-user-agent "^3.0.0"
url-template "^2.0.8"
"@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"
@@ -2037,10 +2037,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"
@@ -2055,8 +2055,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"
@@ -2082,14 +2082,14 @@
typescript "^3.6.2"
vuepress "^1.0.3"
"@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.3":
version "1.2.0-beta.3"
resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-1.2.0-beta.3.tgz#94d7ab481b2d3932b1ae69f28579bbc9a6bc22a8"
integrity sha512-EZVCH/4snM+5rVc9QbD+opQ7rsuxwHf9KCE7+vHGHZKupXbbXv2KTv1X+JVK0Pnxk60vJ5e6idHpNVGZ1AjZag==
dependencies:
"@babel/runtime" "^7.5.5"
"@polkadot/util" "^1.1.1"
"@polkadot/util-crypto" "^1.1.1"
"@polkadot/util" "^1.2.0-beta.3"
"@polkadot/util-crypto" "^1.2.0-beta.3"
"@polkadot/ts@^0.1.69":
version "0.1.69"
@@ -2098,10 +2098,10 @@
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"
@@ -2131,6 +2131,28 @@
tweetnacl "^1.0.1"
xxhashjs "^0.2.2"
"@polkadot/util-crypto@^1.2.0-beta.3":
version "1.2.0-beta.3"
resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-1.2.0-beta.3.tgz#fb0df4d48e97e49f7dfd554fe99196bcf5885bff"
integrity sha512-qnlai3+s/q7JJLgcY6nxQUHL/YQx+8k8gRcilxqNlXI40Q/u1O9oYSYSFMBOKCHrXSJJkaBWVU25bMw7FO56XQ==
dependencies:
"@babel/runtime" "^7.5.5"
"@polkadot/util" "^1.2.0-beta.3"
"@polkadot/wasm-crypto" "^0.14.0-beta.1"
"@types/bip39" "^2.4.2"
"@types/bs58" "^4.0.0"
"@types/pbkdf2" "^3.0.0"
"@types/secp256k1" "^3.5.0"
"@types/xxhashjs" "^0.2.1"
base-x "3.0.5"
bip39 "^2.5.0"
blakejs "^1.1.0"
bs58 "^4.0.1"
js-sha3 "^0.8.0"
secp256k1 "^3.7.0"
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"
@@ -2144,11 +2166,29 @@
ip-regex "^4.1.0"
moment "^2.24.0"
"@polkadot/util@^1.2.0-beta.3":
version "1.2.0-beta.3"
resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-1.2.0-beta.3.tgz#4f88e22ef5ae31ecf937175572545c65bba66fa0"
integrity sha512-w/Sbs3Bi+rl+TcJKRNFkc9X0yFEPn2i7cH6Y43Pm05UKuMNlJKo3ilKJbGjuwYZJUDWyTqPap2pfSKraH1HDbQ==
dependencies:
"@babel/runtime" "^7.5.5"
"@types/bn.js" "^4.11.5"
bn.js "^4.11.8"
camelcase "^5.3.1"
chalk "^2.4.2"
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.1":
version "0.14.0-beta.2"
resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-0.14.0-beta.2.tgz#a405cbf019e0213b6d6df7ad0062fc766af3f537"
integrity sha512-QGXgLfeaQDKBASZ70mrSApQ8ROOj2eRDdSUSNu+ApgoRODptkm7NrRtGBWw+5nH5qVOmGG3eZYFHFDZGUrlOag==
"@react-native-community/cli-platform-android@^2.6.0", "@react-native-community/cli-platform-android@^2.9.0":
version "2.9.0"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-2.9.0.tgz#28831e61ce565a2c7d1905852fce1eecfd33cb5e"
@@ -2493,43 +2533,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"
@@ -6089,7 +6129,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==
@@ -13026,11 +13066,6 @@ selfsigned@^1.10.4:
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"
@@ -14157,7 +14192,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==