From fb0e91c4b88f0c9e776dd8633d256e8257a6848c Mon Sep 17 00:00:00 2001 From: Stanislav Bezkorovainyi Date: Mon, 21 Dec 2020 11:31:11 +0200 Subject: [PATCH] Add lint for ts files. Remove the majority of unused variables. --- .eslintignore | 3 +- .tslintrc.js | 18 ++++ contracts/test/unit_tests/proxy_test.ts | 2 +- .../test/unit_tests/specific_tokens_test.ts | 4 +- .../test/unit_tests/upgradeGatekeeper_test.ts | 4 +- contracts/test/unit_tests/zksync_test.ts | 3 +- core/tests/ts-tests/tests/forced-exit.ts | 3 +- core/tests/ts-tests/tests/misc.ts | 2 +- core/tests/ts-tests/tests/priority-ops.ts | 1 - core/tests/ts-tests/tests/transfer.ts | 2 +- core/tests/ts-tests/tests/withdraw.ts | 2 +- infrastructure/fee-seller/tests.ts | 3 +- infrastructure/fee-seller/utils.ts | 2 +- .../sdk-test-vector-generator/src/types.ts | 2 - infrastructure/zk/src/dummy-prover.ts | 1 - infrastructure/zk/src/run/run.ts | 2 +- package.json | 5 +- sdk/zksync.js/src/transport.ts | 1 + sdk/zksync.js/src/wallet.ts | 7 +- sdk/zksync.js/tests/vectors.test.ts | 4 +- sdk/zksync.js/tests/wallet.test.ts | 6 +- yarn.lock | 101 ++++++++++++++++-- 22 files changed, 138 insertions(+), 40 deletions(-) create mode 100644 .tslintrc.js diff --git a/.eslintignore b/.eslintignore index 36f373b838..c0b8c3cfba 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,4 +3,5 @@ node_modules **/node_modules/** build/ dist/ -volumes/ \ No newline at end of file +volumes/ +.tslintrc.js diff --git a/.tslintrc.js b/.tslintrc.js new file mode 100644 index 0000000000..387d7188eb --- /dev/null +++ b/.tslintrc.js @@ -0,0 +1,18 @@ +// This file has nothing to do with TSLint library +// It's just ESLint config file for the typescript language + +module.exports = { + root: true, + env: { + browser: true, + node: true, + es6: true, + mocha: true + }, + parser: '@typescript-eslint/parser', + plugins: ["@typescript-eslint"], + rules: { + // This is the only rule that should be enforced in typescript + '@typescript-eslint/no-unused-vars': 'error', + } +} diff --git a/contracts/test/unit_tests/proxy_test.ts b/contracts/test/unit_tests/proxy_test.ts index 3c761f3501..b7f8ceafbb 100644 --- a/contracts/test/unit_tests/proxy_test.ts +++ b/contracts/test/unit_tests/proxy_test.ts @@ -1,6 +1,6 @@ const { expect } = require('chai'); const { deployContract } = require('ethereum-waffle'); -const { wallet, wallet1, wallet2, deployTestContract, getCallRevertReason } = require('./common'); +const { wallet, wallet2, deployTestContract, getCallRevertReason } = require('./common'); import { Contract, constants } from 'ethers'; diff --git a/contracts/test/unit_tests/specific_tokens_test.ts b/contracts/test/unit_tests/specific_tokens_test.ts index 63761df9c1..14e5f0fc24 100644 --- a/contracts/test/unit_tests/specific_tokens_test.ts +++ b/contracts/test/unit_tests/specific_tokens_test.ts @@ -4,11 +4,9 @@ import { ETHProxy } from 'zksync'; import { Address, TokenAddress } from 'zksync/build/types'; import { Deployer, readContractCode, readTestContracts } from '../../src.ts/deploy'; -const { simpleEncode } = require('ethereumjs-abi'); const { expect } = require('chai'); const { deployContract } = require('ethereum-waffle'); -const { wallet, exitWallet, deployTestContract, getCallRevertReason, IERC20_INTERFACE } = require('./common'); -import * as zksync from 'zksync'; +const { wallet, exitWallet, getCallRevertReason, IERC20_INTERFACE } = require('./common'); async function onchainTokenBalanceOfContract( ethWallet: ethers.Wallet, diff --git a/contracts/test/unit_tests/upgradeGatekeeper_test.ts b/contracts/test/unit_tests/upgradeGatekeeper_test.ts index 331b2f5fe1..2f8f5d8657 100644 --- a/contracts/test/unit_tests/upgradeGatekeeper_test.ts +++ b/contracts/test/unit_tests/upgradeGatekeeper_test.ts @@ -2,14 +2,14 @@ import { constants } from 'ethers'; const { expect } = require('chai'); const { deployContract } = require('ethereum-waffle'); -const { provider, wallet, wallet1, wallet2, deployTestContract, getCallRevertReason } = require('./common'); +const { provider, wallet, wallet2, deployTestContract, getCallRevertReason } = require('./common'); const { performance } = require('perf_hooks'); // some random constants for checking write and read from storage const bytes = [133, 174, 97, 255]; -import { Contract, ethers } from 'ethers'; +import { Contract } from 'ethers'; const TX_OPTIONS = { gasLimit: 900000 diff --git a/contracts/test/unit_tests/zksync_test.ts b/contracts/test/unit_tests/zksync_test.ts index 9a4490b038..dc564897aa 100644 --- a/contracts/test/unit_tests/zksync_test.ts +++ b/contracts/test/unit_tests/zksync_test.ts @@ -33,7 +33,7 @@ describe('zkSync signature verification unit tests', function () { const signature = await randomWallet.signMessage( zksync.utils.getChangePubkeyMessage(pubkeyHash, nonce, accountId) ); - const { revertReason, result } = await getCallRevertReason(() => + const { result } = await getCallRevertReason(() => testContract.changePubkeySignatureCheck( signature, pubkeyHash.replace('sync:', '0x'), @@ -410,6 +410,7 @@ describe('zkSync withdraw unit tests', function () { await zksyncContract.setBalanceToWithdraw(wallet.address, tokenId, withdrawAmount); const onchainBalBefore = await onchainBalance(wallet, tokenContract.address); + // eslint-disable-next-line @typescript-eslint/no-unused-vars const { revertReason } = await getCallRevertReason( async () => await performWithdraw(wallet, tokenContract.address, tokenId, withdrawAmount.add(1)) ); diff --git a/core/tests/ts-tests/tests/forced-exit.ts b/core/tests/ts-tests/tests/forced-exit.ts index 5778544da0..685e1ca54e 100644 --- a/core/tests/ts-tests/tests/forced-exit.ts +++ b/core/tests/ts-tests/tests/forced-exit.ts @@ -1,7 +1,6 @@ import { Tester } from './tester'; import { expect } from 'chai'; -import { Wallet, types, utils } from 'zksync'; -import { BigNumber } from 'ethers'; +import { Wallet, types } from 'zksync'; import { sleep } from 'zksync/build/utils'; type TokenLike = types.TokenLike; diff --git a/core/tests/ts-tests/tests/misc.ts b/core/tests/ts-tests/tests/misc.ts index 62e1f1fb55..8351dca750 100644 --- a/core/tests/ts-tests/tests/misc.ts +++ b/core/tests/ts-tests/tests/misc.ts @@ -1,6 +1,6 @@ import { Tester } from './tester'; import { expect } from 'chai'; -import { Wallet, types, utils } from 'zksync'; +import { Wallet, types } from 'zksync'; import { BigNumber } from 'ethers'; type TokenLike = types.TokenLike; diff --git a/core/tests/ts-tests/tests/priority-ops.ts b/core/tests/ts-tests/tests/priority-ops.ts index 36a100e4ce..ea18b49bbc 100644 --- a/core/tests/ts-tests/tests/priority-ops.ts +++ b/core/tests/ts-tests/tests/priority-ops.ts @@ -2,7 +2,6 @@ import { Tester } from './tester'; import { expect } from 'chai'; import { Wallet, types } from 'zksync'; import { BigNumber } from 'ethers'; -import { sleep } from 'zksync/build/utils'; type TokenLike = types.TokenLike; diff --git a/core/tests/ts-tests/tests/transfer.ts b/core/tests/ts-tests/tests/transfer.ts index d2a28c8343..76368b5d41 100644 --- a/core/tests/ts-tests/tests/transfer.ts +++ b/core/tests/ts-tests/tests/transfer.ts @@ -1,6 +1,6 @@ import { Tester } from './tester'; import { expect } from 'chai'; -import { Wallet, types, utils } from 'zksync'; +import { Wallet, types } from 'zksync'; import { BigNumber } from 'ethers'; type TokenLike = types.TokenLike; diff --git a/core/tests/ts-tests/tests/withdraw.ts b/core/tests/ts-tests/tests/withdraw.ts index 46718d9949..4f1ac3f0de 100644 --- a/core/tests/ts-tests/tests/withdraw.ts +++ b/core/tests/ts-tests/tests/withdraw.ts @@ -1,6 +1,6 @@ import { Tester } from './tester'; import { expect } from 'chai'; -import { Wallet, types, utils } from 'zksync'; +import { Wallet, types } from 'zksync'; import { BigNumber } from 'ethers'; import { sleep } from 'zksync/build/utils'; diff --git a/infrastructure/fee-seller/tests.ts b/infrastructure/fee-seller/tests.ts index 3b50588b88..0c73e5b574 100644 --- a/infrastructure/fee-seller/tests.ts +++ b/infrastructure/fee-seller/tests.ts @@ -1,5 +1,4 @@ -import { types } from 'zksync'; -import { BigNumber, BigNumberish, utils } from 'ethers'; +import { BigNumber, utils } from 'ethers'; import { expect } from 'chai'; import { isOperationFeeAcceptable, numberAsFractionInBIPs } from './utils'; diff --git a/infrastructure/fee-seller/utils.ts b/infrastructure/fee-seller/utils.ts index ae5002adf3..899e95f370 100644 --- a/infrastructure/fee-seller/utils.ts +++ b/infrastructure/fee-seller/utils.ts @@ -104,7 +104,7 @@ export async function approveTokenIfNotApproved(signer: ethers.Signer, tokenAddr const approved = BigNumber.from(currentAllowance).gte(ERC20_APPROVE_TRESHOLD); if (!approved) { console.log(`Approving token ${tokenAddress}`); - const tx = await erc20contract.approve(contractAddress, MAX_ERC20_APPROVE_AMOUNT); + await erc20contract.approve(contractAddress, MAX_ERC20_APPROVE_AMOUNT); } } diff --git a/infrastructure/sdk-test-vector-generator/src/types.ts b/infrastructure/sdk-test-vector-generator/src/types.ts index 82f7dde045..b7a187f552 100644 --- a/infrastructure/sdk-test-vector-generator/src/types.ts +++ b/infrastructure/sdk-test-vector-generator/src/types.ts @@ -1,5 +1,3 @@ -import * as zksync from 'zksync'; - export interface TestVectorEntry { inputs: any; outputs: any; diff --git a/infrastructure/zk/src/dummy-prover.ts b/infrastructure/zk/src/dummy-prover.ts index bbc2cb40ce..8a81239846 100644 --- a/infrastructure/zk/src/dummy-prover.ts +++ b/infrastructure/zk/src/dummy-prover.ts @@ -3,7 +3,6 @@ import * as utils from './utils'; import * as server from './server'; import * as contract from './contract'; -import * as db from './db/db'; const VERIFIER_FILE = 'contracts/contracts/Verifier.sol'; diff --git a/infrastructure/zk/src/run/run.ts b/infrastructure/zk/src/run/run.ts index 915e987155..92bcf7708e 100644 --- a/infrastructure/zk/src/run/run.ts +++ b/infrastructure/zk/src/run/run.ts @@ -146,7 +146,7 @@ command command .command('deploy-eip1271') .description('deploy test EIP-1271 "smart wallet"') - .action(async (cmd: Command) => { + .action(async () => { await deployEIP1271(); }); diff --git a/package.json b/package.json index d0abb3a88b..e09e83b756 100644 --- a/package.json +++ b/package.json @@ -35,9 +35,12 @@ "zk": "yarn workspace zk", "lint:md": "markdownlint $(find . -name '*.md' -print -o -path '*/node_modules' -prune)", "lint:sol": "solhint contracts/{,dev-}contracts{,/**}/*.sol", - "lint:js": "eslint $(find . -name '*.js' | grep -v 'node_modules\\|build\\|dist')" + "lint:js": "eslint $(find . -name '*.js' | grep -v 'node_modules\\|build\\|dist\\|.tslintrc.js')", + "lint:ts": "eslint --ext ts --no-eslintrc -c .tslintrc.js $(find . -name '*.ts' | grep -v 'node_modules\\|build\\|dist')" }, "devDependencies": { + "@typescript-eslint/eslint-plugin": "^4.10.0", + "@typescript-eslint/parser": "^4.10.0", "babel-eslint": "^10.1.0", "eslint": "^7.16.0", "eslint-config-alloy": "^3.8.2", diff --git a/sdk/zksync.js/src/transport.ts b/sdk/zksync.js/src/transport.ts index b679183025..c2db3aa042 100644 --- a/sdk/zksync.js/src/transport.ts +++ b/sdk/zksync.js/src/transport.ts @@ -13,6 +13,7 @@ export abstract class AbstractJSONRPCTransport { subscriptionsSupported(): boolean { return false; } + // eslint-disable-next-line @typescript-eslint/no-unused-vars async subscribe(subMethod: string, subParams, unsubMethod: string, cb: (data: any) => void): Promise { throw new Error('subscription are not supported for this transport'); } diff --git a/sdk/zksync.js/src/wallet.ts b/sdk/zksync.js/src/wallet.ts index f33e30c435..e60cb5c8e0 100644 --- a/sdk/zksync.js/src/wallet.ts +++ b/sdk/zksync.js/src/wallet.ts @@ -11,7 +11,6 @@ import { PriorityOperationReceipt, TransactionReceipt, PubKeyHash, - TxEthSignature, ChangePubKey, EthSignerType, SignedTransaction, @@ -22,12 +21,8 @@ import { IERC20_INTERFACE, isTokenETH, MAX_ERC20_APPROVE_AMOUNT, - getChangePubkeyMessage, SYNC_MAIN_CONTRACT_INTERFACE, - getSignedBytesFromMessage, - signMessagePersonalAPI, ERC20_DEPOSIT_GAS_LIMIT, - getEthSignatureType, serializeTransfer } from './utils'; @@ -632,7 +627,7 @@ export class Wallet { try { const gasEstimate = await mainZkSyncContract.estimateGas.depositERC20(...args).then( (estimate) => estimate, - (_err) => BigNumber.from('0') + () => BigNumber.from('0') ); txRequest.gasLimit = gasEstimate.gte(ERC20_DEPOSIT_GAS_LIMIT) ? gasEstimate diff --git a/sdk/zksync.js/tests/vectors.test.ts b/sdk/zksync.js/tests/vectors.test.ts index 69def47abb..d87114c686 100644 --- a/sdk/zksync.js/tests/vectors.test.ts +++ b/sdk/zksync.js/tests/vectors.test.ts @@ -190,10 +190,10 @@ describe(txVectors['description'], function () { it('ForcedExit signature', async function () { for (const item of txVectors.items) { - const { type: txType, ethPrivateKey, data: forcedExit, ethSignData } = item.inputs; + const { type: txType, ethPrivateKey, data: forcedExit } = item.inputs; const expected = item.outputs; const privateKey = parseHexWithPrefix(ethPrivateKey); - const { signer, ethMessageSigner } = await getSigner(privateKey); + const { signer } = await getSigner(privateKey); if (txType === 'ForcedExit') { const signBytes = signer.forcedExitSignBytes(forcedExit); diff --git a/sdk/zksync.js/tests/wallet.test.ts b/sdk/zksync.js/tests/wallet.test.ts index f29e72e206..44a5b76cf8 100644 --- a/sdk/zksync.js/tests/wallet.test.ts +++ b/sdk/zksync.js/tests/wallet.test.ts @@ -1,10 +1,8 @@ -import { assert, expect } from 'chai'; -import { BigNumber, utils, ethers } from 'ethers'; +import { expect } from 'chai'; +import { BigNumber, ethers } from 'ethers'; import { Wallet } from '../src/wallet'; import { getTokens } from './helpers'; -import { TokenSet, parseHexWithPrefix } from '../src/utils'; -import { privateKeyFromSeed, signTransactionBytes } from '../src/crypto'; import { Provider } from '../src/provider'; describe('Wallet with mock provider', function () { diff --git a/yarn.lock b/yarn.lock index a08b4a3038..c719c6cfaf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1608,7 +1608,7 @@ resolved "https://registry.yarnpkg.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.35.tgz#c1c0d402daac324582b6186b91f8905340ea3361" integrity sha512-DaZNUvLDCAnCTjgwxgiL1eQdxIKEpNLOlTNtAgnZc50bG2copGhRrFN9/PxPBuJe+tZVLCbQ7ls0xveXVRPkvw== -"@types/json-schema@^7.0.5": +"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5": version "7.0.6" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== @@ -1777,6 +1777,76 @@ "@types/webpack-sources" "*" source-map "^0.6.0" +"@typescript-eslint/eslint-plugin@^4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.10.0.tgz#19ed3baf4bc4232c5a7fcd32eaca75c3a5baf9f3" + integrity sha512-h6/V46o6aXpKRlarP1AiJEXuCJ7cMQdlpfMDrcllIgX3dFkLwEBTXAoNP98ZoOmqd1xvymMVRAI4e7yVvlzWEg== + dependencies: + "@typescript-eslint/experimental-utils" "4.10.0" + "@typescript-eslint/scope-manager" "4.10.0" + debug "^4.1.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.10.0.tgz#dbf5d0f89802d5feaf7d11e5b32df29bbc2f3a0e" + integrity sha512-opX+7ai1sdWBOIoBgpVJrH5e89ra1KoLrJTz0UtWAa4IekkKmqDosk5r6xqRaNJfCXEfteW4HXQAwMdx+jjEmw== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.10.0" + "@typescript-eslint/types" "4.10.0" + "@typescript-eslint/typescript-estree" "4.10.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.10.0.tgz#1a622b0847b765b2d8f0ede6f0cdd85f03d76031" + integrity sha512-amBvUUGBMadzCW6c/qaZmfr3t9PyevcSWw7hY2FuevdZVp5QPw/K76VSQ5Sw3BxlgYCHZcK6DjIhSZK0PQNsQg== + dependencies: + "@typescript-eslint/scope-manager" "4.10.0" + "@typescript-eslint/types" "4.10.0" + "@typescript-eslint/typescript-estree" "4.10.0" + debug "^4.1.1" + +"@typescript-eslint/scope-manager@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.10.0.tgz#dbd7e1fc63d7363e3aaff742a6f2b8afdbac9d27" + integrity sha512-WAPVw35P+fcnOa8DEic0tQUhoJJsgt+g6DEcz257G7vHFMwmag58EfowdVbiNcdfcV27EFR0tUBVXkDoIvfisQ== + dependencies: + "@typescript-eslint/types" "4.10.0" + "@typescript-eslint/visitor-keys" "4.10.0" + +"@typescript-eslint/types@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.10.0.tgz#12f983750ebad867f0c806e705c1953cd6415789" + integrity sha512-+dt5w1+Lqyd7wIPMa4XhJxUuE8+YF+vxQ6zxHyhLGHJjHiunPf0wSV8LtQwkpmAsRi1lEOoOIR30FG5S2HS33g== + +"@typescript-eslint/typescript-estree@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.10.0.tgz#1e62e45fd57866afd42daf5e9fb6bd4e8dbcfa75" + integrity sha512-mGK0YRp9TOk6ZqZ98F++bW6X5kMTzCRROJkGXH62d2azhghmq+1LNLylkGe6uGUOQzD452NOAEth5VAF6PDo5g== + dependencies: + "@typescript-eslint/types" "4.10.0" + "@typescript-eslint/visitor-keys" "4.10.0" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/visitor-keys@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.10.0.tgz#9478822329a9bc8ebcc80623d7f79a01da5ee451" + integrity sha512-hPyz5qmDMuZWFtHZkjcCpkAKHX8vdu1G3YsCLEd25ryZgnJfj6FQuJ5/O7R+dB1ueszilJmAFMtlU4CA6se3Jg== + dependencies: + "@typescript-eslint/types" "4.10.0" + eslint-visitor-keys "^2.0.0" + "@ungap/promise-all-settled@1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" @@ -5381,7 +5451,7 @@ eslint-scope@^4.0.0, eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.1.1: +eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -5396,7 +5466,7 @@ eslint-utils@^1.3.1: dependencies: eslint-visitor-keys "^1.1.0" -eslint-utils@^2.1.0: +eslint-utils@^2.0.0, eslint-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== @@ -6336,7 +6406,7 @@ fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" -fast-glob@^3.0.3: +fast-glob@^3.0.3, fast-glob@^3.1.1: version "3.2.4" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== @@ -6954,6 +7024,18 @@ globby@10.0.1: merge2 "^1.2.3" slash "^3.0.0" +globby@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -7453,7 +7535,7 @@ ignore@^4.0.3, ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.1, ignore@~5.1.4: +ignore@^5.1.1, ignore@^5.1.4, ignore@~5.1.4: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== @@ -11111,7 +11193,7 @@ regexpp@^2.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== -regexpp@^3.1.0: +regexpp@^3.0.0, regexpp@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== @@ -12725,6 +12807,13 @@ tsutils@^2.29.0: dependencies: tslib "^1.8.1" +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"