From 5f351fc67e800fed00e0d2247d81f6ff530e8d57 Mon Sep 17 00:00:00 2001 From: Krzysztof Kaczor Date: Sat, 3 Jul 2021 20:13:22 +0200 Subject: [PATCH 1/2] Update linter setup --- .eslintrc.js | 69 +- package.json | 10 +- packages/hardhat/src/index.ts | 9 +- .../hardhat-project/hardhat.config.ts | 4 +- packages/hardhat/test/project.test.ts | 4 +- .../test/DataTypesInput.test.ts | 8 +- .../test/Overload.test.ts | 4 +- packages/target-ethers-v4-test/test/common.ts | 2 +- .../target-ethers-v4/src/codegen/functions.ts | 1 + .../target-ethers-v4/src/codegen/index.ts | 12 +- .../target-ethers-v4/src/codegen/types.ts | 2 +- packages/target-ethers-v4/src/index.ts | 19 +- .../test/DataTypesInput.test.ts | 16 +- .../target-ethers-v5-test/test/Events.test.ts | 8 +- .../test/Overload.test.ts | 4 +- .../target-ethers-v5/src/codegen/functions.ts | 7 +- .../target-ethers-v5/src/codegen/hardhat.ts | 1 - .../target-ethers-v5/src/codegen/index.ts | 8 +- .../target-ethers-v5/src/codegen/types.ts | 2 +- packages/target-ethers-v5/src/index.ts | 27 +- .../test/DataTypesInput.test.ts | 5 +- .../test/DataTypesPure.test.ts | 5 +- .../test/DataTypesView.test.ts | 5 +- .../test/Events.test.ts | 2 +- .../src/codegen/contracts.ts | 7 +- .../target-truffle-v4/src/codegen/events.ts | 2 +- .../target-truffle-v4/src/codegen/index.ts | 2 +- .../target-truffle-v4/src/codegen/types.ts | 2 +- packages/target-truffle-v4/src/index.ts | 10 +- .../test/DataTypesInput.test.ts | 5 +- .../test/DataTypesPure.test.ts | 5 +- .../test/DataTypesView.test.ts | 8 +- .../test/Events.test.ts | 4 +- .../src/codegen/contracts.ts | 9 +- .../target-truffle-v5/src/codegen/events.ts | 2 +- .../target-truffle-v5/src/codegen/index.ts | 2 +- .../target-truffle-v5/src/codegen/types.ts | 2 +- packages/target-truffle-v5/src/index.ts | 10 +- .../test/DataTypesInput.test.ts | 6 +- .../test/DataTypesPure.test.ts | 4 +- .../test/DataTypesView.test.ts | 4 +- .../target-web3-v1-test/test/Events.test.ts | 4 +- .../target-web3-v1-test/test/Overload.test.ts | 4 +- .../target-web3-v1-test/test/Payable.test.ts | 4 +- packages/target-web3-v1-test/test/common.ts | 3 +- packages/target-web3-v1/src/codegen/events.ts | 2 +- packages/target-web3-v1/src/codegen/index.ts | 3 +- packages/target-web3-v1/src/codegen/types.ts | 2 +- packages/target-web3-v1/src/index.ts | 9 +- packages/test-utils/src/contract.ts | 2 +- packages/test-utils/src/index.ts | 2 +- packages/test-utils/src/test.ts | 2 +- packages/typechain/src/cli/cli.ts | 7 +- packages/typechain/src/index.ts | 10 +- packages/typechain/src/parser/abiParser.ts | 6 +- .../typechain/src/typechain/findTarget.ts | 3 +- packages/typechain/src/typechain/io.ts | 9 +- .../typechain/src/typechain/runTypeChain.ts | 14 +- packages/typechain/src/typechain/types.ts | 2 +- packages/typechain/test/cli/parseArgs.test.ts | 1 + .../typechain/test/parser/abiParser.test.ts | 2 +- .../test/parser/parseEvmType.test.ts | 3 +- .../typechain/test/utils/signatures.test.ts | 9 +- yarn.lock | 602 ++++++++++-------- 64 files changed, 539 insertions(+), 484 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 29eea7985..70ff283c4 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -3,16 +3,18 @@ module.exports = { es6: true, }, extends: ['typestrict'], - plugins: ['no-only-tests', 'import'], + plugins: ['no-only-tests', 'simple-import-sort', 'unused-imports', 'import'], parser: '@typescript-eslint/parser', parserOptions: { project: './tsconfig.json', sourceType: 'module', }, rules: { - //: "this gets inlined into a package eslint, so it means: use current package's package.info or the one at the project root" + // this gets inlined into a package eslint, so it means: use current package's package.info or the one at the project root 'import/no-extraneous-dependencies': ['error', { packageDir: ['./', '../../'] }], - '@typescript-eslint/no-unused-vars': ['off'], + 'unused-imports/no-unused-imports-ts': 'error', + 'simple-import-sort/imports': 'error', + 'simple-import-sort/exports': 'error', '@typescript-eslint/no-use-before-define': 'off', '@typescript-eslint/no-useless-constructor': 'error', 'accessor-pairs': 'error', @@ -53,7 +55,6 @@ module.exports = { 'no-extra-bind': 'error', 'no-extra-boolean-cast': 'error', 'no-extra-parens': ['error', 'functions'], - 'no-fallthrough': 'error', 'no-floating-decimal': 'error', 'no-func-assign': 'error', 'no-global-assign': 'error', @@ -71,25 +72,7 @@ module.exports = { ], 'no-lone-blocks': 'error', 'no-misleading-character-class': 'error', - 'no-mixed-operators': [ - 'error', - { - allowSamePrecedence: true, - groups: [ - ['==', '!=', '===', '!==', '>', '>=', '<', '<='], - ['&&', '||'], - ['in', 'instanceof'], - ], - }, - ], 'no-multi-str': 'error', - 'no-multiple-empty-lines': [ - 'error', - { - max: 1, - maxEOF: 0, - }, - ], 'no-negated-in-lhs': 'error', 'no-new': 'error', 'no-new-func': 'error', @@ -102,7 +85,6 @@ module.exports = { 'no-octal-escape': 'error', 'no-path-concat': 'error', 'no-proto': 'error', - 'no-prototype-builtins': 'error', 'no-redeclare': [ 'error', { @@ -139,37 +121,12 @@ module.exports = { 'no-useless-rename': 'error', 'no-useless-return': 'error', 'no-with': 'error', - 'object-curly-spacing': ['error', 'always'], - 'object-property-newline': [ - 'error', - { - allowMultiplePropertiesPerLine: true, - }, - ], 'one-var': [ 'error', { initialized: 'never', }, ], - 'operator-linebreak': [ - 'error', - 'after', - { - overrides: { - ':': 'before', - '?': 'before', - }, - }, - ], - 'padded-blocks': [ - 'error', - { - blocks: 'never', - classes: 'never', - switches: 'never', - }, - ], 'prefer-const': [ 'error', { @@ -178,7 +135,6 @@ module.exports = { ], 'prefer-promise-reject-errors': 'error', 'symbol-description': 'error', - 'unicode-bom': ['error', 'never'], 'use-isnan': 'error', 'valid-typeof': [ 'error', @@ -186,22 +142,7 @@ module.exports = { requireStringLiterals: true, }, ], - 'wrap-iife': [ - 'error', - 'any', - { - functionPrototypeMethods: true, - }, - ], yoda: ['error', 'never'], 'no-only-tests/no-only-tests': 'error', }, - overrides: [ - { - files: ['test/**/*.{js,ts,tsx}'], - rules: { - '@typescript-eslint/no-non-null-assertion': 'off', - }, - }, - ], } diff --git a/package.json b/package.json index 1a8ccb1a4..a1e09d6a8 100644 --- a/package.json +++ b/package.json @@ -34,11 +34,13 @@ "@typescript-eslint/eslint-plugin": "4.15.1", "@typescript-eslint/parser": "4.15.1", "earljs": "^0.1.10", - "eslint": "^6.8.0", - "eslint-config-typestrict": "^1.0.0", + "eslint": "^7.29.0", + "eslint-config-typestrict": "^1.0.1", "eslint-plugin-import": "^2.23.4", - "eslint-plugin-no-only-tests": "^2.4.0", - "eslint-plugin-sonarjs": "^0.5.0", + "eslint-plugin-no-only-tests": "^2.6.0", + "eslint-plugin-simple-import-sort": "^7.0.0", + "eslint-plugin-sonarjs": "^0.8.0-125", + "eslint-plugin-unused-imports": "^1.1.1", "mocha": "^8.2.0", "prettier": "^2.1.2", "solc": "^0.6.4", diff --git a/packages/hardhat/src/index.ts b/packages/hardhat/src/index.ts index 21b2eede1..b8fb48977 100644 --- a/packages/hardhat/src/index.ts +++ b/packages/hardhat/src/index.ts @@ -1,13 +1,14 @@ +import './type-extensions' + import fsExtra from 'fs-extra' import { TASK_CLEAN, TASK_COMPILE, TASK_COMPILE_SOLIDITY_COMPILE_JOBS } from 'hardhat/builtin-tasks/task-names' -import { extendConfig, task, subtask } from 'hardhat/config' +import { extendConfig, subtask, task } from 'hardhat/config' import { getFullyQualifiedName } from 'hardhat/utils/contract-names' import _, { uniq } from 'lodash' -import { runTypeChain, glob } from 'typechain' +import { glob, runTypeChain } from 'typechain' import { getDefaultTypechainConfig } from './config' import { TASK_TYPECHAIN } from './constants' -import './type-extensions' const taskArgsStore: { noTypechain: boolean; fullRebuild: boolean } = { noTypechain: false, fullRebuild: false } @@ -17,7 +18,7 @@ extendConfig((config) => { task(TASK_COMPILE, 'Compiles the entire project, building all artifacts') .addFlag('noTypechain', 'Skip Typechain compilation') - .setAction(async ({ noTypechain }: { global: boolean; noTypechain: boolean }, { config }, runSuper) => { + .setAction(async ({ noTypechain }: { global: boolean; noTypechain: boolean }, _, runSuper) => { // just save task arguments for later b/c there is no easier way to access them in subtask taskArgsStore.noTypechain = noTypechain!! diff --git a/packages/hardhat/test/fixture-projects/hardhat-project/hardhat.config.ts b/packages/hardhat/test/fixture-projects/hardhat-project/hardhat.config.ts index b3293caad..842c2ba2e 100644 --- a/packages/hardhat/test/fixture-projects/hardhat-project/hardhat.config.ts +++ b/packages/hardhat/test/fixture-projects/hardhat-project/hardhat.config.ts @@ -1,8 +1,8 @@ // We load the plugin here. -import { HardhatUserConfig } from 'hardhat/types' - import '../../../src/index' +import { HardhatUserConfig } from 'hardhat/types' + const config: HardhatUserConfig = { solidity: '0.7.3', defaultNetwork: 'hardhat', diff --git a/packages/hardhat/test/project.test.ts b/packages/hardhat/test/project.test.ts index 7b34651d1..8628a4beb 100644 --- a/packages/hardhat/test/project.test.ts +++ b/packages/hardhat/test/project.test.ts @@ -1,10 +1,10 @@ /* eslint-disable no-invalid-this */ import { expect, Mock, mockFn } from 'earljs' +import { copyFileSync, existsSync, promises as fsPromises, readFileSync } from 'fs' import { join } from 'path' -import { existsSync, promises as fsPromises, copyFileSync, readFileSync } from 'fs' +import rimraf from 'rimraf' import { useEnvironment } from './helpers' -import rimraf from 'rimraf' describe('Typechain x Hardhat', function () { this.timeout(120_000) diff --git a/packages/target-ethers-v4-test/test/DataTypesInput.test.ts b/packages/target-ethers-v4-test/test/DataTypesInput.test.ts index 84a4b65f3..fecb021b0 100644 --- a/packages/target-ethers-v4-test/test/DataTypesInput.test.ts +++ b/packages/target-ethers-v4-test/test/DataTypesInput.test.ts @@ -1,10 +1,10 @@ -import { typedAssert, q18, IsExact, AssertTrue } from 'test-utils' +import { expect } from 'earljs' import { BigNumber, formatBytes32String } from 'ethers/utils' +import { AssertTrue, IsExact, q18, typedAssert } from 'test-utils' import { Awaited } from 'ts-essentials' -import { expect } from 'earljs' -import { createNewBlockchain, deployContract } from './common' import { DataTypesInput } from '../types/DataTypesInput' +import { createNewBlockchain, deployContract } from './common' describe('DataTypesInput', () => { let contract!: DataTypesInput @@ -77,11 +77,13 @@ describe('DataTypesInput', () => { // NOTE: typesAssert is too simple to tests type compatibility here so we can't use it it('generates correct types for tuples', () => { type ViewTupleType = Awaited> + //eslint-disable-next-line @typescript-eslint/no-unused-vars type _t1 = AssertTrue> }) it('generates correct types for structs', () => { type ViewStructType = Awaited> + //eslint-disable-next-line @typescript-eslint/no-unused-vars type _t1 = AssertTrue< IsExact > diff --git a/packages/target-ethers-v4-test/test/Overload.test.ts b/packages/target-ethers-v4-test/test/Overload.test.ts index 490f9fdfb..ed68d433f 100644 --- a/packages/target-ethers-v4-test/test/Overload.test.ts +++ b/packages/target-ethers-v4-test/test/Overload.test.ts @@ -1,8 +1,8 @@ +import { BigNumber } from 'ethers/utils' import { typedAssert } from 'test-utils' -import { createNewBlockchain, deployContract } from './common' import { Overloads } from '../types/Overloads' -import { BigNumber } from 'ethers/utils' +import { createNewBlockchain, deployContract } from './common' describe('Overloads', () => { let contract: Overloads diff --git a/packages/target-ethers-v4-test/test/common.ts b/packages/target-ethers-v4-test/test/common.ts index 2de7b97ac..b19e97f3c 100644 --- a/packages/target-ethers-v4-test/test/common.ts +++ b/packages/target-ethers-v4-test/test/common.ts @@ -1,5 +1,5 @@ -import { JsonRpcProvider } from 'ethers/providers' import { ethers } from 'ethers' +import { JsonRpcProvider } from 'ethers/providers' import { loadContract } from 'test-utils' const ganache = require('ganache-cli') diff --git a/packages/target-ethers-v4/src/codegen/functions.ts b/packages/target-ethers-v4/src/codegen/functions.ts index 3396f3c7b..3cb38fc81 100644 --- a/packages/target-ethers-v4/src/codegen/functions.ts +++ b/packages/target-ethers-v4/src/codegen/functions.ts @@ -1,4 +1,5 @@ import { FunctionDeclaration, FunctionDocumentation, getSignatureForFn } from 'typechain' + import { generateInputTypes, generateOutputTypes } from './types' interface GenerateFunctionOptions { diff --git a/packages/target-ethers-v4/src/codegen/index.ts b/packages/target-ethers-v4/src/codegen/index.ts index 57db2de32..f8e3ce064 100644 --- a/packages/target-ethers-v4/src/codegen/index.ts +++ b/packages/target-ethers-v4/src/codegen/index.ts @@ -7,10 +7,11 @@ import { EventDeclaration, FunctionDeclaration, } from 'typechain' -import { generateInputType, generateInputTypes } from './types' -import { codegenFunctions } from './functions' + import { FACTORY_POSTFIX } from '../common' +import { codegenFunctions } from './functions' import { reservedKeywords } from './reserved-keywords' +import { generateInputType, generateInputTypes } from './types' export function codegenContractTypings(contract: Contract) { const template = ` @@ -76,10 +77,11 @@ export function codegenContractTypings(contract: Contract) { export function codegenContractFactory(contract: Contract, abi: any, bytecode?: BytecodeWithLinkReferences): string { const constructorArgs = - (contract.constructor && contract.constructor[0] ? generateInputTypes(contract.constructor[0].inputs) : '') + + (contract.constructor[0] ? generateInputTypes(contract.constructor[0].inputs) : '') + 'overrides?: TransactionOverrides' - const constructorArgNamesWithoutOverrides = - contract.constructor && contract.constructor[0] ? generateParamNames(contract.constructor[0].inputs) : '' + const constructorArgNamesWithoutOverrides = contract.constructor[0] + ? generateParamNames(contract.constructor[0].inputs) + : '' const constructorArgNames = constructorArgNamesWithoutOverrides ? `${constructorArgNamesWithoutOverrides}, overrides` : 'overrides' diff --git a/packages/target-ethers-v4/src/codegen/types.ts b/packages/target-ethers-v4/src/codegen/types.ts index ea10386ad..940086547 100644 --- a/packages/target-ethers-v4/src/codegen/types.ts +++ b/packages/target-ethers-v4/src/codegen/types.ts @@ -1,4 +1,4 @@ -import { EvmType, EvmOutputType, TupleType, AbiParameter, AbiOutputParameter } from 'typechain' +import { AbiOutputParameter, AbiParameter, EvmOutputType, EvmType, TupleType } from 'typechain' export function generateInputTypes(input: Array): string { if (input.length === 0) { diff --git a/packages/target-ethers-v4/src/index.ts b/packages/target-ethers-v4/src/index.ts index 09d3c7901..9eae4ad5c 100644 --- a/packages/target-ethers-v4/src/index.ts +++ b/packages/target-ethers-v4/src/index.ts @@ -1,5 +1,5 @@ -import { join, resolve } from 'path' import { readFileSync } from 'fs' +import { join, resolve } from 'path' import { Dictionary } from 'ts-essentials' import { BytecodeWithLinkReferences, @@ -28,11 +28,14 @@ export default class Ethers extends TypeChainTarget { name = 'Ethers' private readonly outDirAbs: string - private readonly contractCache: Dictionary<{ - abi: any - contract: Contract - }> = {} - private readonly bytecodeCache: Dictionary = {} + private readonly contractCache: Dictionary< + | { + abi: any + contract: Contract + } + | undefined + > = {} + private readonly bytecodeCache: Dictionary = {} constructor(config: Config) { super(config) @@ -68,7 +71,7 @@ export default class Ethers extends TypeChainTarget { } if (this.contractCache[name]) { - const { contract, abi } = this.contractCache[name] + const { contract, abi } = this.contractCache[name]! delete this.contractCache[name] return [this.genContractFactoryFile(contract, abi, bytecode)] } else { @@ -114,7 +117,7 @@ export default class Ethers extends TypeChainTarget { // For each contract that doesn't have bytecode (it's either abstract, or only ABI was provided) // generate a simplified factory, that allows to interact with deployed contract instances. const abstractFactoryFiles = Object.keys(this.contractCache).map((contractName) => { - const { contract, abi } = this.contractCache[contractName] + const { contract, abi } = this.contractCache[contractName]! return { path: join(this.outDirAbs, 'factories', `${contract.name}${FACTORY_POSTFIX}.ts`), contents: codegenAbstractContractFactory(contract, abi), diff --git a/packages/target-ethers-v5-test/test/DataTypesInput.test.ts b/packages/target-ethers-v5-test/test/DataTypesInput.test.ts index 31f50e5ad..434b0ee8a 100644 --- a/packages/target-ethers-v5-test/test/DataTypesInput.test.ts +++ b/packages/target-ethers-v5-test/test/DataTypesInput.test.ts @@ -1,10 +1,10 @@ -import { typedAssert, q18, AssertTrue, IsExact } from 'test-utils' -import { ethers, BigNumber } from 'ethers' +import { expect } from 'earljs' +import { Awaited } from 'earljs/dist/mocks/types' +import { BigNumber, ethers } from 'ethers' +import { AssertTrue, IsExact, q18, typedAssert } from 'test-utils' -import { createNewBlockchain, deployContract } from './common' import { DataTypesInput } from '../types/DataTypesInput' -import { Awaited } from 'earljs/dist/mocks/types' -import { expect } from 'earljs' +import { createNewBlockchain, deployContract } from './common' describe('DataTypesInput', () => { let contract!: DataTypesInput @@ -80,12 +80,14 @@ describe('DataTypesInput', () => { // NOTE: typesAssert is too simple to tests type compatibility here so we can't use it it('generates correct types for tuples', () => { type ViewTupleType = Awaited> - type t1 = AssertTrue> + // eslint-disable-next-line @typescript-eslint/no-unused-vars + type _t1 = AssertTrue> }) it('generates correct types for structs', () => { type ViewStructType = Awaited> - type t1 = AssertTrue< + // eslint-disable-next-line @typescript-eslint/no-unused-vars + type _t1 = AssertTrue< IsExact > }) diff --git a/packages/target-ethers-v5-test/test/Events.test.ts b/packages/target-ethers-v5-test/test/Events.test.ts index d7b023bd2..eaa49bc2a 100644 --- a/packages/target-ethers-v5-test/test/Events.test.ts +++ b/packages/target-ethers-v5-test/test/Events.test.ts @@ -1,8 +1,8 @@ +import { BigNumber, ethers } from 'ethers' import { typedAssert } from 'test-utils' -import { ethers, BigNumber } from 'ethers' -import { createNewBlockchain, deployContract } from './common' import { Events } from '../types/Events' +import { createNewBlockchain, deployContract } from './common' describe('Events', () => { let contract!: Events @@ -47,7 +47,7 @@ describe('Events', () => { it('contract.on', async () => { const filter = contract.filters.Event1(null, null) - const results = await contract.queryFilter(filter) + await contract.queryFilter(filter) contract.on(filter, (a, b, c) => { typedAssert(a, BigNumber.from(1)) @@ -67,7 +67,7 @@ describe('Events', () => { it('contract.once', async () => { const filter = contract.filters.Event1(null, null) - const results = await contract.queryFilter(filter) + await contract.queryFilter(filter) contract.once(filter, (a, b, c) => { typedAssert(a, BigNumber.from(1)) diff --git a/packages/target-ethers-v5-test/test/Overload.test.ts b/packages/target-ethers-v5-test/test/Overload.test.ts index ff1497e8b..bdf093e5b 100644 --- a/packages/target-ethers-v5-test/test/Overload.test.ts +++ b/packages/target-ethers-v5-test/test/Overload.test.ts @@ -1,9 +1,9 @@ import { expect } from 'earljs' +import { BigNumber } from 'ethers' import { typedAssert } from 'test-utils' -import { createNewBlockchain, deployContract } from './common' import { Overloads } from '../types/Overloads' -import { BigNumber } from 'ethers' +import { createNewBlockchain, deployContract } from './common' describe('Overloads', () => { let contract: Overloads diff --git a/packages/target-ethers-v5/src/codegen/functions.ts b/packages/target-ethers-v5/src/codegen/functions.ts index fd305c941..dbc1144d0 100644 --- a/packages/target-ethers-v5/src/codegen/functions.ts +++ b/packages/target-ethers-v5/src/codegen/functions.ts @@ -1,11 +1,12 @@ import { + CodegenConfig, FunctionDeclaration, - isConstant, - isConstantFn, FunctionDocumentation, getSignatureForFn, - CodegenConfig, + isConstant, + isConstantFn, } from 'typechain' + import { generateInputTypes, generateOutputTypes } from './types' interface GenerateFunctionOptions { diff --git a/packages/target-ethers-v5/src/codegen/hardhat.ts b/packages/target-ethers-v5/src/codegen/hardhat.ts index 71e364bc0..4f457fc83 100644 --- a/packages/target-ethers-v5/src/codegen/hardhat.ts +++ b/packages/target-ethers-v5/src/codegen/hardhat.ts @@ -1,4 +1,3 @@ -import { basename } from 'path' import { FACTORY_POSTFIX } from '../common' export function generateHardhatHelper(contracts: string[]): string { diff --git a/packages/target-ethers-v5/src/codegen/index.ts b/packages/target-ethers-v5/src/codegen/index.ts index acade13e2..ef78a7e1d 100644 --- a/packages/target-ethers-v5/src/codegen/index.ts +++ b/packages/target-ethers-v5/src/codegen/index.ts @@ -8,6 +8,7 @@ import { EventDeclaration, FunctionDeclaration, } from 'typechain' + import { FACTORY_POSTFIX } from '../common' import { codegenFunctions } from './functions' import { reservedKeywords } from './reserved-keywords' @@ -140,14 +141,15 @@ export function codegenContractTypings(contract: Contract, codegenConfig: Codege export function codegenContractFactory(contract: Contract, abi: any, bytecode?: BytecodeWithLinkReferences): string { const constructorArgs = - (contract.constructor && contract.constructor[0] ? generateInputTypes(contract.constructor[0].inputs) : '') + + (contract.constructor[0] ? generateInputTypes(contract.constructor[0].inputs) : '') + `overrides?: ${ contract.constructor[0]?.stateMutability === 'payable' ? 'PayableOverrides & { from?: string | Promise }' : 'Overrides & { from?: string | Promise }' }` - const constructorArgNamesWithoutOverrides = - contract.constructor && contract.constructor[0] ? generateParamNames(contract.constructor[0].inputs) : '' + const constructorArgNamesWithoutOverrides = contract.constructor[0] + ? generateParamNames(contract.constructor[0].inputs) + : '' const constructorArgNames = constructorArgNamesWithoutOverrides ? `${constructorArgNamesWithoutOverrides}, overrides || {}` : 'overrides || {}' diff --git a/packages/target-ethers-v5/src/codegen/types.ts b/packages/target-ethers-v5/src/codegen/types.ts index 521edebfa..ddc5fcdce 100644 --- a/packages/target-ethers-v5/src/codegen/types.ts +++ b/packages/target-ethers-v5/src/codegen/types.ts @@ -1,5 +1,5 @@ -import { EvmType, EvmOutputType, TupleType, AbiParameter, AbiOutputParameter } from 'typechain' import { compact } from 'lodash' +import { AbiOutputParameter, AbiParameter, EvmOutputType, EvmType, TupleType } from 'typechain' export function generateInputTypes(input: Array): string { if (input.length === 0) { diff --git a/packages/target-ethers-v5/src/index.ts b/packages/target-ethers-v5/src/index.ts index eb7f7d7a7..0e4aead73 100644 --- a/packages/target-ethers-v5/src/index.ts +++ b/packages/target-ethers-v5/src/index.ts @@ -1,8 +1,9 @@ -import { join, resolve, basename } from 'path' -import { uniqBy, compact } from 'lodash' +import { compact, uniqBy } from 'lodash' +import { basename, join, resolve } from 'path' import { Dictionary } from 'ts-essentials' import { BytecodeWithLinkReferences, + CodegenConfig, Config, Contract, extractAbi, @@ -11,15 +12,14 @@ import { FileDescription, getFileExtension, getFilename, + normalizeName, parse, TypeChainTarget, - normalizeName, - CodegenConfig, } from 'typechain' import { codegenAbstractContractFactory, codegenContractFactory, codegenContractTypings } from './codegen' -import { FACTORY_POSTFIX } from './common' import { generateHardhatHelper } from './codegen/hardhat' +import { FACTORY_POSTFIX } from './common' export interface IEthersCfg { outDir?: string @@ -32,11 +32,14 @@ export default class Ethers extends TypeChainTarget { private readonly allContracts: string[] private readonly outDirAbs: string - private readonly contractCache: Dictionary<{ - abi: any - contract: Contract - }> = {} - private readonly bytecodeCache: Dictionary = {} + private readonly contractCache: Dictionary< + | { + abi: any + contract: Contract + } + | undefined + > = {} + private readonly bytecodeCache: Dictionary = {} constructor(config: Config) { super(config) @@ -71,7 +74,7 @@ export default class Ethers extends TypeChainTarget { } if (this.contractCache[name]) { - const { contract, abi } = this.contractCache[name] + const { contract, abi } = this.contractCache[name]! delete this.contractCache[name] return [this.genContractFactoryFile(contract, abi, bytecode)] } else { @@ -121,7 +124,7 @@ export default class Ethers extends TypeChainTarget { // For each contract that doesn't have bytecode (it's either abstract, or only ABI was provided) // generate a simplified factory, that allows to interact with deployed contract instances. const abstractFactoryFiles = Object.keys(this.contractCache).map((contractName) => { - const { contract, abi } = this.contractCache[contractName] + const { contract, abi } = this.contractCache[contractName]! return { path: join(this.outDirAbs, 'factories', `${contract.name}${FACTORY_POSTFIX}.ts`), contents: codegenAbstractContractFactory(contract, abi), diff --git a/packages/target-truffle-v4-test/test/DataTypesInput.test.ts b/packages/target-truffle-v4-test/test/DataTypesInput.test.ts index 8fed03778..903af8ce1 100644 --- a/packages/target-truffle-v4-test/test/DataTypesInput.test.ts +++ b/packages/target-truffle-v4-test/test/DataTypesInput.test.ts @@ -1,6 +1,7 @@ -import { typedAssert, q18 } from 'test-utils' -import { DataTypesInputInstance } from '../types/truffle-contracts/DataTypesInput' import BigNumber from 'bignumber.js' +import { q18, typedAssert } from 'test-utils' + +import { DataTypesInputInstance } from '../types/truffle-contracts/DataTypesInput' const DataTypesInput = artifacts.require('DataTypesInput') diff --git a/packages/target-truffle-v4-test/test/DataTypesPure.test.ts b/packages/target-truffle-v4-test/test/DataTypesPure.test.ts index 3622095fa..347bf50b5 100644 --- a/packages/target-truffle-v4-test/test/DataTypesPure.test.ts +++ b/packages/target-truffle-v4-test/test/DataTypesPure.test.ts @@ -1,6 +1,7 @@ -import { typedAssert, q18 } from 'test-utils' -import { DataTypesPureInstance } from '../types/truffle-contracts/DataTypesPure' import BigNumber from 'bignumber.js' +import { q18, typedAssert } from 'test-utils' + +import { DataTypesPureInstance } from '../types/truffle-contracts/DataTypesPure' const DataTypesPure = artifacts.require('DataTypesPure') diff --git a/packages/target-truffle-v4-test/test/DataTypesView.test.ts b/packages/target-truffle-v4-test/test/DataTypesView.test.ts index 3b836d298..16575b928 100644 --- a/packages/target-truffle-v4-test/test/DataTypesView.test.ts +++ b/packages/target-truffle-v4-test/test/DataTypesView.test.ts @@ -1,6 +1,7 @@ -import { typedAssert, q18 } from 'test-utils' -import { DataTypesViewInstance } from '../types/truffle-contracts/DataTypesView' import BigNumber from 'bignumber.js' +import { q18, typedAssert } from 'test-utils' + +import { DataTypesViewInstance } from '../types/truffle-contracts/DataTypesView' const DataTypesView = artifacts.require('DataTypesView') diff --git a/packages/target-truffle-v4-test/test/Events.test.ts b/packages/target-truffle-v4-test/test/Events.test.ts index b9bb9b0d1..d0f481013 100644 --- a/packages/target-truffle-v4-test/test/Events.test.ts +++ b/packages/target-truffle-v4-test/test/Events.test.ts @@ -1,7 +1,7 @@ import BigNumber from 'bignumber.js' import { typedAssert } from 'test-utils' -import { EventsInstance, Event3_bool_uint256 } from '../types/truffle-contracts/Events' +import { Event3_bool_uint256, EventsInstance } from '../types/truffle-contracts/Events' const Events = artifacts.require('Events') diff --git a/packages/target-truffle-v4/src/codegen/contracts.ts b/packages/target-truffle-v4/src/codegen/contracts.ts index 3375efe2f..c12c1d71d 100644 --- a/packages/target-truffle-v4/src/codegen/contracts.ts +++ b/packages/target-truffle-v4/src/codegen/contracts.ts @@ -1,7 +1,8 @@ -import { Contract, FunctionDeclaration, FunctionDocumentation, isConstant, isConstantFn } from 'typechain' import { values } from 'lodash' +import { Contract, FunctionDeclaration, FunctionDocumentation, isConstant, isConstantFn } from 'typechain' + +import { codegenAllPossibleEvents, codegenEventsDeclarations } from './events' import { codegenInputTypes, codegenOutputTypes } from './types' -import { codegenEventsDeclarations, codegenAllPossibleEvents } from './events' export function codegenContract(contract: Contract) { return ` @@ -20,7 +21,7 @@ function codegenContractInterface(c: Contract): string { return ` export interface ${c.name}Contract extends Truffle.Contract<${c.name}Instance> { ${ - c.constructor && c.constructor[0] + c.constructor[0] ? `"new"(${codegenInputTypes(c.constructor[0].inputs)} meta?: Truffle.TransactionDetails): Promise<${ c.name }Instance>;` diff --git a/packages/target-truffle-v4/src/codegen/events.ts b/packages/target-truffle-v4/src/codegen/events.ts index 779f2f015..6c211e95f 100644 --- a/packages/target-truffle-v4/src/codegen/events.ts +++ b/packages/target-truffle-v4/src/codegen/events.ts @@ -1,5 +1,5 @@ -import { Contract, EventDeclaration, EventArgDeclaration, getFullSignatureAsSymbolForEvent } from 'typechain' import { some, values } from 'lodash' +import { Contract, EventArgDeclaration, EventDeclaration, getFullSignatureAsSymbolForEvent } from 'typechain' import { codegenOutputType } from './types' diff --git a/packages/target-truffle-v4/src/codegen/index.ts b/packages/target-truffle-v4/src/codegen/index.ts index c5c7d40d0..f9efd5a04 100644 --- a/packages/target-truffle-v4/src/codegen/index.ts +++ b/packages/target-truffle-v4/src/codegen/index.ts @@ -1,2 +1,2 @@ -export { codegenArtifactHeaders } from './headers' export { codegenContract } from './contracts' +export { codegenArtifactHeaders } from './headers' diff --git a/packages/target-truffle-v4/src/codegen/types.ts b/packages/target-truffle-v4/src/codegen/types.ts index 77c5c43fc..2f5736727 100644 --- a/packages/target-truffle-v4/src/codegen/types.ts +++ b/packages/target-truffle-v4/src/codegen/types.ts @@ -1,4 +1,4 @@ -import { AbiParameter, AbiOutputParameter, EvmType, EvmOutputType, TupleType } from 'typechain' +import { AbiOutputParameter, AbiParameter, EvmOutputType, EvmType, TupleType } from 'typechain' export function codegenInputTypes(input: Array): string { if (input.length === 0) { diff --git a/packages/target-truffle-v4/src/index.ts b/packages/target-truffle-v4/src/index.ts index c372076d1..9119e9f20 100644 --- a/packages/target-truffle-v4/src/index.ts +++ b/packages/target-truffle-v4/src/index.ts @@ -1,15 +1,15 @@ +import { readFileSync } from 'fs' +import { join, resolve } from 'path' import { + Config, Contract, + extractAbi, extractDocumentation, + FileDescription, getFilename, - extractAbi, parse, - Config, TypeChainTarget, - FileDescription, } from 'typechain' -import { join, resolve } from 'path' -import { readFileSync } from 'fs' import { codegenArtifactHeaders } from './codegen' import { codegenContract } from './codegen/contracts' diff --git a/packages/target-truffle-v5-test/test/DataTypesInput.test.ts b/packages/target-truffle-v5-test/test/DataTypesInput.test.ts index 364197297..e1849f2e2 100644 --- a/packages/target-truffle-v5-test/test/DataTypesInput.test.ts +++ b/packages/target-truffle-v5-test/test/DataTypesInput.test.ts @@ -1,6 +1,7 @@ -import { typedAssert, q18 } from 'test-utils' -import { DataTypesInputInstance } from '../types/truffle-contracts/DataTypesInput' import BigNumber from 'bn.js' +import { q18, typedAssert } from 'test-utils' + +import { DataTypesInputInstance } from '../types/truffle-contracts/DataTypesInput' const DataTypesInput = artifacts.require('DataTypesInput') diff --git a/packages/target-truffle-v5-test/test/DataTypesPure.test.ts b/packages/target-truffle-v5-test/test/DataTypesPure.test.ts index 691bd37e5..3f79f64a7 100644 --- a/packages/target-truffle-v5-test/test/DataTypesPure.test.ts +++ b/packages/target-truffle-v5-test/test/DataTypesPure.test.ts @@ -1,6 +1,7 @@ -import { typedAssert, q18 } from 'test-utils' -import { DataTypesPureInstance } from '../types/truffle-contracts/DataTypesPure' import BigNumber from 'bn.js' +import { q18, typedAssert } from 'test-utils' + +import { DataTypesPureInstance } from '../types/truffle-contracts/DataTypesPure' const DataTypesPure = artifacts.require('DataTypesPure') diff --git a/packages/target-truffle-v5-test/test/DataTypesView.test.ts b/packages/target-truffle-v5-test/test/DataTypesView.test.ts index 0d00be7d5..aa7f927a6 100644 --- a/packages/target-truffle-v5-test/test/DataTypesView.test.ts +++ b/packages/target-truffle-v5-test/test/DataTypesView.test.ts @@ -1,8 +1,9 @@ -import { typedAssert, q18, IsExact, AssertTrue } from 'test-utils' -import { DataTypesViewInstance } from '../types/truffle-contracts/DataTypesView' import BigNumber from 'bn.js' +import { AssertTrue, IsExact, q18, typedAssert } from 'test-utils' import { Awaited } from 'ts-essentials' +import { DataTypesViewInstance } from '../types/truffle-contracts/DataTypesView' + const DataTypesView = artifacts.require('DataTypesView') contract('DataTypesView', ([deployer]) => { @@ -46,6 +47,7 @@ contract('DataTypesView', ([deployer]) => { // NOTE: typesAssert is too simple to tests type compatibility here so we can't use it it('generates correct types for tuples', () => { type ViewTupleType = Awaited> - type t1 = AssertTrue> + // eslint-disable-next-line @typescript-eslint/no-unused-vars + type _t1 = AssertTrue> }) }) diff --git a/packages/target-truffle-v5-test/test/Events.test.ts b/packages/target-truffle-v5-test/test/Events.test.ts index f03022308..991e8f408 100644 --- a/packages/target-truffle-v5-test/test/Events.test.ts +++ b/packages/target-truffle-v5-test/test/Events.test.ts @@ -1,7 +1,7 @@ import BigNumber from 'bn.js' -import { typedAssert, asyncWithDoneCase } from 'test-utils' +import { asyncWithDoneCase, typedAssert } from 'test-utils' -import { EventsInstance, Event3_bool_uint256 } from '../types/truffle-contracts/Events' +import { Event3_bool_uint256, EventsInstance } from '../types/truffle-contracts/Events' const Events = artifacts.require('Events') diff --git a/packages/target-truffle-v5/src/codegen/contracts.ts b/packages/target-truffle-v5/src/codegen/contracts.ts index 734a2c4ef..4b48aec03 100644 --- a/packages/target-truffle-v5/src/codegen/contracts.ts +++ b/packages/target-truffle-v5/src/codegen/contracts.ts @@ -1,14 +1,15 @@ +import { values } from 'lodash' import { Contract, FunctionDeclaration, FunctionDocumentation, + getSignatureForFn, isConstant, isConstantFn, - getSignatureForFn, } from 'typechain' -import { values } from 'lodash' + +import { codegenAllPossibleEvents, codegenEventsDeclarations } from './events' import { codegenInputTypes, codegenOutputTypes } from './types' -import { codegenEventsDeclarations, codegenAllPossibleEvents } from './events' export function codegenContract(contract: Contract) { return ` @@ -28,7 +29,7 @@ function codegenContractInterface(c: Contract): string { return ` export interface ${c.name}Contract extends Truffle.Contract<${c.name}Instance> { ${ - c.constructor && c.constructor[0] + c.constructor[0] ? `"new"(${codegenInputTypes(c.constructor[0].inputs)} meta?: Truffle.TransactionDetails): Promise<${ c.name }Instance>;` diff --git a/packages/target-truffle-v5/src/codegen/events.ts b/packages/target-truffle-v5/src/codegen/events.ts index ae96e0a52..1eb35bc87 100644 --- a/packages/target-truffle-v5/src/codegen/events.ts +++ b/packages/target-truffle-v5/src/codegen/events.ts @@ -1,5 +1,5 @@ -import { Contract, EventDeclaration, EventArgDeclaration, getFullSignatureAsSymbolForEvent } from 'typechain' import { values } from 'lodash' +import { Contract, EventArgDeclaration, EventDeclaration, getFullSignatureAsSymbolForEvent } from 'typechain' import { codegenOutputType } from './types' diff --git a/packages/target-truffle-v5/src/codegen/index.ts b/packages/target-truffle-v5/src/codegen/index.ts index c5c7d40d0..f9efd5a04 100644 --- a/packages/target-truffle-v5/src/codegen/index.ts +++ b/packages/target-truffle-v5/src/codegen/index.ts @@ -1,2 +1,2 @@ -export { codegenArtifactHeaders } from './headers' export { codegenContract } from './contracts' +export { codegenArtifactHeaders } from './headers' diff --git a/packages/target-truffle-v5/src/codegen/types.ts b/packages/target-truffle-v5/src/codegen/types.ts index 218385ac6..ee5c9a341 100644 --- a/packages/target-truffle-v5/src/codegen/types.ts +++ b/packages/target-truffle-v5/src/codegen/types.ts @@ -1,4 +1,4 @@ -import { AbiParameter, AbiOutputParameter, EvmType, EvmOutputType, TupleType } from 'typechain' +import { AbiOutputParameter, AbiParameter, EvmOutputType, EvmType, TupleType } from 'typechain' export function codegenInputTypes(input: Array): string { if (input.length === 0) { diff --git a/packages/target-truffle-v5/src/index.ts b/packages/target-truffle-v5/src/index.ts index 6419768f3..9119e9f20 100644 --- a/packages/target-truffle-v5/src/index.ts +++ b/packages/target-truffle-v5/src/index.ts @@ -1,15 +1,15 @@ +import { readFileSync } from 'fs' +import { join, resolve } from 'path' import { + Config, Contract, + extractAbi, extractDocumentation, + FileDescription, getFilename, - extractAbi, parse, TypeChainTarget, - Config, - FileDescription, } from 'typechain' -import { join, resolve } from 'path' -import { readFileSync } from 'fs' import { codegenArtifactHeaders } from './codegen' import { codegenContract } from './codegen/contracts' diff --git a/packages/target-web3-v1-test/test/DataTypesInput.test.ts b/packages/target-web3-v1-test/test/DataTypesInput.test.ts index 9296aba89..9e7c85db6 100644 --- a/packages/target-web3-v1-test/test/DataTypesInput.test.ts +++ b/packages/target-web3-v1-test/test/DataTypesInput.test.ts @@ -1,9 +1,9 @@ +import BN from 'bn.js' +import { q18, typedAssert } from 'test-utils' import Web3 from 'web3' -import { typedAssert, q18 } from 'test-utils' -import { createNewBlockchain, deployContract } from './common' import { DataTypesInput } from '../types/DataTypesInput' -import BN from 'bn.js' +import { createNewBlockchain, deployContract } from './common' describe('DataTypesInput', () => { let contract!: DataTypesInput diff --git a/packages/target-web3-v1-test/test/DataTypesPure.test.ts b/packages/target-web3-v1-test/test/DataTypesPure.test.ts index 3ae123e71..d24d8005c 100644 --- a/packages/target-web3-v1-test/test/DataTypesPure.test.ts +++ b/packages/target-web3-v1-test/test/DataTypesPure.test.ts @@ -1,7 +1,7 @@ -import { typedAssert, q18 } from 'test-utils' +import { q18, typedAssert } from 'test-utils' -import { createNewBlockchain, deployContract } from './common' import { DataTypesPure } from '../types/DataTypesPure' +import { createNewBlockchain, deployContract } from './common' describe('DataTypesPure', () => { let contract!: DataTypesPure diff --git a/packages/target-web3-v1-test/test/DataTypesView.test.ts b/packages/target-web3-v1-test/test/DataTypesView.test.ts index c2f00615b..e5e9dc168 100644 --- a/packages/target-web3-v1-test/test/DataTypesView.test.ts +++ b/packages/target-web3-v1-test/test/DataTypesView.test.ts @@ -1,7 +1,7 @@ -import { typedAssert, q18 } from 'test-utils' +import { q18, typedAssert } from 'test-utils' -import { createNewBlockchain, deployContract } from './common' import { DataTypesView } from '../types/DataTypesView' +import { createNewBlockchain, deployContract } from './common' describe('DataTypesView', () => { let contract!: DataTypesView diff --git a/packages/target-web3-v1-test/test/Events.test.ts b/packages/target-web3-v1-test/test/Events.test.ts index 5f3d5d6a1..55e6a5d02 100644 --- a/packages/target-web3-v1-test/test/Events.test.ts +++ b/packages/target-web3-v1-test/test/Events.test.ts @@ -1,7 +1,7 @@ -import { typedAssert, asyncWithDoneCase } from 'test-utils' +import { asyncWithDoneCase, typedAssert } from 'test-utils' -import { createNewBlockchain, deployContract, GAS_LIMIT_STANDARD } from './common' import { Events } from '../types/Events' +import { createNewBlockchain, deployContract, GAS_LIMIT_STANDARD } from './common' // Docs: https://web3js.readthedocs.io/en/v1.2.6/web3-eth-contract.html#events describe('Events', () => { diff --git a/packages/target-web3-v1-test/test/Overload.test.ts b/packages/target-web3-v1-test/test/Overload.test.ts index 3c8bbecdc..1ff726c89 100644 --- a/packages/target-web3-v1-test/test/Overload.test.ts +++ b/packages/target-web3-v1-test/test/Overload.test.ts @@ -1,8 +1,8 @@ -import Web3 from 'web3' import { typedAssert } from 'test-utils' +import Web3 from 'web3' -import { createNewBlockchain, deployContract } from './common' import { Overloads } from '../types/Overloads' +import { createNewBlockchain, deployContract } from './common' describe('Overloads', () => { let contract: Overloads diff --git a/packages/target-web3-v1-test/test/Payable.test.ts b/packages/target-web3-v1-test/test/Payable.test.ts index b4160d0e9..c157ef9d3 100644 --- a/packages/target-web3-v1-test/test/Payable.test.ts +++ b/packages/target-web3-v1-test/test/Payable.test.ts @@ -1,8 +1,8 @@ +import { typeCase, typedAssert } from 'test-utils' import Web3 from 'web3' -import { typedAssert, typeCase } from 'test-utils' -import { createNewBlockchain, deployContract } from './common' import { Payable } from '../types/Payable' +import { createNewBlockchain, deployContract } from './common' describe('Payable', () => { let contract: Payable diff --git a/packages/target-web3-v1-test/test/common.ts b/packages/target-web3-v1-test/test/common.ts index e62df5409..97852f32a 100644 --- a/packages/target-web3-v1-test/test/common.ts +++ b/packages/target-web3-v1-test/test/common.ts @@ -1,6 +1,5 @@ -import Web3 from 'web3' - import { loadContract } from 'test-utils' +import Web3 from 'web3' const ganache = require('ganache-cli') diff --git a/packages/target-web3-v1/src/codegen/events.ts b/packages/target-web3-v1/src/codegen/events.ts index a89e93d79..952b2b455 100644 --- a/packages/target-web3-v1/src/codegen/events.ts +++ b/packages/target-web3-v1/src/codegen/events.ts @@ -1,9 +1,9 @@ import { values } from 'lodash' import { Dictionary } from 'ts-essentials' import { + EventArgDeclaration, EventDeclaration, getFullSignatureAsSymbolForEvent, - EventArgDeclaration, getFullSignatureForEvent, } from 'typechain' diff --git a/packages/target-web3-v1/src/codegen/index.ts b/packages/target-web3-v1/src/codegen/index.ts index f3ca92032..ecfd0b6cb 100644 --- a/packages/target-web3-v1/src/codegen/index.ts +++ b/packages/target-web3-v1/src/codegen/index.ts @@ -1,5 +1,6 @@ import { Contract } from 'typechain' -import { codegenForEventsDeclarations, codegenForEvents, codegenForEventsOnceFns } from './events' + +import { codegenForEvents, codegenForEventsDeclarations, codegenForEventsOnceFns } from './events' import { codegenForFunctions } from './functions' export function codegen(contract: Contract) { diff --git a/packages/target-web3-v1/src/codegen/types.ts b/packages/target-web3-v1/src/codegen/types.ts index 315d498f1..7f72068c9 100644 --- a/packages/target-web3-v1/src/codegen/types.ts +++ b/packages/target-web3-v1/src/codegen/types.ts @@ -1,4 +1,4 @@ -import { EvmType, EvmOutputType, TupleType, AbiParameter, AbiOutputParameter } from 'typechain' +import { AbiOutputParameter, AbiParameter, EvmOutputType, EvmType, TupleType } from 'typechain' export function codegenInputTypes(input: AbiParameter[]): string { if (input.length === 0) { diff --git a/packages/target-web3-v1/src/index.ts b/packages/target-web3-v1/src/index.ts index d789f136e..19bc90c78 100644 --- a/packages/target-web3-v1/src/index.ts +++ b/packages/target-web3-v1/src/index.ts @@ -1,14 +1,13 @@ -import { join, resolve } from 'path' import { readFileSync } from 'fs' - +import { join, resolve } from 'path' import { + Config, extractAbi, extractDocumentation, - parse, + FileDescription, getFilename, - Config, + parse, TypeChainTarget, - FileDescription, } from 'typechain' import { codegen } from './codegen' diff --git a/packages/test-utils/src/contract.ts b/packages/test-utils/src/contract.ts index 72dc08d55..37b0b208f 100644 --- a/packages/test-utils/src/contract.ts +++ b/packages/test-utils/src/contract.ts @@ -1,5 +1,5 @@ -import { join } from 'path' import { readFileSync } from 'fs' +import { join } from 'path' const abiDirPath = join(__dirname, '../../../contracts/compiled') diff --git a/packages/test-utils/src/index.ts b/packages/test-utils/src/index.ts index 706be7f10..38ea89dca 100644 --- a/packages/test-utils/src/index.ts +++ b/packages/test-utils/src/index.ts @@ -1,3 +1,3 @@ -export * from './test' export * from './contract' +export * from './test' export * from 'conditional-type-checks' diff --git a/packages/test-utils/src/test.ts b/packages/test-utils/src/test.ts index 8db42ea7c..0a97232e7 100644 --- a/packages/test-utils/src/test.ts +++ b/packages/test-utils/src/test.ts @@ -1,6 +1,6 @@ import { expect } from 'earljs' -import { Dictionary } from 'ts-essentials' import { isString, mapValues, omitBy } from 'lodash' +import { Dictionary } from 'ts-essentials' /** * Asserts values AND types equality. diff --git a/packages/typechain/src/cli/cli.ts b/packages/typechain/src/cli/cli.ts index 9f20519f6..22c9070f7 100755 --- a/packages/typechain/src/cli/cli.ts +++ b/packages/typechain/src/cli/cli.ts @@ -1,10 +1,11 @@ #!/usr/bin/env node -import { parseArgs } from './parseArgs' +import * as prettier from 'prettier' + import { runTypeChain } from '../typechain/runTypeChain' -import { logger } from '../utils/logger' import { Config } from '../typechain/types' import { glob } from '../utils/glob' -import * as prettier from 'prettier' +import { logger } from '../utils/logger' +import { parseArgs } from './parseArgs' async function main() { ;(global as any).IS_CLI = true diff --git a/packages/typechain/src/index.ts b/packages/typechain/src/index.ts index 0e7a6927d..ef0b49c1f 100644 --- a/packages/typechain/src/index.ts +++ b/packages/typechain/src/index.ts @@ -1,9 +1,9 @@ export * from './parser/abiParser' +export { normalizeName } from './parser/normalizeName' export * from './parser/parseEvmType' -export * from './utils/files' -export * from './utils/signatures' -export * from './typechain/types' export * from './typechain/runTypeChain' -export * from './utils/glob' export * from './typechain/types' -export { normalizeName } from './parser/normalizeName' +export * from './typechain/types' +export * from './utils/files' +export * from './utils/glob' +export * from './utils/signatures' diff --git a/packages/typechain/src/parser/abiParser.ts b/packages/typechain/src/parser/abiParser.ts index ea718e0d6..dd9ee7b1e 100644 --- a/packages/typechain/src/parser/abiParser.ts +++ b/packages/typechain/src/parser/abiParser.ts @@ -4,8 +4,8 @@ import { Dictionary } from 'ts-essentials' import { debug } from '../utils/debug' import { MalformedAbiError } from '../utils/errors' -import { EvmOutputType, EvmType, parseEvmType } from './parseEvmType' import { normalizeName } from './normalizeName' +import { EvmOutputType, EvmType, parseEvmType } from './parseEvmType' export interface AbiParameter { name: string // @todo name should be normalized to undefined if empty string @@ -96,7 +96,7 @@ export interface EventArgDeclaration { export interface RawEventAbiDefinition { type: 'event' - anonymous: boolean + anonymous?: boolean name: string inputs: RawEventArgAbiDefinition[] } @@ -179,7 +179,7 @@ export function parse(abi: RawAbiDefinition[], rawName: string, documentation?: } } -function parseOutputs(outputs: Array): AbiOutputParameter[] { +function parseOutputs(outputs?: Array): AbiOutputParameter[] { if (!outputs || outputs.length === 0) { return [{ name: '', type: { type: 'void' } }] } else { diff --git a/packages/typechain/src/typechain/findTarget.ts b/packages/typechain/src/typechain/findTarget.ts index f0bf1c3a0..576dc9e7d 100644 --- a/packages/typechain/src/typechain/findTarget.ts +++ b/packages/typechain/src/typechain/findTarget.ts @@ -1,7 +1,8 @@ import _, { compact } from 'lodash' + +import { debug } from '../utils/debug' import { ensureAbsPath } from '../utils/files' import { tryRequire } from '../utils/modules' -import { debug } from '../utils/debug' import { Config, TypeChainTarget } from './types' export function findTarget(config: Config): TypeChainTarget { diff --git a/packages/typechain/src/typechain/io.ts b/packages/typechain/src/typechain/io.ts index f38cde48d..c05161418 100644 --- a/packages/typechain/src/typechain/io.ts +++ b/packages/typechain/src/typechain/io.ts @@ -1,10 +1,11 @@ -import { Config, FileDescription, Output, Services } from './types' -import { debug } from '../utils/debug' +import { readFileSync } from 'fs' import { isArray } from 'lodash' import { dirname, relative } from 'path' -import { outputTransformers } from '../codegen/outputTransformers' -import { readFileSync } from 'fs' + import { extractAbi } from '..' +import { outputTransformers } from '../codegen/outputTransformers' +import { debug } from '../utils/debug' +import { Config, FileDescription, Output, Services } from './types' export function processOutput(services: Services, cfg: Config, output: Output): number { const { fs, mkdirp } = services diff --git a/packages/typechain/src/typechain/runTypeChain.ts b/packages/typechain/src/typechain/runTypeChain.ts index d709ff5fa..dcdc595c0 100644 --- a/packages/typechain/src/typechain/runTypeChain.ts +++ b/packages/typechain/src/typechain/runTypeChain.ts @@ -1,14 +1,12 @@ -import _ = require('lodash') -import { debug } from '../utils/debug' +import * as fs from 'fs' +import { sync as mkdirp } from 'mkdirp' import { relative } from 'path' -import { Config, PublicConfig, Services } from './types' +import * as prettier from 'prettier' + +import { debug } from '../utils/debug' import { findTarget } from './findTarget' import { loadFileDescriptions, processOutput, skipEmptyAbis } from './io' - -import * as fs from 'fs' -import * as prettier from 'prettier' -import { sync as mkdirp } from 'mkdirp' -import { config } from 'bluebird' +import { Config, PublicConfig, Services } from './types' interface Result { filesGenerated: number diff --git a/packages/typechain/src/typechain/types.ts b/packages/typechain/src/typechain/types.ts index 8fb730804..4409d1126 100644 --- a/packages/typechain/src/typechain/types.ts +++ b/packages/typechain/src/typechain/types.ts @@ -1,6 +1,6 @@ import * as fs from 'fs' -import * as prettier from 'prettier' import { sync as mkdirp } from 'mkdirp' +import * as prettier from 'prettier' import { MarkOptional } from 'ts-essentials' export interface Config { diff --git a/packages/typechain/test/cli/parseArgs.test.ts b/packages/typechain/test/cli/parseArgs.test.ts index 6b0ab8c5b..5b26db176 100644 --- a/packages/typechain/test/cli/parseArgs.test.ts +++ b/packages/typechain/test/cli/parseArgs.test.ts @@ -1,4 +1,5 @@ import { expect } from 'earljs' + import { parseArgs } from '../../src/cli/parseArgs' describe('cli > parseArgs', () => { diff --git a/packages/typechain/test/parser/abiParser.test.ts b/packages/typechain/test/parser/abiParser.test.ts index b3df6015b..014be884f 100644 --- a/packages/typechain/test/parser/abiParser.test.ts +++ b/packages/typechain/test/parser/abiParser.test.ts @@ -1,7 +1,6 @@ import { expect } from 'earljs' import { merge } from 'lodash' -import { MalformedAbiError } from '../../src/utils/errors' import { BytecodeLinkReference, ensure0xPrefix, @@ -16,6 +15,7 @@ import { RawAbiDefinition, RawEventAbiDefinition, } from '../../src/parser/abiParser' +import { MalformedAbiError } from '../../src/utils/errors' describe('extractAbi', () => { it('should throw error on not JSON ABI', () => { diff --git a/packages/typechain/test/parser/parseEvmType.test.ts b/packages/typechain/test/parser/parseEvmType.test.ts index df768a7ab..65af9791d 100644 --- a/packages/typechain/test/parser/parseEvmType.test.ts +++ b/packages/typechain/test/parser/parseEvmType.test.ts @@ -1,5 +1,6 @@ import { expect } from 'earljs' -import { parseEvmType, UnsignedIntegerType, IntegerType, ArrayType, BytesType } from '../../src/parser/parseEvmType' + +import { ArrayType, BytesType, IntegerType, parseEvmType, UnsignedIntegerType } from '../../src/parser/parseEvmType' describe('parseEvmType function', () => { it('parses unsigned integer', () => { diff --git a/packages/typechain/test/utils/signatures.test.ts b/packages/typechain/test/utils/signatures.test.ts index fca73bdc8..a8a90cb1b 100644 --- a/packages/typechain/test/utils/signatures.test.ts +++ b/packages/typechain/test/utils/signatures.test.ts @@ -1,13 +1,14 @@ +import { expect } from 'earljs' + import { - getFullSignatureAsSymbolForEvent, EventDeclaration, + EvmSymbol, + FunctionDeclaration, + getFullSignatureAsSymbolForEvent, getFullSignatureForEvent, getIndexedSignatureForEvent, getSignatureForFn, - FunctionDeclaration, - EvmSymbol, } from '../../src' -import { expect } from 'earljs' const event1: EventDeclaration = { name: 'Deposit', diff --git a/yarn.lock b/yarn.lock index e04836105..62f415407 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,13 @@ # yarn lockfile v1 +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + "@babel/code-frame@^7.0.0": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" @@ -14,6 +21,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== +"@babel/helper-validator-identifier@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" + integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== + "@babel/highlight@^7.0.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" @@ -23,6 +35,15 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/highlight@^7.10.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/runtime@^7.10.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" @@ -231,6 +252,21 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@eslint/eslintrc@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" + integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + "@ethersproject/abi@5.0.7": version "5.0.7" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" @@ -743,6 +779,20 @@ "@ethersproject/properties" "^5.1.0" "@ethersproject/strings" "^5.1.0" +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + "@jest/types@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" @@ -1359,15 +1409,15 @@ accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn-jsx@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" - integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== -acorn@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" - integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== adm-zip@^0.4.16: version "0.4.16" @@ -1386,7 +1436,7 @@ agent-base@6: dependencies: debug "4" -ajv@^6.10.0, ajv@^6.10.2: +ajv@^6.10.0: version "6.10.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== @@ -1396,6 +1446,16 @@ ajv@^6.10.0, ajv@^6.10.2: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ajv@^6.5.5: version "6.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" @@ -1406,6 +1466,16 @@ ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.1: + version "8.6.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720" + integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ansi-align@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" @@ -1423,13 +1493,6 @@ ansi-colors@4.1.1, ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^4.2.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d" - integrity sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg== - dependencies: - type-fest "^0.8.1" - ansi-escapes@^4.3.0: version "4.3.1" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" @@ -1619,10 +1682,10 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-eventemitter@^0.2.2: version "0.2.4" @@ -2275,18 +2338,6 @@ cli-boxes@^1.0.0: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= - cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" @@ -2527,7 +2578,7 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -2538,6 +2589,15 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-browserify@3.12.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2734,7 +2794,7 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -3003,7 +3063,7 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enquirer@^2.3.0: +enquirer@^2.3.0, enquirer@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -3138,7 +3198,7 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escape-string-regexp@4.0.0: +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -3148,10 +3208,10 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -eslint-config-typestrict@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-typestrict/-/eslint-config-typestrict-1.0.0.tgz#fdb9876c1ea72a1fc743b964464cb0b730b60f11" - integrity sha512-mC3wdJwrYp9O27w4oDU9q0xKdqivSBXSltc31hk8zsiSyDgOwadSEvFPeRjS8uxl9qKUhgS+8MAcX/SJ52fWpA== +eslint-config-typestrict@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-typestrict/-/eslint-config-typestrict-1.0.1.tgz#605cddc31350be03098c9890d400605630dd8cd7" + integrity sha512-GsuT7UAovyjOLS/BS8nUWdlG+RG5JA9Q+rozWmtYQVeSE/Qh2AxY2VrYLzy7LzVm8EihzzjvOe5d+AFu3+WL5Q== eslint-import-resolver-node@^0.3.4: version "0.3.4" @@ -3190,15 +3250,32 @@ eslint-plugin-import@^2.23.4: resolve "^1.20.0" tsconfig-paths "^3.9.0" -eslint-plugin-no-only-tests@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-2.4.0.tgz#7d565434aa7d16ccc7eea957c391d98f827332ca" - integrity sha512-azP9PwQYfGtXJjW273nIxQH9Ygr+5/UyeW2wEjYoDtVYPI+WPKwbj0+qcAKYUXFZLRumq4HKkFaoDBAwBoXImQ== +eslint-plugin-no-only-tests@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-2.6.0.tgz#19f6c9620bda02b9b9221b436c5f070e42628d76" + integrity sha512-T9SmE/g6UV1uZo1oHAqOvL86XWl7Pl2EpRpnLI8g/bkJu+h7XBCB+1LnubRZ2CUQXj805vh4/CYZdnqtVaEo2Q== -eslint-plugin-sonarjs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.5.0.tgz#ce17b2daba65a874c2862213a9e38e8986ad7d7d" - integrity sha512-XW5MnzlRjhXpIdbULC/qAdJYHWw3rRLws/DyawdlPU/IdVr9AmRK1r2LaCvabwKOAW2XYYSo3kDX58E4MrB7PQ== +eslint-plugin-simple-import-sort@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz#a1dad262f46d2184a90095a60c66fef74727f0f8" + integrity sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw== + +eslint-plugin-sonarjs@^0.8.0-125: + version "0.8.0-125" + resolved "https://registry.yarnpkg.com/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.8.0-125.tgz#d19fc8a579bb3b2a16879b6375516c9c3c12e60c" + integrity sha512-/nl3Yzy8cHxCj5ohQL8dEqK2AhQqjTM/oXz5K3bU/7XbsBTz0BgyEsDvdz7gdtRlAe0Hzrf2v3qLVHA506Qheg== + +eslint-plugin-unused-imports@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-1.1.2.tgz#de94bbf744183c0deb4a20aa5a358cd85ce28832" + integrity sha512-dfiCZiv/lSkOp6/JIjP+ASIs1vxLgiN1NISM+oxcO799+FEZQXy0Se1CaAHQt4BCInBOJ9LK0ILCe1lMMI+YGA== + dependencies: + eslint-rule-composer "^0.3.0" + +eslint-rule-composer@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" + integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== eslint-scope@^5.0.0: version "5.0.0" @@ -3208,12 +3285,13 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== +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== dependencies: - eslint-visitor-keys "^1.1.0" + esrecurse "^4.3.0" + estraverse "^4.1.1" eslint-utils@^2.0.0: version "2.0.0" @@ -3222,79 +3300,94 @@ eslint-utils@^2.0.0: dependencies: eslint-visitor-keys "^1.1.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== + dependencies: + eslint-visitor-keys "^1.1.0" + eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== +eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + eslint-visitor-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== +eslint@^7.29.0: + version "7.30.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.30.0.tgz#6d34ab51aaa56112fd97166226c9a97f505474f8" + integrity sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg== dependencies: - "@babel/code-frame" "^7.0.0" + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.2" + "@humanwhocodes/config-array" "^0.5.0" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^1.4.3" - eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" esutils "^2.0.2" - file-entry-cache "^5.0.1" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" + glob-parent "^5.1.2" + globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^7.0.0" is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.14" + levn "^0.4.1" + lodash.merge "^4.6.2" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" - table "^5.2.3" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d" - integrity sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA== +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== dependencies: - acorn "^7.1.0" - acorn-jsx "^5.1.0" - eslint-visitor-keys "^1.1.0" + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== dependencies: - estraverse "^4.0.0" + estraverse "^5.1.0" esrecurse@^4.1.0: version "4.2.1" @@ -3303,11 +3396,23 @@ esrecurse@^4.1.0: dependencies: estraverse "^4.1.0" -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.0, estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -3755,7 +3860,7 @@ extendable-error@^0.1.5: resolved "https://registry.yarnpkg.com/extendable-error/-/extendable-error-0.1.7.tgz#60b9adf206264ac920058a7395685ae4670c2b96" integrity sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg== -external-editor@^3.0.3, external-editor@^3.1.0: +external-editor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== @@ -3805,6 +3910,11 @@ fast-deep-equal@^3.1.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== +fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + fast-glob@^3.1.1: version "3.2.4" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" @@ -3822,7 +3932,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -3848,19 +3958,12 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -figures@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec" - integrity sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg== +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" + flat-cache "^3.0.4" file-type@^3.8.0: version "3.9.0" @@ -3966,14 +4069,13 @@ find-yarn-workspace-root2@1.2.16: micromatch "^4.0.2" pkg-dir "^4.2.0" -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" + flatted "^3.1.0" + rimraf "^3.0.2" flat@^4.1.0: version "4.1.1" @@ -3987,10 +4089,10 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== +flatted@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.0.tgz#da07fb8808050aba6fdeac2294542e5043583f05" + integrity sha512-XprP7lDrVT+kE2c2YlfiV+IfS9zxukiIOvNamPNsImNhXadSsQEbosItdL9bUQlCZXR13SvPk20BjWSWLA7m4A== flow-stoplight@^1.0.0: version "1.0.0" @@ -4240,13 +4342,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-parent@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" - integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== - dependencies: - is-glob "^4.0.1" - glob-parent@^5.1.0, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" @@ -4254,6 +4349,13 @@ glob-parent@^5.1.0, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob@7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" @@ -4298,12 +4400,12 @@ global@~4.3.0: min-document "^2.19.0" process "~0.5.1" -globals@^12.1.0: - version "12.3.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.3.0.tgz#1e564ee5c4dded2ab098b0f88f24702a3c56be13" - integrity sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw== +globals@^13.6.0, globals@^13.9.0: + version "13.9.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" + integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== dependencies: - type-fest "^0.8.1" + type-fest "^0.20.2" globby@^11.0.0: version "11.0.1" @@ -4708,6 +4810,14 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -4736,25 +4846,6 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -inquirer@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.1.tgz#13f7980eedc73c689feff3994b109c4e799c6ebb" - integrity sha512-V1FFQ3TIO15det8PijPLFR9M9baSlnRs9nL7zWu1MNVA2T9YVl9ZbrHJhYs7e9X8jeMZ3lr2JH/rdHFgNCBdYw== - dependencies: - ansi-escapes "^4.2.1" - chalk "^2.4.2" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.2.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" @@ -5017,11 +5108,6 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - is-regex@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" @@ -5346,6 +5432,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -5599,13 +5690,13 @@ levelup@^3.0.0: level-iterator-stream "~3.0.0" xtend "~4.0.0" -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" + prelude-ls "^1.2.1" + type-check "~0.4.0" lines-and-columns@^1.1.6: version "1.1.6" @@ -5678,16 +5769,31 @@ lodash.assign@^4.0.3, lodash.assign@^4.0.6: resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.startcase@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" integrity sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg= +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + lodash@^4.17.11, lodash@^4.17.19: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -5994,7 +6100,7 @@ mime@1.6.0, mime@^1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mimic-fn@^2.0.0, mimic-fn@^2.1.0: +mimic-fn@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -6092,7 +6198,7 @@ mkdirp@*, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@0.5.1, mkdirp@^0.5.1: +mkdirp@0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= @@ -6220,11 +6326,6 @@ ms@2.1.2, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - nan@^2.14.0, nan@^2.2.1: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" @@ -6483,24 +6584,17 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - mimic-fn "^2.1.0" - -optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" original-require@1.0.1: version "1.0.1" @@ -6729,6 +6823,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -6872,10 +6971,10 @@ preferred-pm@^3.0.0: path-exists "^4.0.0" which-pm "2.0.0" -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prepend-http@^1.0.1: version "1.0.4" @@ -7207,16 +7306,16 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - regexpp@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -7268,7 +7367,7 @@ require-from-string@^1.1.0: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" integrity sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg= -require-from-string@^2.0.0: +require-from-string@^2.0.0, require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== @@ -7327,14 +7426,6 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -7345,13 +7436,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - rimraf@^2.2.8: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -7393,13 +7477,6 @@ rsvp@^4.8.4: resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= - dependencies: - is-promise "^2.1.0" - run-parallel@^1.1.9: version "1.1.10" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" @@ -7410,13 +7487,6 @@ rustbn.js@~0.2.0: resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== -rxjs@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" - integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== - dependencies: - tslib "^1.9.0" - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -7519,11 +7589,18 @@ semaphore@>=1.0.1, semaphore@^1.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.1.2, semver@^6.3.0: +semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.2.1: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + semver@^7.3.2: version "7.3.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" @@ -7628,11 +7705,23 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -7675,14 +7764,14 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" smartwrap@^1.2.3: version "1.2.5" @@ -8071,16 +8160,11 @@ strip-json-comments@2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -strip-json-comments@3.1.1: +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-json-comments@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== - superagent@^3.7.0: version "3.8.3" resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128" @@ -8157,15 +8241,17 @@ swarm-js@0.1.39: tar "^4.0.2" xhr-request-promise "^0.1.2" -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== +table@^6.0.9: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" tar-stream@^1.5.2: version "1.6.2" @@ -8223,7 +8309,7 @@ throat@^4.0.0, throat@^4.1.0: resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= -through@2, through@^2.3.6, through@^2.3.8: +through@2, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -8364,7 +8450,7 @@ tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.8.1: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== @@ -8420,12 +8506,12 @@ tweetnacl@^1.0.3: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - prelude-ls "~1.1.2" + prelude-ls "^1.2.1" type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" @@ -8442,6 +8528,11 @@ type-fest@^0.13.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -9139,7 +9230,7 @@ which@1.3.1, which@^1.2.9: dependencies: isexe "^2.0.0" -which@2.0.2: +which@2.0.2, which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -9165,7 +9256,7 @@ window-size@^0.2.0: resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" integrity sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU= -word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -9206,13 +9297,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - ws@7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" From 5ed62e43f51e94a941984cffa7200fa0c2eee2dd Mon Sep 17 00:00:00 2001 From: Krzysztof Kaczor Date: Sat, 3 Jul 2021 20:18:08 +0200 Subject: [PATCH 2/2] Add missing changeset --- .changeset/hungry-garlics-turn.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/hungry-garlics-turn.md diff --git a/.changeset/hungry-garlics-turn.md b/.changeset/hungry-garlics-turn.md new file mode 100644 index 000000000..31410b1bd --- /dev/null +++ b/.changeset/hungry-garlics-turn.md @@ -0,0 +1,5 @@ +--- +'@typechain/hardhat': patch +--- + +Ensure that `type-extensions.ts` is always imported