From 5cad9309016053fd02b100be2ca48845d4b3a7ff Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 7 Dec 2021 03:47:56 +0000 Subject: [PATCH 1/7] chore(deps): update eslint packages --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index d7f52ca2c..c62777a32 100644 --- a/package.json +++ b/package.json @@ -234,14 +234,14 @@ "@types/stream-buffers": "3.0.4", "@types/tmp": "0.2.2", "@types/verror": "1.10.5", - "@typescript-eslint/eslint-plugin": "4.33.0", - "@typescript-eslint/parser": "4.33.0", + "@typescript-eslint/eslint-plugin": "5.6.0", + "@typescript-eslint/parser": "5.6.0", "chai": "4.3.4", "chai-exclude": "2.1.0", "coffeescript": "2.6.1", "dependency-lint": "7.1.0", "dirty-chai": "2.0.1", - "eslint": "7.32.0", + "eslint": "8.4.1", "eslint-config-prettier": "8.3.0", "eslint-config-standard-with-typescript": "21.0.1", "eslint-plugin-import": "2.25.3", From c28f61b5f7efd933a11cf88eb863f3f3de195160 Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Tue, 7 Dec 2021 09:16:12 +0100 Subject: [PATCH 2/7] Update eslint configuration - remove plugins which prevent upgrading eslint - update the configuration based on the one from cucumber-expression - update a piece of code to make linting happy Note: some rules have been deactivated to make the update of eslint possible without breaking our build. Those rules may be deactivated later as part of dedicated pull requests. --- .eslintrc.yml | 18 +- package-lock.json | 4003 ++++++++++++++++++++++++-------------------- package.json | 3 +- src/cli/helpers.ts | 10 +- 4 files changed, 2214 insertions(+), 1820 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index e2d833ce5..669fe0987 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -1,8 +1,17 @@ extends: - - standard-with-typescript + - "eslint:recommended" + - "plugin:import/typescript" + - "plugin:@typescript-eslint/eslint-recommended" + - "plugin:@typescript-eslint/recommended" - "plugin:prettier/recommended" +parser: "@typescript-eslint/parser" parserOptions: project: './tsconfig.json' +plugins: + - import + - simple-import-sort + - node + - "@typescript-eslint" rules: prettier/prettier: - error @@ -10,4 +19,9 @@ rules: singleQuote: true semi: false # requires strictNullChecks compiler option, produces many errors with messages objects - '@typescript-eslint/strict-boolean-expressions': off + "@typescript-eslint/strict-boolean-expressions": off + "@typescript-eslint/no-explicit-any": off + "@typescript-eslint/no-inferrable-types": off + "@typescript-eslint/no-empty-function": off + "@typescript-eslint/ban-types": off + "@typescript-eslint/no-unused-vars": off \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index de5e9b1a8..c8a06a5c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,20 +64,19 @@ "@types/stream-buffers": "3.0.4", "@types/tmp": "0.2.2", "@types/verror": "1.10.5", - "@typescript-eslint/eslint-plugin": "4.33.0", - "@typescript-eslint/parser": "4.33.0", + "@typescript-eslint/eslint-plugin": "5.6.0", + "@typescript-eslint/parser": "5.6.0", "chai": "4.3.4", "chai-exclude": "2.1.0", "coffeescript": "2.6.1", "dependency-lint": "7.1.0", "dirty-chai": "2.0.1", - "eslint": "7.32.0", + "eslint": "8.4.1", "eslint-config-prettier": "8.3.0", - "eslint-config-standard-with-typescript": "21.0.1", "eslint-plugin-import": "2.25.3", "eslint-plugin-node": "11.1.0", "eslint-plugin-prettier": "4.0.0", - "eslint-plugin-promise": "5.2.0", + "eslint-plugin-simple-import-sort": "7.0.0", "eslint-plugin-standard": "4.1.0", "express": "4.17.1", "fs-extra": "10.0.0", @@ -101,41 +100,41 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", - "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz", - "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helpers": "^7.14.6", - "@babel/parser": "^7.14.6", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -160,22 +159,13 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5", + "@babel/types": "^7.16.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -183,24 +173,15 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", - "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.16.0", "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "browserslist": "^4.17.5", "semver": "^6.3.0" }, "engines": { @@ -220,141 +201,141 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", - "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", - "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", - "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", "dev": true, "dependencies": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -370,26 +351,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", - "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", "dev": true, "dependencies": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -423,6 +404,30 @@ "node": ">=4" } }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -445,9 +450,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", - "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -457,32 +462,32 @@ } }, "node_modules/@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", - "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -500,12 +505,12 @@ } }, "node_modules/@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -586,6 +591,14 @@ "@cucumber/messages": "^17.1.0" } }, + "node_modules/@cucumber/gherkin-streams/node_modules/commander": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", + "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==", + "engines": { + "node": ">= 12" + } + }, "node_modules/@cucumber/html-formatter": { "version": "17.0.0", "resolved": "https://registry.npmjs.org/@cucumber/html-formatter/-/html-formatter-17.0.0.tgz", @@ -599,6 +612,14 @@ "cucumber-html-formatter": "bin/cucumber-html-formatter.js" } }, + "node_modules/@cucumber/html-formatter/node_modules/commander": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", + "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==", + "engines": { + "node": ">= 12" + } + }, "node_modules/@cucumber/message-streams": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@cucumber/message-streams/-/message-streams-3.0.0.tgz", @@ -634,32 +655,59 @@ "integrity": "sha512-chTnjxV3vryL75N90wJIMdMafXmZoO2JgNJLYpsfcALL2/IQrRiny3vM9DgD5RDCSt1LNloMtb7rGey9YWxCsA==" }, "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", + "debug": "^4.3.2", + "espree": "^9.2.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", + "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.4" }, @@ -668,9 +716,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { @@ -689,6 +737,85 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -812,9 +939,9 @@ } }, "node_modules/@types/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, "dependencies": { "@types/connect": "*", @@ -856,9 +983,9 @@ } }, "node_modules/@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", "dev": true, "dependencies": { "@types/estree": "*", @@ -884,9 +1011,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.24", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", + "version": "4.17.26", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.26.tgz", + "integrity": "sha512-zeu3tpouA043RHxW0gzRxwCHchMgftE8GArRsvYT0ByDMbn19olQHx5jLue0LxWY6iYtXb7rXmuVtSkhy9YZvQ==", "dev": true, "dependencies": { "@types/node": "*", @@ -914,9 +1041,9 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", - "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "node_modules/@types/json5": { @@ -1020,9 +1147,9 @@ } }, "node_modules/@types/sinon": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.2.tgz", - "integrity": "sha512-BHn8Bpkapj8Wdfxvh2jWIUoaYB/9/XhsL0oOvBfRagJtKlSl9NWPcFOz2lRukI9szwGxFtYZCTejJSqsGDbdmw==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.6.tgz", + "integrity": "sha512-6EF+wzMWvBNeGrfP3Nx60hhx+FfwSg1JJBLAAP/IdIUq0EYkqCYf70VT3PhuhPX9eLD+Dp+lNdpb/ZeHG8Yezg==", "dev": true, "dependencies": { "@sinonjs/fake-timers": "^7.1.0" @@ -1080,30 +1207,30 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.6.0.tgz", + "integrity": "sha512-MIbeMy5qfLqtgs1hWd088k1hOuRsN9JrHUPwVVKCD99EOUqScd7SrwoZl4Gso05EAP9w1kvLWUVGJOVpRPkDPA==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", + "@typescript-eslint/experimental-utils": "5.6.0", + "@typescript-eslint/scope-manager": "5.6.0", + "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -1111,30 +1238,21 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", - "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.6.0.tgz", + "integrity": "sha512-VDoRf3Qj7+W3sS/ZBXZh3LBzp0snDLEgvp6qj0vOAIiAPM07bd5ojQ3CTzF/QFl5AKh7Bh1ycgj6lFBJHUt/DA==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.6.0", + "@typescript-eslint/types": "5.6.0", + "@typescript-eslint/typescript-estree": "5.6.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -1144,44 +1262,26 @@ "eslint": "*" } }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.6.0.tgz", + "integrity": "sha512-YVK49NgdUPQ8SpCZaOpiq1kLkYRPMv9U5gcMrywzI8brtwZjr/tG3sZpuHyODt76W/A0SufNjYt9ZOgrC4tLIQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" + "@typescript-eslint/scope-manager": "5.6.0", + "@typescript-eslint/types": "5.6.0", + "@typescript-eslint/typescript-estree": "5.6.0", + "debug": "^4.3.2" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -1190,16 +1290,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", - "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.6.0.tgz", + "integrity": "sha512-1U1G77Hw2jsGWVsO2w6eVCbOg0HZ5WxL/cozVSTfqnL/eB9muhb8THsP0G3w+BB5xAHv9KptwdfYFAUfzcIh4A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" + "@typescript-eslint/types": "5.6.0", + "@typescript-eslint/visitor-keys": "5.6.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -1207,12 +1307,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.6.0.tgz", + "integrity": "sha512-OIZffked7mXv4mXzWU5MgAEbCf9ecNJBKi+Si6/I9PpTaj+cf2x58h2oHW5/P/yTnPkKaayfjhLvx+crnl5ubA==", "dev": true, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -1220,21 +1320,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.6.0.tgz", + "integrity": "sha512-92vK5tQaE81rK7fOmuWMrSQtK1IMonESR+RJR2Tlc7w4o0MeEdjgidY/uO2Gobh7z4Q1hhS94Cr7r021fMVEeA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", + "@typescript-eslint/types": "5.6.0", + "@typescript-eslint/visitor-keys": "5.6.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", "semver": "^7.3.5", "tsutils": "^3.21.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -1247,16 +1347,16 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.6.0.tgz", + "integrity": "sha512-1p7hDp5cpRFUyE3+lvA74egs+RWSgumrBpzBCDzfTFv0aQ7lIeay80yU0hIxgAhwQ6PcasW35kaOCyDOv6O/Ng==", "dev": true, "dependencies": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" + "@typescript-eslint/types": "5.6.0", + "eslint-visitor-keys": "^3.0.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -1411,24 +1511,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/ansi-styles/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ansi-styles/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", @@ -1567,15 +1649,6 @@ "repeat-string": "^1.6.1" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1660,16 +1733,16 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", "escalade": "^3.1.1", - "node-releases": "^1.1.71" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" }, "bin": { "browserslist": "cli.js" @@ -1683,9 +1756,9 @@ } }, "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/builtin-modules": { "version": "3.2.0", @@ -1797,9 +1870,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001245", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz", - "integrity": "sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA==", + "version": "1.0.30001285", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz", + "integrity": "sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==", "dev": true, "funding": { "type": "opencollective", @@ -1846,9 +1919,9 @@ } }, "node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -1861,18 +1934,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", @@ -1903,6 +1964,18 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/class-transformer": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.4.0.tgz", @@ -1957,24 +2030,21 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } }, - "node_modules/colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/colors": { @@ -1986,9 +2056,9 @@ } }, "node_modules/commander": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", - "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "engines": { "node": ">= 12" } @@ -2083,15 +2153,10 @@ "type": "^1.0.1" } }, - "node_modules/d/node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -2149,9 +2214,9 @@ } }, "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "node_modules/default-require-extensions": { @@ -2166,15 +2231,6 @@ "node": ">=8" } }, - "node_modules/default-require-extensions/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -2241,6 +2297,15 @@ "node": ">=6 <7 || >=8" } }, + "node_modules/dependency-lint/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/dependency-lint/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -2283,9 +2348,9 @@ } }, "node_modules/detective-es6": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.0.tgz", - "integrity": "sha512-fSpNY0SLER7/sVgQZ1NxJPwmc9uCTzNgdkQDhAaj8NPYwr7Qji9QBcmbNvtMCnuuOGMuKn3O7jv0An+/WRWJZQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.1.tgz", + "integrity": "sha512-22z7MblxkhsIQGuALeGwCKEfqNy4WmgDGmfJCwdXbfDkVYIiIDmY513hiIWBvX3kCmzvvWE7RR7kAYxs01wwKQ==", "dev": true, "dependencies": { "node-source-walk": "^4.0.0" @@ -2368,9 +2433,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.3.780", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.780.tgz", - "integrity": "sha512-2KQ9OYm9WMUNpAPA/4aerURl3hwRc9tNlpsiEj3Y8Gf7LVf26NzyLIX2v0hSagQwrS9+cWab+28A2GPKDoVNRA==", + "version": "1.4.12", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.12.tgz", + "integrity": "sha512-zjfhG9Us/hIy8AlQ5OzfbR/C4aBv1Dg/ak4GX35CELYlJ4tDAtoEcQivXvyBdqdNQ+R6PhlgQqV8UNPJmhkJog==", "dev": true }, "node_modules/emoji-regex": { @@ -2510,45 +2575,48 @@ "dev": true }, "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.4.1.tgz", + "integrity": "sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==", "dev": true, "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", "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", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.2.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", + "glob-parent": "^6.0.1", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -2556,11 +2624,10 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -2568,7 +2635,7 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2586,50 +2653,6 @@ "eslint": ">=7.0.0" } }, - "node_modules/eslint-config-standard": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz", - "integrity": "sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peerDependencies": { - "eslint": "^7.12.1", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1 || ^5.0.0" - } - }, - "node_modules/eslint-config-standard-with-typescript": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-21.0.1.tgz", - "integrity": "sha512-FeiMHljEJ346Y0I/HpAymNKdrgKEpHpcg/D93FvPHWfCzbT4QyUJba/0FwntZeGLXfUiWDSeKmdJD597d9wwiw==", - "dev": true, - "dependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint-config-standard": "^16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.1", - "eslint": "^7.12.1", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1 || ^5.0.0", - "typescript": "^3.9 || ^4.0.0" - } - }, "node_modules/eslint-formatter-pretty": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-4.1.0.tgz", @@ -2694,85 +2717,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-es": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", @@ -2792,6 +2736,30 @@ "eslint": ">=4.19.1" } }, + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/eslint-plugin-import": { "version": "2.25.3", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", @@ -2866,13 +2834,28 @@ "eslint": ">=5.16.0" } }, - "node_modules/eslint-plugin-node/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "node_modules/eslint-plugin-node/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, "engines": { - "node": ">= 4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" } }, "node_modules/eslint-plugin-node/node_modules/semver": { @@ -2905,16 +2888,13 @@ } } }, - "node_modules/eslint-plugin-promise": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.2.0.tgz", - "integrity": "sha512-SftLb1pUG01QYq2A/hGAWfDRXqYD82zE7j7TopDOyNdU+7SvvoXREls/+PRTY17vUXzXnZA/zfnyKgRH6x4JJw==", + "node_modules/eslint-plugin-simple-import-sort": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", + "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", "dev": true, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, "peerDependencies": { - "eslint": "^7.0.0" + "eslint": ">=5.0.0" } }, "node_modules/eslint-plugin-standard": { @@ -2941,9 +2921,9 @@ } }, "node_modules/eslint-rule-docs": { - "version": "1.1.230", - "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.230.tgz", - "integrity": "sha512-dT3rxxc3TmP57RHm9OYTQhT0N4Yu7bjkBW0hvrGRO5sUhB2ron8KPxMDE6pgO44oHvccrsB6TYlCCM5jccdPHw==", + "version": "1.1.231", + "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.231.tgz", + "integrity": "sha512-egHz9A1WG7b8CS0x1P6P/Rj5FqZOjray/VjpJa14tMZalfRKvpE2ONJ3plCM7+PcinmU4tcmbPLv0VtwzSdLVA==", "dev": true }, "node_modules/eslint-scope": { @@ -2959,40 +2939,25 @@ "node": ">=8.0.0" } }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=6" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, "funding": { "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", @@ -3001,48 +2966,88 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "node_modules/eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz", + "integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==", "dev": true, "dependencies": { - "acorn": "^7.4.0", + "acorn": "^8.6.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "eslint-visitor-keys": "^3.1.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/espree/node_modules/acorn": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", "dev": true, + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": ">=4" + "node": ">=0.4.0" } }, "node_modules/esprima": { @@ -3070,6 +3075,15 @@ "node": ">=0.10" } }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -3082,10 +3096,19 @@ "node": ">=4.0" } }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, "engines": { "node": ">=4.0" @@ -3166,17 +3189,22 @@ "dev": true }, "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", "dependencies": { - "type": "^2.0.0" + "type": "^2.5.0" } }, + "node_modules/ext/node_modules/type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + }, "node_modules/extsprintf": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz", - "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", "engines": [ "node >=0.6.0" ] @@ -3209,6 +3237,18 @@ "node": ">=8" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3222,9 +3262,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", - "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -3250,6 +3290,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -3308,9 +3356,9 @@ "dev": true }, "node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "dependencies": { "commondir": "^1.0.1", @@ -3324,7 +3372,7 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/find-up": { + "node_modules/find-cache-dir/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", @@ -3337,7 +3385,7 @@ "node": ">=8" } }, - "node_modules/find-up/node_modules/locate-path": { + "node_modules/find-cache-dir/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", @@ -3349,7 +3397,7 @@ "node": ">=8" } }, - "node_modules/find-up/node_modules/p-limit": { + "node_modules/find-cache-dir/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", @@ -3364,7 +3412,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-up/node_modules/p-locate": { + "node_modules/find-cache-dir/node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", @@ -3376,6 +3424,48 @@ "node": ">=8" } }, + "node_modules/find-cache-dir/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -3399,9 +3489,9 @@ } }, "node_modules/flatted": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", - "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "node_modules/foreground-child": { @@ -3469,23 +3559,25 @@ "node": ">=12" } }, - "node_modules/fs-extra/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -3564,9 +3656,9 @@ } }, "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3583,21 +3675,21 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3609,18 +3701,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/globby": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", @@ -3641,19 +3721,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, "node_modules/growl": { @@ -3746,6 +3817,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -3808,9 +3888,9 @@ } }, "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true, "engines": { "node": ">= 4" @@ -3832,15 +3912,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -4063,12 +4134,12 @@ } }, "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/is-regex": { @@ -4097,11 +4168,14 @@ } }, "node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-string": { @@ -4186,9 +4260,9 @@ "dev": true }, "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, "engines": { "node": ">=8" @@ -4272,22 +4346,10 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "dependencies": { "debug": "^4.1.1", @@ -4295,13 +4357,22 @@ "source-map": "^0.6.1" }, "engines": { - "node": ">=8" + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", + "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -4376,10 +4447,13 @@ } }, "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -4421,24 +4495,22 @@ } }, "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/lodash": { @@ -4447,12 +4519,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, "node_modules/lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", @@ -4471,12 +4537,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -4544,9 +4604,9 @@ "dev": true }, "node_modules/map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, "engines": { "node": ">=8" @@ -4590,25 +4650,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/normalize-package-data": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", - "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, "engines": { "node": ">=10" @@ -4667,21 +4712,21 @@ } }, "node_modules/mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "dev": true, "dependencies": { - "mime-db": "1.48.0" + "mime-db": "1.51.0" }, "engines": { "node": ">= 0.6" @@ -4727,15 +4772,6 @@ "node": ">= 6" } }, - "node_modules/minimist-options/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mocha": { "version": "9.1.3", "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", @@ -4785,6 +4821,29 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/mocha/node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -4794,18 +4853,6 @@ "node": ">=0.3.1" } }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/mocha/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -4822,6 +4869,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/mocha/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -4834,19 +4901,79 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/ms": { @@ -4959,9 +5086,9 @@ } }, "node_modules/node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, "node_modules/node-source-walk": { @@ -4977,30 +5104,18 @@ } }, "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" + }, + "engines": { + "node": ">=10" } }, "node_modules/normalize-path": { @@ -5064,6 +5179,85 @@ "wrap-ansi": "^6.2.0" } }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/nyc/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/nyc/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -5128,9 +5322,9 @@ } }, "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5218,33 +5412,27 @@ } }, "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "p-try": "^1.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "dependencies": { - "p-limit": "^3.0.2" + "p-limit": "^1.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/p-map": { @@ -5260,12 +5448,12 @@ } }, "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true, "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/package-hash": { @@ -5334,12 +5522,12 @@ } }, "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/path-is-absolute": { @@ -5388,6 +5576,12 @@ "node": "*" } }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -5401,15 +5595,15 @@ } }, "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "dependencies": { - "find-up": "^4.0.0" + "find-up": "^2.1.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/plur": { @@ -5555,26 +5749,6 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/randombytes/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -5631,6 +5805,112 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/read-pkg/node_modules/type-fest": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", @@ -5745,15 +6025,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -5773,11 +6044,12 @@ } }, "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/resolve-pkg": { @@ -5791,6 +6063,14 @@ "node": ">=8" } }, + "node_modules/resolve-pkg/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -5909,22 +6189,6 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/send/node_modules/http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/send/node_modules/ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -6036,9 +6300,9 @@ } }, "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", "dev": true }, "node_modules/sinon": { @@ -6078,18 +6342,6 @@ "node": ">=0.3.1" } }, - "node_modules/sinon/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -6099,23 +6351,6 @@ "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, "node_modules/sorted-object": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.1.tgz", @@ -6123,9 +6358,10 @@ "dev": true }, "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -6139,6 +6375,14 @@ "source-map": "^0.6.0" } }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/spawn-wrap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", @@ -6183,9 +6427,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "node_modules/sprintf-js": { @@ -6235,13 +6479,13 @@ } }, "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" @@ -6274,23 +6518,23 @@ } }, "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/strip-indent": { @@ -6318,18 +6562,15 @@ } }, "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">=8" } }, "node_modules/supports-hyperlinks": { @@ -6345,57 +6586,6 @@ "node": ">=8" } }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -6527,9 +6717,9 @@ } }, "node_modules/ts-node/node_modules/acorn": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", - "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -6539,18 +6729,18 @@ } }, "node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.1.tgz", - "integrity": "sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/tsconfig-paths": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", - "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", @@ -6571,6 +6761,15 @@ "json5": "lib/cli.js" } }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/tsd": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/tsd/-/tsd-0.19.0.tgz", @@ -6591,10 +6790,19 @@ "node": ">=12" } }, + "node_modules/tsd/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -6618,9 +6826,9 @@ "dev": true }, "node_modules/type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" }, "node_modules/type-check": { "version": "0.4.0", @@ -6644,12 +6852,15 @@ } }, "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/type-is": { @@ -6791,16 +7002,16 @@ } }, "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" } }, "node_modules/which": { @@ -6932,9 +7143,9 @@ } }, "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true, "engines": { "node": ">=10" @@ -6956,9 +7167,9 @@ } }, "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", "dev": true, "engines": { "node": ">=10" @@ -6979,6 +7190,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -7003,35 +7223,35 @@ }, "dependencies": { "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", "dev": true, "requires": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.16.0" } }, "@babel/compat-data": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", - "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", "dev": true }, "@babel/core": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz", - "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helpers": "^7.14.6", - "@babel/parser": "^7.14.6", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -7045,43 +7265,29 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true } } }, "@babel/generator": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", - "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", "dev": true, "requires": { - "@babel/types": "^7.14.5", + "@babel/types": "^7.16.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } } }, "@babel/helper-compilation-targets": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", - "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", "dev": true, "requires": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.16.0", "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", + "browserslist": "^4.17.5", "semver": "^6.3.0" }, "dependencies": { @@ -7094,111 +7300,111 @@ } }, "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", - "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-module-transforms": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", - "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/helper-simple-access": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", - "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", "dev": true, "requires": { - "@babel/types": "^7.14.5" + "@babel/types": "^7.16.0" } }, "@babel/helper-validator-identifier": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", - "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", "dev": true }, "@babel/helper-validator-option": { @@ -7208,23 +7414,23 @@ "dev": true }, "@babel/helpers": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", - "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", "dev": true, "requires": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" } }, "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -7249,6 +7455,27 @@ "supports-color": "^5.3.0" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -7267,35 +7494,35 @@ } }, "@babel/parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", - "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", "dev": true }, "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", "dev": true, "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" } }, "@babel/traverse": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", - "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.5", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.7", - "@babel/types": "^7.14.5", + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -7309,12 +7536,12 @@ } }, "@babel/types": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", - "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", "to-fast-properties": "^2.0.0" } }, @@ -7382,6 +7609,11 @@ "@cucumber/message-streams": "^3.0.0", "@cucumber/messages": "^17.1.0" } + }, + "commander": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", + "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==" } } }, @@ -7393,6 +7625,13 @@ "@cucumber/messages": "^17.1.0", "commander": "8.1.0", "source-map-support": "0.5.19" + }, + "dependencies": { + "commander": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", + "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==" + } } }, "@cucumber/message-streams": { @@ -7430,37 +7669,60 @@ "integrity": "sha512-chTnjxV3vryL75N90wJIMdMafXmZoO2JgNJLYpsfcALL2/IQrRiny3vM9DgD5RDCSt1LNloMtb7rGey9YWxCsA==" }, "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", "dev": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", + "debug": "^4.3.2", + "espree": "^9.2.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + } } }, "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", + "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.0", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.4" } }, "@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, "@istanbuljs/load-nyc-config": { @@ -7474,6 +7736,63 @@ "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } } }, "@istanbuljs/schema": { @@ -7580,9 +7899,9 @@ "dev": true }, "@types/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dev": true, "requires": { "@types/connect": "*", @@ -7624,9 +7943,9 @@ } }, "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", "dev": true, "requires": { "@types/estree": "*", @@ -7652,9 +7971,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.24", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", + "version": "4.17.26", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.26.tgz", + "integrity": "sha512-zeu3tpouA043RHxW0gzRxwCHchMgftE8GArRsvYT0ByDMbn19olQHx5jLue0LxWY6iYtXb7rXmuVtSkhy9YZvQ==", "dev": true, "requires": { "@types/node": "*", @@ -7682,9 +8001,9 @@ } }, "@types/json-schema": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", - "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "@types/json5": { @@ -7788,9 +8107,9 @@ } }, "@types/sinon": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.2.tgz", - "integrity": "sha512-BHn8Bpkapj8Wdfxvh2jWIUoaYB/9/XhsL0oOvBfRagJtKlSl9NWPcFOz2lRukI9szwGxFtYZCTejJSqsGDbdmw==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.6.tgz", + "integrity": "sha512-6EF+wzMWvBNeGrfP3Nx60hhx+FfwSg1JJBLAAP/IdIUq0EYkqCYf70VT3PhuhPX9eLD+Dp+lNdpb/ZeHG8Yezg==", "dev": true, "requires": { "@sinonjs/fake-timers": "^7.1.0" @@ -7850,105 +8169,86 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.6.0.tgz", + "integrity": "sha512-MIbeMy5qfLqtgs1hWd088k1hOuRsN9JrHUPwVVKCD99EOUqScd7SrwoZl4Gso05EAP9w1kvLWUVGJOVpRPkDPA==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", + "@typescript-eslint/experimental-utils": "5.6.0", + "@typescript-eslint/scope-manager": "5.6.0", + "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.3.5", "tsutils": "^3.21.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - } } }, "@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", - "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.6.0.tgz", + "integrity": "sha512-VDoRf3Qj7+W3sS/ZBXZh3LBzp0snDLEgvp6qj0vOAIiAPM07bd5ojQ3CTzF/QFl5AKh7Bh1ycgj6lFBJHUt/DA==", "dev": true, "requires": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.6.0", + "@typescript-eslint/types": "5.6.0", + "@typescript-eslint/typescript-estree": "5.6.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - } } }, "@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.6.0.tgz", + "integrity": "sha512-YVK49NgdUPQ8SpCZaOpiq1kLkYRPMv9U5gcMrywzI8brtwZjr/tG3sZpuHyODt76W/A0SufNjYt9ZOgrC4tLIQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" + "@typescript-eslint/scope-manager": "5.6.0", + "@typescript-eslint/types": "5.6.0", + "@typescript-eslint/typescript-estree": "5.6.0", + "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", - "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.6.0.tgz", + "integrity": "sha512-1U1G77Hw2jsGWVsO2w6eVCbOg0HZ5WxL/cozVSTfqnL/eB9muhb8THsP0G3w+BB5xAHv9KptwdfYFAUfzcIh4A==", "dev": true, "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" + "@typescript-eslint/types": "5.6.0", + "@typescript-eslint/visitor-keys": "5.6.0" } }, "@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.6.0.tgz", + "integrity": "sha512-OIZffked7mXv4mXzWU5MgAEbCf9ecNJBKi+Si6/I9PpTaj+cf2x58h2oHW5/P/yTnPkKaayfjhLvx+crnl5ubA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.6.0.tgz", + "integrity": "sha512-92vK5tQaE81rK7fOmuWMrSQtK1IMonESR+RJR2Tlc7w4o0MeEdjgidY/uO2Gobh7z4Q1hhS94Cr7r021fMVEeA==", "dev": true, "requires": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", + "@typescript-eslint/types": "5.6.0", + "@typescript-eslint/visitor-keys": "5.6.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", "semver": "^7.3.5", "tsutils": "^3.21.0" } }, "@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.6.0.tgz", + "integrity": "sha512-1p7hDp5cpRFUyE3+lvA74egs+RWSgumrBpzBCDzfTFv0aQ7lIeay80yU0hIxgAhwQ6PcasW35kaOCyDOv6O/Ng==", "dev": true, "requires": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" + "@typescript-eslint/types": "5.6.0", + "eslint-visitor-keys": "^3.0.0" } }, "@ungap/promise-all-settled": { @@ -8054,23 +8354,6 @@ "dev": true, "requires": { "color-convert": "^2.0.1" - }, - "dependencies": { - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } } }, "any-promise": { @@ -8181,12 +8464,6 @@ "repeat-string": "^1.6.1" } }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -8264,22 +8541,22 @@ "dev": true }, "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", "escalade": "^3.1.1", - "node-releases": "^1.1.71" + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" } }, "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "builtin-modules": { "version": "3.2.0", @@ -8366,9 +8643,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001245", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz", - "integrity": "sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA==", + "version": "1.0.30001285", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001285.tgz", + "integrity": "sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==", "dev": true }, "capital-case": { @@ -8405,24 +8682,13 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "check-error": { @@ -8445,6 +8711,17 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, "class-transformer": { @@ -8486,24 +8763,18 @@ "dev": true }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "colors": { @@ -8512,9 +8783,9 @@ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, "commander": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.1.0.tgz", - "integrity": "sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA==" + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" }, "commondir": { "version": "1.0.1", @@ -8592,19 +8863,12 @@ "requires": { "es5-ext": "^0.10.50", "type": "^1.0.1" - }, - "dependencies": { - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - } } }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" @@ -8644,9 +8908,9 @@ } }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "default-require-extensions": { @@ -8656,14 +8920,6 @@ "dev": true, "requires": { "strip-bom": "^4.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - } } }, "define-properties": { @@ -8720,6 +8976,15 @@ "universalify": "^0.1.0" } }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -8752,9 +9017,9 @@ } }, "detective-es6": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.0.tgz", - "integrity": "sha512-fSpNY0SLER7/sVgQZ1NxJPwmc9uCTzNgdkQDhAaj8NPYwr7Qji9QBcmbNvtMCnuuOGMuKn3O7jv0An+/WRWJZQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.1.tgz", + "integrity": "sha512-22z7MblxkhsIQGuALeGwCKEfqNy4WmgDGmfJCwdXbfDkVYIiIDmY513hiIWBvX3kCmzvvWE7RR7kAYxs01wwKQ==", "dev": true, "requires": { "node-source-walk": "^4.0.0" @@ -8817,9 +9082,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.780", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.780.tgz", - "integrity": "sha512-2KQ9OYm9WMUNpAPA/4aerURl3hwRc9tNlpsiEj3Y8Gf7LVf26NzyLIX2v0hSagQwrS9+cWab+28A2GPKDoVNRA==", + "version": "1.4.12", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.12.tgz", + "integrity": "sha512-zjfhG9Us/hIy8AlQ5OzfbR/C4aBv1Dg/ak4GX35CELYlJ4tDAtoEcQivXvyBdqdNQ+R6PhlgQqV8UNPJmhkJog==", "dev": true }, "emoji-regex": { @@ -8938,42 +9203,42 @@ "dev": true }, "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true }, "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.4.1.tgz", + "integrity": "sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", "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", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.2.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", + "glob-parent": "^6.0.1", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -8981,29 +9246,50 @@ "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^3.1.0", + "regexpp": "^3.2.0", "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "eslint-scope": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" } }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } } } }, @@ -9014,23 +9300,6 @@ "dev": true, "requires": {} }, - "eslint-config-standard": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.3.tgz", - "integrity": "sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==", - "dev": true, - "requires": {} - }, - "eslint-config-standard-with-typescript": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-21.0.1.tgz", - "integrity": "sha512-FeiMHljEJ346Y0I/HpAymNKdrgKEpHpcg/D93FvPHWfCzbT4QyUJba/0FwntZeGLXfUiWDSeKmdJD597d9wwiw==", - "dev": true, - "requires": { - "@typescript-eslint/parser": "^4.0.0", - "eslint-config-standard": "^16.0.0" - } - }, "eslint-formatter-pretty": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-4.1.0.tgz", @@ -9087,64 +9356,6 @@ "requires": { "ms": "^2.1.1" } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } } } }, @@ -9156,6 +9367,23 @@ "requires": { "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "eslint-plugin-import": { @@ -9219,10 +9447,19 @@ "semver": "^6.1.0" }, "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "semver": { @@ -9242,10 +9479,10 @@ "prettier-linter-helpers": "^1.0.0" } }, - "eslint-plugin-promise": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.2.0.tgz", - "integrity": "sha512-SftLb1pUG01QYq2A/hGAWfDRXqYD82zE7j7TopDOyNdU+7SvvoXREls/+PRTY17vUXzXnZA/zfnyKgRH6x4JJw==", + "eslint-plugin-simple-import-sort": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", + "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", "dev": true, "requires": {} }, @@ -9257,9 +9494,9 @@ "requires": {} }, "eslint-rule-docs": { - "version": "1.1.230", - "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.230.tgz", - "integrity": "sha512-dT3rxxc3TmP57RHm9OYTQhT0N4Yu7bjkBW0hvrGRO5sUhB2ron8KPxMDE6pgO44oHvccrsB6TYlCCM5jccdPHw==", + "version": "1.1.231", + "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.231.tgz", + "integrity": "sha512-egHz9A1WG7b8CS0x1P6P/Rj5FqZOjray/VjpJa14tMZalfRKvpE2ONJ3plCM7+PcinmU4tcmbPLv0VtwzSdLVA==", "dev": true }, "eslint-scope": { @@ -9270,54 +9507,46 @@ "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" - }, - "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", "dev": true }, "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz", + "integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==", "dev": true, "requires": { - "acorn": "^7.4.0", + "acorn": "^8.6.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "eslint-visitor-keys": "^3.1.0" }, "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "acorn": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", "dev": true } } @@ -9335,6 +9564,14 @@ "dev": true, "requires": { "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "esrecurse": { @@ -9344,12 +9581,20 @@ "dev": true, "requires": { "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { @@ -9420,17 +9665,24 @@ } }, "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", "requires": { - "type": "^2.0.0" + "type": "^2.5.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + } } }, "extsprintf": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz", - "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==" }, "fast-deep-equal": { "version": "3.1.3", @@ -9455,6 +9707,17 @@ "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, "fast-json-stable-stringify": { @@ -9470,9 +9733,9 @@ "dev": true }, "fastq": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", - "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -9490,6 +9753,13 @@ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "requires": { "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + } } }, "file-entry-cache": { @@ -9543,26 +9813,26 @@ } }, "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" }, "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -9589,9 +9859,39 @@ "requires": { "p-limit": "^2.2.0" } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } } } }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, "flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -9609,9 +9909,9 @@ } }, "flatted": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", - "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, "foreground-child": { @@ -9651,18 +9951,6 @@ "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" - }, - "dependencies": { - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - } } }, "fs.realpath": { @@ -9670,6 +9958,13 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -9727,9 +10022,9 @@ } }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9740,29 +10035,21 @@ } }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "requires": { "type-fest": "^0.20.2" - }, - "dependencies": { - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } } }, "globby": { @@ -9777,20 +10064,12 @@ "ignore": "^5.1.4", "merge2": "^1.3.0", "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - } } }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, "growl": { @@ -9848,6 +10127,14 @@ "requires": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } } }, "he": { @@ -9902,9 +10189,9 @@ } }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true }, "import-fresh": { @@ -9915,14 +10202,6 @@ "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } } }, "imurmurhash": { @@ -10078,9 +10357,9 @@ } }, "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, "is-regex": { @@ -10100,9 +10379,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" }, "is-string": { "version": "1.0.7", @@ -10162,9 +10441,9 @@ "dev": true }, "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, "istanbul-lib-hook": { @@ -10228,34 +10507,31 @@ "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", "supports-color": "^7.1.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", + "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -10312,12 +10588,13 @@ } }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, "just-extend": { @@ -10351,18 +10628,19 @@ } }, "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^5.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -10371,12 +10649,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", @@ -10395,12 +10667,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -10452,9 +10718,9 @@ "dev": true }, "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true }, "media-typer": { @@ -10483,18 +10749,6 @@ "yargs-parser": "^20.2.3" }, "dependencies": { - "normalize-package-data": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", - "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, "type-fest": { "version": "0.18.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", @@ -10538,18 +10792,18 @@ "dev": true }, "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "dev": true }, "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "dev": true, "requires": { - "mime-db": "1.48.0" + "mime-db": "1.51.0" } }, "min-indent": { @@ -10581,14 +10835,6 @@ "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", "kind-of": "^6.0.3" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - } } }, "mocha": { @@ -10629,18 +10875,29 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -10651,6 +10908,20 @@ "path-exists": "^4.0.0" } }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -10660,17 +10931,53 @@ "argparse": "^2.0.1" } }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -10771,9 +11078,9 @@ } }, "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, "node-source-walk": { @@ -10786,29 +11093,15 @@ } }, "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } } }, "normalize-path": { @@ -10858,11 +11151,66 @@ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -10917,9 +11265,9 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", "dev": true }, "object-keys": { @@ -10983,21 +11331,21 @@ } }, "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "yocto-queue": "^0.1.0" + "p-try": "^1.0.0" } }, "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^3.0.2" + "p-limit": "^1.1.0" } }, "p-map": { @@ -11010,9 +11358,9 @@ } }, "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "package-hash": { @@ -11063,9 +11411,9 @@ "dev": true }, "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { @@ -11102,6 +11450,12 @@ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", @@ -11109,12 +11463,12 @@ "dev": true }, "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^4.0.0" + "find-up": "^2.1.0" } }, "plur": { @@ -11208,14 +11562,6 @@ "dev": true, "requires": { "safe-buffer": "^5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, "range-parser": { @@ -11248,6 +11594,30 @@ "type-fest": "^0.6.0" }, "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, "type-fest": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", @@ -11265,6 +11635,63 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } } }, "readdirp": { @@ -11345,12 +11772,6 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -11367,9 +11788,10 @@ } }, "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true }, "resolve-pkg": { "version": "2.0.0", @@ -11377,6 +11799,13 @@ "integrity": "sha512-+1lzwXehGCXSeryaISr6WujZzowloigEofRB+dj75y9RRa/obVcYgbHJd53tdYw8pvZj8GojXaaENws8Ktw/hQ==", "requires": { "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + } } }, "reusify": { @@ -11466,19 +11895,6 @@ } } }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -11568,9 +11984,9 @@ } }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", "dev": true }, "sinon": { @@ -11592,15 +12008,6 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } } } }, @@ -11617,17 +12024,6 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, "sorted-object": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.1.tgz", @@ -11635,9 +12031,10 @@ "dev": true }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true }, "source-map-support": { "version": "0.5.19", @@ -11646,6 +12043,13 @@ "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } } }, "spawn-wrap": { @@ -11689,9 +12093,9 @@ } }, "spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "sprintf-js": { @@ -11732,13 +12136,13 @@ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==" }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "string.prototype.trimend": { @@ -11762,17 +12166,17 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, "strip-indent": { @@ -11791,9 +12195,9 @@ "dev": true }, "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -11807,51 +12211,6 @@ "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" - }, - "dependencies": { - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } } }, "test-exclude": { @@ -11943,23 +12302,23 @@ }, "dependencies": { "acorn": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", - "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", "dev": true }, "acorn-walk": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.1.tgz", - "integrity": "sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true } } }, "tsconfig-paths": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", - "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -11976,6 +12335,12 @@ "requires": { "minimist": "^1.2.0" } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true } } }, @@ -11991,12 +12356,20 @@ "meow": "^9.0.0", "path-exists": "^4.0.0", "read-pkg-up": "^7.0.0" + }, + "dependencies": { + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + } } }, "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tsutils": { "version": "3.21.0", @@ -12016,9 +12389,9 @@ } }, "type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" }, "type-check": { "version": "0.4.0", @@ -12036,9 +12409,9 @@ "dev": true }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, "type-is": { @@ -12152,9 +12525,9 @@ "dev": true }, "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -12263,9 +12636,9 @@ } }, "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true }, "yargs-unparser": { @@ -12281,9 +12654,9 @@ }, "dependencies": { "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", "dev": true }, "decamelize": { @@ -12291,6 +12664,12 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true } } }, diff --git a/package.json b/package.json index c62777a32..803f95255 100644 --- a/package.json +++ b/package.json @@ -243,12 +243,11 @@ "dirty-chai": "2.0.1", "eslint": "8.4.1", "eslint-config-prettier": "8.3.0", - "eslint-config-standard-with-typescript": "21.0.1", "eslint-plugin-import": "2.25.3", "eslint-plugin-node": "11.1.0", "eslint-plugin-prettier": "4.0.0", - "eslint-plugin-promise": "5.2.0", "eslint-plugin-standard": "4.1.0", + "eslint-plugin-simple-import-sort": "7.0.0", "express": "4.17.1", "fs-extra": "10.0.0", "mocha": "9.1.3", diff --git a/src/cli/helpers.ts b/src/cli/helpers.ts index a0a326399..9c53f9168 100644 --- a/src/cli/helpers.ts +++ b/src/cli/helpers.ts @@ -85,16 +85,18 @@ export async function parseGherkinMessageStream({ // Orders the pickleIds in place - morphs input export function orderPickleIds(pickleIds: string[], order: string): void { - let [type, seed] = OptionSplitter.split(order) + const [type, seed] = OptionSplitter.split(order) switch (type) { case 'defined': break case 'random': if (seed === '') { - seed = Math.floor(Math.random() * 1000 * 1000).toString() - console.warn(`Random order using seed: ${seed}`) + const newSeed = Math.floor(Math.random() * 1000 * 1000).toString() + console.warn(`Random order using seed: ${newSeed}`) + shuffle(pickleIds, newSeed) + } else { + shuffle(pickleIds, seed) } - shuffle(pickleIds, seed) break default: throw new Error( From a0075e73cd735942e03cb99eda5b73c53a4eb31a Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Tue, 7 Dec 2021 09:32:42 +0100 Subject: [PATCH 3/7] Activate eslint-plugin-simple-import-sort --- .eslintrc.yml | 4 +- compatibility/cck_spec.ts | 13 ++--- .../features/attachments/attachments.ts | 5 +- .../features/data-tables/data-tables.ts | 3 +- .../examples-tables/examples-tables.ts | 3 +- compatibility/features/hooks/hooks.ts | 3 +- compatibility/features/markdown/markdown.ts | 3 +- compatibility/features/minimal/minimal.ts | 1 + .../parameter-types/parameter-types.ts | 3 +- compatibility/features/rules/rules.ts | 3 +- features/step_definitions/cli_steps.ts | 7 +-- features/step_definitions/file_steps.ts | 9 ++-- features/step_definitions/formatter_steps.ts | 7 +-- features/step_definitions/message_steps.ts | 7 +-- .../step_definitions/report_server_steps.ts | 7 +-- features/step_definitions/usage_json_steps.ts | 5 +- features/support/formatter_output_helpers.ts | 13 ++--- features/support/helpers.ts | 3 +- features/support/hooks.ts | 7 +-- features/support/message_helpers.ts | 9 ++-- ...warn_user_about_enabling_developer_mode.ts | 2 +- features/support/world.ts | 17 ++++--- src/cli/argv_parser.ts | 5 +- src/cli/configuration_builder.ts | 13 ++--- src/cli/configuration_builder_spec.ts | 5 +- src/cli/helpers.ts | 23 ++++----- src/cli/helpers_spec.ts | 35 ++++++------- src/cli/i18n.ts | 2 +- src/cli/index.ts | 49 ++++++++++--------- src/cli/option_splitter_spec.ts | 3 +- src/cli/profile_loader.ts | 1 + src/cli/profile_loader_spec.ts | 5 +- src/cli/publish_banner.ts | 2 +- src/cli/run.ts | 3 +- src/formatter/builder.ts | 19 +++---- src/formatter/get_color_fns.ts | 2 +- src/formatter/helpers/event_data_collector.ts | 3 +- src/formatter/helpers/formatters.ts | 2 +- .../helpers/gherkin_document_parser.ts | 1 + .../helpers/gherkin_document_parser_spec.ts | 13 ++--- src/formatter/helpers/index.ts | 6 +-- src/formatter/helpers/issue_helpers.ts | 7 +-- src/formatter/helpers/issue_helpers_spec.ts | 9 ++-- src/formatter/helpers/keyword_type.ts | 1 + src/formatter/helpers/keyword_type_spec.ts | 3 +- src/formatter/helpers/location_helpers.ts | 3 +- src/formatter/helpers/pickle_parser.ts | 3 +- .../helpers/step_argument_formatter.ts | 3 +- src/formatter/helpers/summary_helpers.ts | 5 +- src/formatter/helpers/summary_helpers_spec.ts | 15 +++--- .../helpers/test_case_attempt_formatter.ts | 15 +++--- .../helpers/test_case_attempt_parser.ts | 19 +++---- .../helpers/test_case_attempt_parser_spec.ts | 13 ++--- src/formatter/helpers/usage_helpers/index.ts | 5 +- .../helpers/usage_helpers/index_spec.ts | 5 +- src/formatter/html_formatter.ts | 7 +-- src/formatter/http_stream.ts | 5 +- src/formatter/http_stream_spec.ts | 5 +- src/formatter/index.ts | 13 ++--- src/formatter/json_formatter.ts | 9 ++-- src/formatter/json_formatter_spec.ts | 9 ++-- src/formatter/message_formatter.ts | 3 +- src/formatter/progress_bar_formatter.ts | 9 ++-- src/formatter/progress_bar_formatter_spec.ts | 25 +++++----- src/formatter/progress_formatter.ts | 5 +- src/formatter/progress_formatter_spec.ts | 9 ++-- src/formatter/rerun_formatter.ts | 7 +-- src/formatter/rerun_formatter_spec.ts | 5 +- src/formatter/snippets_formatter.ts | 5 +- .../step_definition_snippet_builder/index.ts | 7 +-- .../index_spec.ts | 9 ++-- .../javascript_snippet_syntax_spec.ts | 11 +++-- src/formatter/summary_formatter.ts | 9 ++-- src/formatter/summary_formatter_spec.ts | 9 ++-- src/formatter/usage_formatter.ts | 7 +-- src/formatter/usage_formatter_spec.ts | 9 ++-- src/formatter/usage_json_formatter.ts | 7 +-- src/formatter/usage_json_formatter_spec.ts | 7 +-- src/index.ts | 18 +++---- src/models/data_table_spec.ts | 5 +- src/models/definition.ts | 3 +- src/models/step_definition.ts | 7 +-- src/models/test_case_hook_definition.ts | 3 +- src/models/test_case_hook_definition_spec.ts | 5 +- src/models/test_step_hook_definition.ts | 7 +-- src/models/test_step_hook_definition_spec.ts | 5 +- src/pickle_filter.ts | 5 +- src/pickle_filter_spec.ts | 5 +- src/runtime/assemble_test_cases.ts | 5 +- src/runtime/assemble_test_cases_spec.ts | 13 ++--- src/runtime/attachment_manager/index.ts | 3 +- src/runtime/attachment_manager/index_spec.ts | 5 +- src/runtime/helpers.ts | 7 +-- src/runtime/helpers_spec.ts | 7 +-- src/runtime/index.ts | 17 ++++--- src/runtime/parallel/command_types.ts | 1 + src/runtime/parallel/coordinator.ts | 15 +++--- src/runtime/parallel/run_worker.ts | 3 +- src/runtime/parallel/worker.ts | 31 ++++++------ src/runtime/step_runner.ts | 7 +-- src/runtime/stopwatch.ts | 2 +- src/runtime/stopwatch_spec.ts | 5 +- src/runtime/test_case_runner.ts | 15 +++--- src/runtime/test_case_runner_spec.ts | 19 +++---- src/stack_trace_filter.ts | 3 +- src/step_arguments.ts | 3 +- .../build_parameter_type.ts | 1 + .../get_definition_line_and_uri.ts | 5 +- .../get_definition_line_and_uri_spec.ts | 3 +- src/support_code_library_builder/index.ts | 28 +++++------ .../index_spec.ts | 9 ++-- src/support_code_library_builder/types.ts | 7 +-- src/time.ts | 2 +- src/time_spec.ts | 3 +- src/user_code_runner.ts | 3 +- src/user_code_runner_spec.ts | 5 +- test/fake_report_server.ts | 5 +- test/fixtures/json_formatter_steps.ts | 5 +- test/fixtures/steps.ts | 2 +- test/fixtures/usage_steps.ts | 5 +- test/formatter_helpers.ts | 23 ++++----- test/gherkin_helpers.ts | 7 +-- test/runtime_helpers.ts | 3 +- test/test_helper.ts | 2 +- 124 files changed, 539 insertions(+), 426 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 669fe0987..1855f4c79 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -24,4 +24,6 @@ rules: "@typescript-eslint/no-inferrable-types": off "@typescript-eslint/no-empty-function": off "@typescript-eslint/ban-types": off - "@typescript-eslint/no-unused-vars": off \ No newline at end of file + "@typescript-eslint/no-unused-vars": off + "simple-import-sort/imports": "error" + "simple-import-sort/exports": "error" \ No newline at end of file diff --git a/compatibility/cck_spec.ts b/compatibility/cck_spec.ts index 0f5f0dbce..8f4203a6d 100644 --- a/compatibility/cck_spec.ts +++ b/compatibility/cck_spec.ts @@ -1,19 +1,20 @@ -import { describe, it } from 'mocha' +import * as messageStreams from '@cucumber/message-streams' +import * as messages from '@cucumber/messages' import { config, expect, use } from 'chai' import chaiExclude from 'chai-exclude' -import glob from 'glob' import fs from 'fs' +import glob from 'glob' +import { describe, it } from 'mocha' import path from 'path' import { PassThrough, pipeline, Writable } from 'stream' -import { Cli } from '../src' import toString from 'stream-to-string' +import util from 'util' + import { ignorableKeys, normalizeMessageOutput, } from '../features/support/formatter_output_helpers' -import * as messages from '@cucumber/messages' -import * as messageStreams from '@cucumber/message-streams' -import util from 'util' +import { Cli } from '../src' const asyncPipeline = util.promisify(pipeline) const PROJECT_PATH = path.join(__dirname, '..') diff --git a/compatibility/features/attachments/attachments.ts b/compatibility/features/attachments/attachments.ts index 4d130baa4..ff3ed40fc 100644 --- a/compatibility/features/attachments/attachments.ts +++ b/compatibility/features/attachments/attachments.ts @@ -1,7 +1,8 @@ -import { Before, When, World } from '../../../src' -import { ReadableStreamBuffer } from 'stream-buffers' import fs from 'fs' import path from 'path' +import { ReadableStreamBuffer } from 'stream-buffers' + +import { Before, When, World } from '../../../src' Before((): void => undefined) diff --git a/compatibility/features/data-tables/data-tables.ts b/compatibility/features/data-tables/data-tables.ts index e901273fa..72064d75a 100644 --- a/compatibility/features/data-tables/data-tables.ts +++ b/compatibility/features/data-tables/data-tables.ts @@ -1,6 +1,7 @@ -import { When, Then, DataTable } from '../../../src' import { expect } from 'chai' +import { DataTable, Then, When } from '../../../src' + When( 'the following table is transposed:', function (this: any, table: DataTable) { diff --git a/compatibility/features/examples-tables/examples-tables.ts b/compatibility/features/examples-tables/examples-tables.ts index e259bd958..e8c6a8295 100644 --- a/compatibility/features/examples-tables/examples-tables.ts +++ b/compatibility/features/examples-tables/examples-tables.ts @@ -1,5 +1,6 @@ import assert from 'assert' -import { Given, When, Then } from '../../../src' + +import { Given, Then, When } from '../../../src' Given('there are {int} cucumbers', function (this: any, initialCount: number) { this.count = initialCount diff --git a/compatibility/features/hooks/hooks.ts b/compatibility/features/hooks/hooks.ts index 1ce001c6f..8ffdd41aa 100644 --- a/compatibility/features/hooks/hooks.ts +++ b/compatibility/features/hooks/hooks.ts @@ -1,7 +1,8 @@ -import { When, Before, After, World } from '../../../src' import fs from 'fs' import path from 'path' +import { After, Before, When, World } from '../../../src' + Before(function () { // no-op }) diff --git a/compatibility/features/markdown/markdown.ts b/compatibility/features/markdown/markdown.ts index 8731e3682..c1dd4c941 100644 --- a/compatibility/features/markdown/markdown.ts +++ b/compatibility/features/markdown/markdown.ts @@ -1,5 +1,6 @@ import assert from 'assert' -import { Given, DataTable, Then, When, World } from '../../../src' + +import { DataTable, Given, Then, When, World } from '../../../src' Given('some TypeScript code:', function (dataTable: DataTable) { assert(dataTable) diff --git a/compatibility/features/minimal/minimal.ts b/compatibility/features/minimal/minimal.ts index bccc4f289..0f726e893 100644 --- a/compatibility/features/minimal/minimal.ts +++ b/compatibility/features/minimal/minimal.ts @@ -1,4 +1,5 @@ import assert from 'assert' + import { Given } from '../../../src' Given('I have {int} cukes in my belly', function (cukeCount: number) { diff --git a/compatibility/features/parameter-types/parameter-types.ts b/compatibility/features/parameter-types/parameter-types.ts index 8a5a57ed1..0147362c2 100644 --- a/compatibility/features/parameter-types/parameter-types.ts +++ b/compatibility/features/parameter-types/parameter-types.ts @@ -1,6 +1,7 @@ -import { Given, defineParameterType } from '../../../src' import { expect } from 'chai' +import { defineParameterType, Given } from '../../../src' + class Flight { constructor(public readonly from: string, public readonly to: string) {} } diff --git a/compatibility/features/rules/rules.ts b/compatibility/features/rules/rules.ts index 629a15b34..3b90e0ef7 100644 --- a/compatibility/features/rules/rules.ts +++ b/compatibility/features/rules/rules.ts @@ -1,5 +1,6 @@ import assert from 'assert' -import { Given, When, Then } from '../../../src' + +import { Given, Then, When } from '../../../src' Given( 'there are {int} {float} coins inside', diff --git a/features/step_definitions/cli_steps.ts b/features/step_definitions/cli_steps.ts index 3735f1866..432bee228 100644 --- a/features/step_definitions/cli_steps.ts +++ b/features/step_definitions/cli_steps.ts @@ -1,13 +1,14 @@ -import { DataTable, Then, When } from '../../' import { expect } from 'chai' -import { normalizeText } from '../support/helpers' -import stringArgv from 'string-argv' import Mustache from 'mustache' +import stringArgv from 'string-argv' + +import { DataTable, Then, When } from '../../' import { doesHaveValue, doesNotHaveValue, valueOrDefault, } from '../../src/value_checker' +import { normalizeText } from '../support/helpers' import { World } from '../support/world' const { version } = require('../../package.json') // eslint-disable-line @typescript-eslint/no-var-requires diff --git a/features/step_definitions/file_steps.ts b/features/step_definitions/file_steps.ts index e671ac05c..ea667e09e 100644 --- a/features/step_definitions/file_steps.ts +++ b/features/step_definitions/file_steps.ts @@ -1,10 +1,11 @@ -import { Given, Then } from '../../' import { expect } from 'chai' -import { normalizeText } from '../support/helpers' -import fs from 'mz/fs' import fsExtra from 'fs-extra' -import path from 'path' import Mustache from 'mustache' +import fs from 'mz/fs' +import path from 'path' + +import { Given, Then } from '../../' +import { normalizeText } from '../support/helpers' import { World } from '../support/world' Given( diff --git a/features/step_definitions/formatter_steps.ts b/features/step_definitions/formatter_steps.ts index f4bc18b7a..667e1cd40 100644 --- a/features/step_definitions/formatter_steps.ts +++ b/features/step_definitions/formatter_steps.ts @@ -1,14 +1,15 @@ -import { Then } from '../../' import { expect, use } from 'chai' import chaiExclude from 'chai-exclude' +import fs from 'mz/fs' +import path from 'path' + +import { Then } from '../../' import { ignorableKeys, normalizeJsonOutput, normalizeMessageOutput, stripMetaMessages, } from '../support/formatter_output_helpers' -import fs from 'mz/fs' -import path from 'path' import { World } from '../support/world' use(chaiExclude) diff --git a/features/step_definitions/message_steps.ts b/features/step_definitions/message_steps.ts index b4b7c0eb2..9712b73c2 100644 --- a/features/step_definitions/message_steps.ts +++ b/features/step_definitions/message_steps.ts @@ -1,5 +1,8 @@ -import { Then } from '../../' +import * as messages from '@cucumber/messages' import { expect } from 'chai' +import semver from 'semver' + +import { Then } from '../../' import DataTable from '../../src/models/data_table' import { getPickleNamesInOrderOfExecution, @@ -9,9 +12,7 @@ import { getTestStepAttachmentsForStep, getTestStepResults, } from '../support/message_helpers' -import * as messages from '@cucumber/messages' import { World } from '../support/world' -import semver from 'semver' const ENCODING_MAP: { [key: string]: messages.AttachmentContentEncoding } = { IDENTITY: messages.AttachmentContentEncoding.IDENTITY, diff --git a/features/step_definitions/report_server_steps.ts b/features/step_definitions/report_server_steps.ts index 2a675c436..3c89c88a5 100644 --- a/features/step_definitions/report_server_steps.ts +++ b/features/step_definitions/report_server_steps.ts @@ -1,9 +1,10 @@ -import { Given, Then, DataTable } from '../..' -import { World } from '../support/world' +import assert from 'assert' import { expect } from 'chai' import { URL } from 'url' + +import { DataTable, Given, Then } from '../..' import FakeReportServer from '../../test/fake_report_server' -import assert from 'assert' +import { World } from '../support/world' Given( 'a report server is running on {string}', diff --git a/features/step_definitions/usage_json_steps.ts b/features/step_definitions/usage_json_steps.ts index 1a559d1d9..c1e0b1860 100644 --- a/features/step_definitions/usage_json_steps.ts +++ b/features/step_definitions/usage_json_steps.ts @@ -1,8 +1,9 @@ -import { DataTable, Then } from '../../' import { expect } from 'chai' import path from 'path' -import { World } from '../support/world' + +import { DataTable, Then } from '../../' import { IUsage } from '../../src/formatter/helpers/usage_helpers' +import { World } from '../support/world' Then('it outputs the usage data:', function (this: World, table: DataTable) { const usageData: IUsage[] = JSON.parse(this.lastRun.output) diff --git a/features/support/formatter_output_helpers.ts b/features/support/formatter_output_helpers.ts index f33da9ff3..4b6c2a798 100644 --- a/features/support/formatter_output_helpers.ts +++ b/features/support/formatter_output_helpers.ts @@ -1,14 +1,15 @@ -import { - doesHaveValue, - doesNotHaveValue, - valueOrDefault, -} from '../../src/value_checker' +import * as messages from '@cucumber/messages' + import { IJsonFeature, IJsonScenario, IJsonStep, } from '../../src/formatter/json_formatter' -import * as messages from '@cucumber/messages' +import { + doesHaveValue, + doesNotHaveValue, + valueOrDefault, +} from '../../src/value_checker' // Converting windows stack trace to posix and removing cwd // C:\\project\\path\\features\\support/code.js diff --git a/features/support/helpers.ts b/features/support/helpers.ts index a17b1dc57..67ea4ac22 100644 --- a/features/support/helpers.ts +++ b/features/support/helpers.ts @@ -1,5 +1,6 @@ -import path from 'path' import figures from 'figures' +import path from 'path' + import { normalizeSummaryDuration } from '../../test/formatter_helpers' export function normalizeText(text: string): string { diff --git a/features/support/hooks.ts b/features/support/hooks.ts index 686822fbf..7b082d6e5 100644 --- a/features/support/hooks.ts +++ b/features/support/hooks.ts @@ -1,12 +1,13 @@ -import { After, Before, formatterHelpers } from '../../' import fs from 'fs' import fsExtra from 'fs-extra' import path from 'path' import tmp from 'tmp' -import { doesHaveValue } from '../../src/value_checker' -import { World } from './world' + +import { After, Before, formatterHelpers } from '../../' import { ITestCaseHookParameter } from '../../src/support_code_library_builder/types' +import { doesHaveValue } from '../../src/value_checker' import { warnUserAboutEnablingDeveloperMode } from './warn_user_about_enabling_developer_mode' +import { World } from './world' const projectPath = path.join(__dirname, '..', '..') diff --git a/features/support/message_helpers.ts b/features/support/message_helpers.ts index 8fd545675..5ebed27d4 100644 --- a/features/support/message_helpers.ts +++ b/features/support/message_helpers.ts @@ -1,13 +1,14 @@ +import * as messages from '@cucumber/messages' +import { getWorstTestStepResult } from '@cucumber/messages' +import { Query } from '@cucumber/query' +import util from 'util' + import { getGherkinStepMap } from '../../src/formatter/helpers/gherkin_document_parser' import { getPickleStepMap, getStepKeyword, } from '../../src/formatter/helpers/pickle_parser' -import util from 'util' -import * as messages from '@cucumber/messages' -import { Query } from '@cucumber/query' import { doesHaveValue, doesNotHaveValue } from '../../src/value_checker' -import { getWorstTestStepResult } from '@cucumber/messages' export interface IStepTextAndResult { text: string diff --git a/features/support/warn_user_about_enabling_developer_mode.ts b/features/support/warn_user_about_enabling_developer_mode.ts index 9afcd37a7..da9ee6c39 100644 --- a/features/support/warn_user_about_enabling_developer_mode.ts +++ b/features/support/warn_user_about_enabling_developer_mode.ts @@ -1,5 +1,5 @@ -import { reindent } from 'reindent-template-literals' import colors from 'colors/safe' +import { reindent } from 'reindent-template-literals' export function warnUserAboutEnablingDeveloperMode(error: any): void { if (!(error?.code === 'EPERM')) { diff --git a/features/support/world.ts b/features/support/world.ts index 6b908df7a..66b02e485 100644 --- a/features/support/world.ts +++ b/features/support/world.ts @@ -1,17 +1,18 @@ -import { Cli, setWorldConstructor } from '../../' -import { execFile } from 'child_process' +import * as messageStreams from '@cucumber/message-streams' +import * as messages from '@cucumber/messages' import { expect } from 'chai' -import toString from 'stream-to-string' -import { PassThrough, pipeline, Writable } from 'stream' +import { execFile } from 'child_process' import colors from 'colors/safe' import fs from 'fs' import path from 'path' +import { PassThrough, pipeline, Writable } from 'stream' +import toString from 'stream-to-string' +import util from 'util' import VError from 'verror' -import * as messages from '@cucumber/messages' -import * as messageStreams from '@cucumber/message-streams' -import FakeReportServer from '../../test/fake_report_server' + +import { Cli, setWorldConstructor } from '../../' import { doesHaveValue } from '../../src/value_checker' -import util from 'util' +import FakeReportServer from '../../test/fake_report_server' const asyncPipeline = util.promisify(pipeline) diff --git a/src/cli/argv_parser.ts b/src/cli/argv_parser.ts index 0519a7a1d..11588e87d 100644 --- a/src/cli/argv_parser.ts +++ b/src/cli/argv_parser.ts @@ -1,8 +1,9 @@ +import { dialects } from '@cucumber/gherkin' import { Command } from 'commander' import path from 'path' -import { dialects } from '@cucumber/gherkin' -import { SnippetInterface } from '../formatter/step_definition_snippet_builder/snippet_syntax' + import Formatters from '../formatter/helpers/formatters' +import { SnippetInterface } from '../formatter/step_definition_snippet_builder/snippet_syntax' // Using require instead of import so compiled typescript will have the desired folder structure const { version } = require('../../package.json') // eslint-disable-line @typescript-eslint/no-var-requires diff --git a/src/cli/configuration_builder.ts b/src/cli/configuration_builder.ts index 384a3da67..9a550f972 100644 --- a/src/cli/configuration_builder.ts +++ b/src/cli/configuration_builder.ts @@ -1,15 +1,16 @@ -import ArgvParser, { - IParsedArgvFormatOptions, - IParsedArgvOptions, -} from './argv_parser' +import glob from 'glob' import fs from 'mz/fs' import path from 'path' -import OptionSplitter from './option_splitter' -import glob from 'glob' import { promisify } from 'util' + import { IPickleFilterOptions } from '../pickle_filter' import { IRuntimeOptions } from '../runtime' import { valueOrDefault } from '../value_checker' +import ArgvParser, { + IParsedArgvFormatOptions, + IParsedArgvOptions, +} from './argv_parser' +import OptionSplitter from './option_splitter' export interface IConfigurationFormat { outputTo: string diff --git a/src/cli/configuration_builder_spec.ts b/src/cli/configuration_builder_spec.ts index b2b8a0111..db16493d6 100644 --- a/src/cli/configuration_builder_spec.ts +++ b/src/cli/configuration_builder_spec.ts @@ -1,11 +1,12 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' -import ConfigurationBuilder from './configuration_builder' import fsExtra from 'fs-extra' +import { describe, it } from 'mocha' import path from 'path' import tmp, { DirOptions } from 'tmp' import { promisify } from 'util' + import { SnippetInterface } from '../formatter/step_definition_snippet_builder/snippet_syntax' +import ConfigurationBuilder from './configuration_builder' async function buildTestWorkingDirectory(): Promise { const cwd = await promisify(tmp.dir)({ diff --git a/src/cli/helpers.ts b/src/cli/helpers.ts index 9c53f9168..e9afb887a 100644 --- a/src/cli/helpers.ts +++ b/src/cli/helpers.ts @@ -1,19 +1,20 @@ -import ArgvParser from './argv_parser' -import ProfileLoader from './profile_loader' -import shuffle from 'knuth-shuffle-seeded' -import { EventEmitter } from 'events' -import PickleFilter from '../pickle_filter' -import { EventDataCollector } from '../formatter/helpers' -import { doesHaveValue } from '../value_checker' -import OptionSplitter from './option_splitter' -import { Readable } from 'stream' +import createMeta from '@cucumber/create-meta' import { IdGenerator } from '@cucumber/messages' import * as messages from '@cucumber/messages' -import createMeta from '@cucumber/create-meta' -import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import { EventEmitter } from 'events' +import shuffle from 'knuth-shuffle-seeded' +import { Readable } from 'stream' + +import { EventDataCollector } from '../formatter/helpers' import TestCaseHookDefinition from '../models/test_case_hook_definition' import TestRunHookDefinition from '../models/test_run_hook_definition' +import PickleFilter from '../pickle_filter' import { builtinParameterTypes } from '../support_code_library_builder' +import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import { doesHaveValue } from '../value_checker' +import ArgvParser from './argv_parser' +import OptionSplitter from './option_splitter' +import ProfileLoader from './profile_loader' export interface IGetExpandedArgvRequest { argv: string[] diff --git a/src/cli/helpers_spec.ts b/src/cli/helpers_spec.ts index f4200b536..2477c0583 100644 --- a/src/cli/helpers_spec.ts +++ b/src/cli/helpers_spec.ts @@ -1,28 +1,29 @@ -import { describe, it } from 'mocha' -import { expect } from 'chai' -import { - emitMetaMessage, - emitSupportCodeMessages, - isJavaScript, - parseGherkinMessageStream, -} from './helpers' -import { EventEmitter } from 'events' -import PickleFilter from '../pickle_filter' -import * as messages from '@cucumber/messages' -import { IdGenerator, SourceMediaType } from '@cucumber/messages' -import { EventDataCollector } from '../formatter/helpers' -import { GherkinStreams } from '@cucumber/gherkin-streams' -import { Readable } from 'stream' -import StepDefinition from '../models/step_definition' import { CucumberExpression, ParameterType, ParameterTypeRegistry, RegularExpression, } from '@cucumber/cucumber-expressions' -import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import { GherkinStreams } from '@cucumber/gherkin-streams' +import * as messages from '@cucumber/messages' +import { IdGenerator, SourceMediaType } from '@cucumber/messages' +import { expect } from 'chai' +import { EventEmitter } from 'events' +import { describe, it } from 'mocha' +import { Readable } from 'stream' + +import { EventDataCollector } from '../formatter/helpers' +import StepDefinition from '../models/step_definition' import TestCaseHookDefinition from '../models/test_case_hook_definition' import TestRunHookDefinition from '../models/test_run_hook_definition' +import PickleFilter from '../pickle_filter' +import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import { + emitMetaMessage, + emitSupportCodeMessages, + isJavaScript, + parseGherkinMessageStream, +} from './helpers' const noopFunction = (): void => { // no code diff --git a/src/cli/i18n.ts b/src/cli/i18n.ts index be243e9a1..8366c9b00 100644 --- a/src/cli/i18n.ts +++ b/src/cli/i18n.ts @@ -1,6 +1,6 @@ import { dialects } from '@cucumber/gherkin' -import Table from 'cli-table3' import { capitalCase } from 'capital-case' +import Table from 'cli-table3' const keywords = [ 'feature', diff --git a/src/cli/index.ts b/src/cli/index.ts index bd5488e60..81d6d3a7a 100644 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -1,4 +1,28 @@ +import { GherkinStreams } from '@cucumber/gherkin-streams' +import { IdGenerator } from '@cucumber/messages' +import { EventEmitter } from 'events' +import fs from 'mz/fs' +import path from 'path' +import { Writable } from 'stream' +import { WriteStream as TtyWriteStream } from 'tty' +import { pathToFileURL } from 'url' +import { promisify } from 'util' + +import Formatter, { IFormatterStream } from '../formatter' +import FormatterBuilder from '../formatter/builder' import { EventDataCollector } from '../formatter/helpers' +import HttpStream from '../formatter/http_stream' +import PickleFilter from '../pickle_filter' +import Runtime from '../runtime' +import ParallelRuntimeCoordinator from '../runtime/parallel/coordinator' +import supportCodeLibraryBuilder from '../support_code_library_builder' +import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import { doesNotHaveValue } from '../value_checker' +import { IParsedArgvFormatOptions } from './argv_parser' +import ConfigurationBuilder, { + IConfiguration, + IConfigurationFormat, +} from './configuration_builder' import { emitMetaMessage, emitSupportCodeMessages, @@ -6,31 +30,8 @@ import { isJavaScript, parseGherkinMessageStream, } from './helpers' -import { validateInstall } from './install_validator' import * as I18n from './i18n' -import ConfigurationBuilder, { - IConfiguration, - IConfigurationFormat, -} from './configuration_builder' -import { EventEmitter } from 'events' -import FormatterBuilder from '../formatter/builder' -import fs from 'mz/fs' -import path from 'path' -import PickleFilter from '../pickle_filter' -import ParallelRuntimeCoordinator from '../runtime/parallel/coordinator' -import Runtime from '../runtime' -import supportCodeLibraryBuilder from '../support_code_library_builder' -import { IdGenerator } from '@cucumber/messages' -import Formatter, { IFormatterStream } from '../formatter' -import { WriteStream as TtyWriteStream } from 'tty' -import { doesNotHaveValue } from '../value_checker' -import { GherkinStreams } from '@cucumber/gherkin-streams' -import { ISupportCodeLibrary } from '../support_code_library_builder/types' -import { IParsedArgvFormatOptions } from './argv_parser' -import HttpStream from '../formatter/http_stream' -import { promisify } from 'util' -import { Writable } from 'stream' -import { pathToFileURL } from 'url' +import { validateInstall } from './install_validator' // eslint-disable-next-line @typescript-eslint/no-var-requires const { importer } = require('../importer') diff --git a/src/cli/option_splitter_spec.ts b/src/cli/option_splitter_spec.ts index 19ec75c93..ec267cc0a 100644 --- a/src/cli/option_splitter_spec.ts +++ b/src/cli/option_splitter_spec.ts @@ -1,5 +1,6 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' +import { describe, it } from 'mocha' + import OptionSplitter from './option_splitter' describe('OptionSplitter', () => { diff --git a/src/cli/profile_loader.ts b/src/cli/profile_loader.ts index 8cd97d499..e03c10c45 100644 --- a/src/cli/profile_loader.ts +++ b/src/cli/profile_loader.ts @@ -1,6 +1,7 @@ import fs from 'mz/fs' import path from 'path' import stringArgv from 'string-argv' + import { doesHaveValue, doesNotHaveValue } from '../value_checker' const DEFAULT_FILENAMES = ['cucumber.cjs', 'cucumber.js'] diff --git a/src/cli/profile_loader_spec.ts b/src/cli/profile_loader_spec.ts index fcbe4c035..019c669d7 100644 --- a/src/cli/profile_loader_spec.ts +++ b/src/cli/profile_loader_spec.ts @@ -1,11 +1,12 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' +import { describe, it } from 'mocha' import fs from 'mz/fs' import path from 'path' -import ProfileLoader from './profile_loader' import tmp, { DirOptions } from 'tmp' import { promisify } from 'util' + import { doesHaveValue, valueOrDefault } from '../value_checker' +import ProfileLoader from './profile_loader' interface TestProfileLoaderOptions { definitionsFileContent?: string diff --git a/src/cli/publish_banner.ts b/src/cli/publish_banner.ts index 788abaefd..ff1a7aa81 100644 --- a/src/cli/publish_banner.ts +++ b/src/cli/publish_banner.ts @@ -1,5 +1,5 @@ -import colors from 'colors/safe' import Table from 'cli-table3' +import colors from 'colors/safe' const underlineBoldCyan = (x: string): string => colors.underline(colors.bold(colors.cyan(x))) diff --git a/src/cli/run.ts b/src/cli/run.ts index c2253d0f2..d9f2eae03 100644 --- a/src/cli/run.ts +++ b/src/cli/run.ts @@ -1,5 +1,6 @@ -import Cli, { ICliRunResult } from './' import VError from 'verror' + +import Cli, { ICliRunResult } from './' import publishBanner from './publish_banner' function exitWithError(error: Error): void { diff --git a/src/formatter/builder.ts b/src/formatter/builder.ts index fcb20f5ff..98f2999dc 100644 --- a/src/formatter/builder.ts +++ b/src/formatter/builder.ts @@ -1,17 +1,18 @@ -import getColorFns from './get_color_fns' -import JavascriptSnippetSyntax from './step_definition_snippet_builder/javascript_snippet_syntax' +import { EventEmitter } from 'events' import path from 'path' -import StepDefinitionSnippetBuilder from './step_definition_snippet_builder' +import { Writable as WritableStream } from 'stream' +import { pathToFileURL } from 'url' + +import { IParsedArgvFormatOptions } from '../cli/argv_parser' import { ISupportCodeLibrary } from '../support_code_library_builder/types' -import Formatter, { IFormatterCleanupFn, IFormatterLogFn } from '.' import { doesHaveValue, doesNotHaveValue } from '../value_checker' -import { EventEmitter } from 'events' +import Formatter, { IFormatterCleanupFn, IFormatterLogFn } from '.' +import getColorFns from './get_color_fns' import EventDataCollector from './helpers/event_data_collector' -import { Writable as WritableStream } from 'stream' -import { IParsedArgvFormatOptions } from '../cli/argv_parser' -import { SnippetInterface } from './step_definition_snippet_builder/snippet_syntax' -import { pathToFileURL } from 'url' import Formatters from './helpers/formatters' +import StepDefinitionSnippetBuilder from './step_definition_snippet_builder' +import JavascriptSnippetSyntax from './step_definition_snippet_builder/javascript_snippet_syntax' +import { SnippetInterface } from './step_definition_snippet_builder/snippet_syntax' // eslint-disable-next-line @typescript-eslint/no-var-requires const { importer } = require('../importer') diff --git a/src/formatter/get_color_fns.ts b/src/formatter/get_color_fns.ts index d0a9453ef..6e77b3d31 100644 --- a/src/formatter/get_color_fns.ts +++ b/src/formatter/get_color_fns.ts @@ -1,5 +1,5 @@ -import colors from 'colors/safe' import { TestStepResultStatus } from '@cucumber/messages' +import colors from 'colors/safe' colors.enable() diff --git a/src/formatter/helpers/event_data_collector.ts b/src/formatter/helpers/event_data_collector.ts index d976d1417..6332d225a 100644 --- a/src/formatter/helpers/event_data_collector.ts +++ b/src/formatter/helpers/event_data_collector.ts @@ -1,7 +1,8 @@ import * as messages from '@cucumber/messages' -import { doesHaveValue, doesNotHaveValue } from '../../value_checker' import { EventEmitter } from 'events' +import { doesHaveValue, doesNotHaveValue } from '../../value_checker' + interface ITestCaseAttemptData { attempt: number willBeRetried: boolean diff --git a/src/formatter/helpers/formatters.ts b/src/formatter/helpers/formatters.ts index d5a2698f5..632e45b14 100644 --- a/src/formatter/helpers/formatters.ts +++ b/src/formatter/helpers/formatters.ts @@ -1,4 +1,5 @@ import Formatter from '../.' +import HtmlFormatter from '../html_formatter' import JsonFormatter from '../json_formatter' import MessageFormatter from '../message_formatter' import ProgressBarFormatter from '../progress_bar_formatter' @@ -8,7 +9,6 @@ import SnippetsFormatter from '../snippets_formatter' import SummaryFormatter from '../summary_formatter' import UsageFormatter from '../usage_formatter' import UsageJsonFormatter from '../usage_json_formatter' -import HtmlFormatter from '../html_formatter' const Formatters = { getFormatters(): Record { diff --git a/src/formatter/helpers/gherkin_document_parser.ts b/src/formatter/helpers/gherkin_document_parser.ts index 8b4763181..eae374bf6 100644 --- a/src/formatter/helpers/gherkin_document_parser.ts +++ b/src/formatter/helpers/gherkin_document_parser.ts @@ -1,4 +1,5 @@ import * as messages from '@cucumber/messages' + import { doesHaveValue } from '../../value_checker' export function getGherkinStepMap( diff --git a/src/formatter/helpers/gherkin_document_parser_spec.ts b/src/formatter/helpers/gherkin_document_parser_spec.ts index 8bea18ee7..b63007778 100644 --- a/src/formatter/helpers/gherkin_document_parser_spec.ts +++ b/src/formatter/helpers/gherkin_document_parser_spec.ts @@ -1,16 +1,17 @@ -import { describe, it } from 'mocha' +import * as messages from '@cucumber/messages' import { expect } from 'chai' +import { describe, it } from 'mocha' + +import { + IParsedSourceWithEnvelopes, + parse, +} from '../../../test/gherkin_helpers' import { getGherkinExampleRuleMap, getGherkinScenarioLocationMap, getGherkinScenarioMap, getGherkinStepMap, } from './gherkin_document_parser' -import { - IParsedSourceWithEnvelopes, - parse, -} from '../../../test/gherkin_helpers' -import * as messages from '@cucumber/messages' import IGherkinDocument = messages.GherkinDocument import { reindent } from 'reindent-template-literals' diff --git a/src/formatter/helpers/index.ts b/src/formatter/helpers/index.ts index f7f430ded..4f363ab03 100644 --- a/src/formatter/helpers/index.ts +++ b/src/formatter/helpers/index.ts @@ -1,11 +1,11 @@ import * as GherkinDocumentParser from './gherkin_document_parser' import * as PickleParser from './pickle_parser' -export { parseTestCaseAttempt } from './test_case_attempt_parser' export { default as EventDataCollector } from './event_data_collector' -export { KeywordType, getStepKeywordType } from './keyword_type' -export { formatIssue, isWarning, isFailure, isIssue } from './issue_helpers' +export { formatIssue, isFailure, isIssue, isWarning } from './issue_helpers' +export { getStepKeywordType, KeywordType } from './keyword_type' export { formatLocation } from './location_helpers' export { formatSummary } from './summary_helpers' +export { parseTestCaseAttempt } from './test_case_attempt_parser' export { getUsage } from './usage_helpers' export { GherkinDocumentParser, PickleParser } diff --git a/src/formatter/helpers/issue_helpers.ts b/src/formatter/helpers/issue_helpers.ts index 02fa6f419..dead022eb 100644 --- a/src/formatter/helpers/issue_helpers.ts +++ b/src/formatter/helpers/issue_helpers.ts @@ -1,10 +1,11 @@ -import indentString from 'indent-string' -import { formatTestCaseAttempt } from './test_case_attempt_formatter' import * as messages from '@cucumber/messages' +import indentString from 'indent-string' + +import { ISupportCodeLibrary } from '../../support_code_library_builder/types' import { IColorFns } from '../get_color_fns' import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' -import { ISupportCodeLibrary } from '../../support_code_library_builder/types' import { ITestCaseAttempt } from './event_data_collector' +import { formatTestCaseAttempt } from './test_case_attempt_formatter' export function isFailure( result: messages.TestStepResult, diff --git a/src/formatter/helpers/issue_helpers_spec.ts b/src/formatter/helpers/issue_helpers_spec.ts index f60cfed10..86bc2cd41 100644 --- a/src/formatter/helpers/issue_helpers_spec.ts +++ b/src/formatter/helpers/issue_helpers_spec.ts @@ -1,12 +1,13 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' -import getColorFns from '../get_color_fns' -import { formatIssue } from './issue_helpers' import figures from 'figures' -import { getTestCaseAttempts } from '../../../test/formatter_helpers' +import { describe, it } from 'mocha' import { reindent } from 'reindent-template-literals' + import { getBaseSupportCodeLibrary } from '../../../test/fixtures/steps' +import { getTestCaseAttempts } from '../../../test/formatter_helpers' import FormatterBuilder from '../builder' +import getColorFns from '../get_color_fns' +import { formatIssue } from './issue_helpers' async function testFormatIssue(sourceData: string): Promise { const sources = [ diff --git a/src/formatter/helpers/keyword_type.ts b/src/formatter/helpers/keyword_type.ts index 59be776d0..7223afab0 100644 --- a/src/formatter/helpers/keyword_type.ts +++ b/src/formatter/helpers/keyword_type.ts @@ -1,4 +1,5 @@ import { Dialect, dialects } from '@cucumber/gherkin' + import { doesHaveValue } from '../../value_checker' export enum KeywordType { diff --git a/src/formatter/helpers/keyword_type_spec.ts b/src/formatter/helpers/keyword_type_spec.ts index 659070319..48f64bdb1 100644 --- a/src/formatter/helpers/keyword_type_spec.ts +++ b/src/formatter/helpers/keyword_type_spec.ts @@ -1,5 +1,6 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' +import { describe, it } from 'mocha' + import { getStepKeywordType, KeywordType } from './keyword_type' describe('KeywordType', () => { diff --git a/src/formatter/helpers/location_helpers.ts b/src/formatter/helpers/location_helpers.ts index fd212b01c..0318a9ed3 100644 --- a/src/formatter/helpers/location_helpers.ts +++ b/src/formatter/helpers/location_helpers.ts @@ -1,6 +1,7 @@ import path from 'path' -import { doesHaveValue } from '../../value_checker' + import { ILineAndUri } from '../../types' +import { doesHaveValue } from '../../value_checker' export function formatLocation(obj: ILineAndUri, cwd?: string): string { let uri = obj.uri diff --git a/src/formatter/helpers/pickle_parser.ts b/src/formatter/helpers/pickle_parser.ts index 166ee3144..a8d5888d4 100644 --- a/src/formatter/helpers/pickle_parser.ts +++ b/src/formatter/helpers/pickle_parser.ts @@ -1,6 +1,7 @@ -import { getGherkinScenarioLocationMap } from './gherkin_document_parser' import * as messages from '@cucumber/messages' +import { getGherkinScenarioLocationMap } from './gherkin_document_parser' + export interface IGetPickleLocationRequest { gherkinDocument: messages.GherkinDocument pickle: messages.Pickle diff --git a/src/formatter/helpers/step_argument_formatter.ts b/src/formatter/helpers/step_argument_formatter.ts index 7381056cc..2ec077f9b 100644 --- a/src/formatter/helpers/step_argument_formatter.ts +++ b/src/formatter/helpers/step_argument_formatter.ts @@ -1,6 +1,7 @@ +import * as messages from '@cucumber/messages' import Table from 'cli-table3' + import { parseStepArgument } from '../../step_arguments' -import * as messages from '@cucumber/messages' function formatDataTable(dataTable: messages.PickleTable): string { const table = new Table({ diff --git a/src/formatter/helpers/summary_helpers.ts b/src/formatter/helpers/summary_helpers.ts index e18bfb9d9..67ec6316e 100644 --- a/src/formatter/helpers/summary_helpers.ts +++ b/src/formatter/helpers/summary_helpers.ts @@ -1,8 +1,9 @@ +import * as messages from '@cucumber/messages' import Duration from 'duration' + +import { doesHaveValue } from '../../value_checker' import { IColorFns } from '../get_color_fns' import { ITestCaseAttempt } from './event_data_collector' -import * as messages from '@cucumber/messages' -import { doesHaveValue } from '../../value_checker' const STATUS_REPORT_ORDER = [ messages.TestStepResultStatus.FAILED, diff --git a/src/formatter/helpers/summary_helpers_spec.ts b/src/formatter/helpers/summary_helpers_spec.ts index bc3dba4be..460b5c5d0 100644 --- a/src/formatter/helpers/summary_helpers_spec.ts +++ b/src/formatter/helpers/summary_helpers_spec.ts @@ -1,16 +1,17 @@ -import { afterEach, beforeEach, describe, it } from 'mocha' +import * as messages from '@cucumber/messages' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' import { expect } from 'chai' -import getColorFns from '../get_color_fns' -import { formatSummary } from './summary_helpers' -import { getTestCaseAttempts } from '../../../test/formatter_helpers' +import { afterEach, beforeEach, describe, it } from 'mocha' + import { getBaseSupportCodeLibrary } from '../../../test/fixtures/steps' -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import timeMethods, { durationBetweenTimestamps } from '../../time' +import { getTestCaseAttempts } from '../../../test/formatter_helpers' import { buildSupportCodeLibrary } from '../../../test/runtime_helpers' import { IRuntimeOptions } from '../../runtime' import { ISupportCodeLibrary } from '../../support_code_library_builder/types' +import timeMethods, { durationBetweenTimestamps } from '../../time' import { doesNotHaveValue } from '../../value_checker' -import * as messages from '@cucumber/messages' +import getColorFns from '../get_color_fns' +import { formatSummary } from './summary_helpers' interface ITestFormatSummaryOptions { runtimeOptions?: Partial diff --git a/src/formatter/helpers/test_case_attempt_formatter.ts b/src/formatter/helpers/test_case_attempt_formatter.ts index 3c67c3cb0..7a70c6713 100644 --- a/src/formatter/helpers/test_case_attempt_formatter.ts +++ b/src/formatter/helpers/test_case_attempt_formatter.ts @@ -1,17 +1,18 @@ -import indentString from 'indent-string' import * as messages from '@cucumber/messages' import figures from 'figures' +import indentString from 'indent-string' + +import { ISupportCodeLibrary } from '../../support_code_library_builder/types' +import { doesHaveValue, valueOrDefault } from '../../value_checker' +import { IColorFns } from '../get_color_fns' +import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' +import { ITestCaseAttempt } from './event_data_collector' import { formatLocation } from './location_helpers' +import { formatStepArgument } from './step_argument_formatter' import { IParsedTestStep, parseTestCaseAttempt, } from './test_case_attempt_parser' -import { formatStepArgument } from './step_argument_formatter' -import { IColorFns } from '../get_color_fns' -import { doesHaveValue, valueOrDefault } from '../../value_checker' -import { ITestCaseAttempt } from './event_data_collector' -import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' -import { ISupportCodeLibrary } from '../../support_code_library_builder/types' const CHARACTERS: Map = new Map([ [messages.TestStepResultStatus.AMBIGUOUS, figures.cross], diff --git a/src/formatter/helpers/test_case_attempt_parser.ts b/src/formatter/helpers/test_case_attempt_parser.ts index 886eb75cd..59200ab38 100644 --- a/src/formatter/helpers/test_case_attempt_parser.ts +++ b/src/formatter/helpers/test_case_attempt_parser.ts @@ -1,17 +1,18 @@ -import { getStepKeywordType, KeywordType } from './keyword_type' +import * as messages from '@cucumber/messages' +import { TestStepResult } from '@cucumber/messages' + +import TestCaseHookDefinition from '../../models/test_case_hook_definition' +import { ISupportCodeLibrary } from '../../support_code_library_builder/types' +import { ILineAndUri } from '../../types' +import { doesHaveValue, valueOrDefault } from '../../value_checker' +import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' +import { ITestCaseAttempt } from './event_data_collector' import { getGherkinScenarioLocationMap, getGherkinStepMap, } from './gherkin_document_parser' +import { getStepKeywordType, KeywordType } from './keyword_type' import { getPickleStepMap, getStepKeyword } from './pickle_parser' -import * as messages from '@cucumber/messages' -import { ITestCaseAttempt } from './event_data_collector' -import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' -import { ISupportCodeLibrary } from '../../support_code_library_builder/types' -import { doesHaveValue, valueOrDefault } from '../../value_checker' -import TestCaseHookDefinition from '../../models/test_case_hook_definition' -import { ILineAndUri } from '../../types' -import { TestStepResult } from '@cucumber/messages' export interface IParsedTestStep { actionLocation?: ILineAndUri diff --git a/src/formatter/helpers/test_case_attempt_parser_spec.ts b/src/formatter/helpers/test_case_attempt_parser_spec.ts index 796ddbde4..f14929aa9 100644 --- a/src/formatter/helpers/test_case_attempt_parser_spec.ts +++ b/src/formatter/helpers/test_case_attempt_parser_spec.ts @@ -1,12 +1,13 @@ -import { describe, it } from 'mocha' -import { expect } from 'chai' -import * as messages from '@cucumber/messages' -import { parseTestCaseAttempt } from '.' -import { getBaseSupportCodeLibrary } from '../../../test/fixtures/steps' -import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' +import * as messages from '@cucumber/messages' +import { expect } from 'chai' +import { describe, it } from 'mocha' import { reindent } from 'reindent-template-literals' + +import { getBaseSupportCodeLibrary } from '../../../test/fixtures/steps' import { getTestCaseAttempts } from '../../../test/formatter_helpers' +import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' +import { parseTestCaseAttempt } from '.' describe('TestCaseAttemptParser', () => { describe('parseTestCaseAttempt', () => { diff --git a/src/formatter/helpers/usage_helpers/index.ts b/src/formatter/helpers/usage_helpers/index.ts index cfd327948..666c99814 100644 --- a/src/formatter/helpers/usage_helpers/index.ts +++ b/src/formatter/helpers/usage_helpers/index.ts @@ -1,9 +1,10 @@ -import { getPickleStepMap } from '../pickle_parser' -import { getGherkinStepMap } from '../gherkin_document_parser' import * as messages from '@cucumber/messages' + import StepDefinition from '../../../models/step_definition' import { doesHaveValue } from '../../../value_checker' import EventDataCollector from '../event_data_collector' +import { getGherkinStepMap } from '../gherkin_document_parser' +import { getPickleStepMap } from '../pickle_parser' export interface IUsageMatch { duration?: messages.Duration diff --git a/src/formatter/helpers/usage_helpers/index_spec.ts b/src/formatter/helpers/usage_helpers/index_spec.ts index 081224a2a..4b88af695 100644 --- a/src/formatter/helpers/usage_helpers/index_spec.ts +++ b/src/formatter/helpers/usage_helpers/index_spec.ts @@ -1,8 +1,9 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' -import { getUsage } from './' +import { describe, it } from 'mocha' + import { getEnvelopesAndEventDataCollector } from '../../../../test/formatter_helpers' import { buildSupportCodeLibrary } from '../../../../test/runtime_helpers' +import { getUsage } from './' describe('Usage Helpers', () => { describe('getUsage', () => { diff --git a/src/formatter/html_formatter.ts b/src/formatter/html_formatter.ts index 458e76fae..770207dd2 100644 --- a/src/formatter/html_formatter.ts +++ b/src/formatter/html_formatter.ts @@ -1,11 +1,12 @@ -import Formatter, { IFormatterOptions } from '.' +import CucumberHtmlStream from '@cucumber/html-formatter' import * as messages from '@cucumber/messages' import resolvePkg from 'resolve-pkg' -import CucumberHtmlStream from '@cucumber/html-formatter' -import { doesHaveValue } from '../value_checker' import { finished } from 'stream' import { promisify } from 'util' +import { doesHaveValue } from '../value_checker' +import Formatter, { IFormatterOptions } from '.' + export default class HtmlFormatter extends Formatter { private readonly _finished: Promise public static readonly documentation: string = 'Outputs HTML report' diff --git a/src/formatter/http_stream.ts b/src/formatter/http_stream.ts index 49a51e579..7e2534104 100644 --- a/src/formatter/http_stream.ts +++ b/src/formatter/http_stream.ts @@ -1,8 +1,9 @@ -import { pipeline, Transform, Writable } from 'stream' -import tmp from 'tmp' import fs from 'fs' import http from 'http' import https from 'https' +import { pipeline, Transform, Writable } from 'stream' +import tmp from 'tmp' + import { doesHaveValue } from '../value_checker' type HttpMethod = 'GET' | 'POST' | 'PUT' diff --git a/src/formatter/http_stream_spec.ts b/src/formatter/http_stream_spec.ts index a49ccfba1..6f113dfac 100644 --- a/src/formatter/http_stream_spec.ts +++ b/src/formatter/http_stream_spec.ts @@ -1,8 +1,9 @@ import assert from 'assert' -import HttpStream from './http_stream' -import FakeReportServer from '../../test/fake_report_server' import { Writable } from 'stream' +import FakeReportServer from '../../test/fake_report_server' +import HttpStream from './http_stream' + type Callback = (err?: Error | null) => void describe('HttpStream', () => { diff --git a/src/formatter/index.ts b/src/formatter/index.ts index 16ff0ad28..75149dc36 100644 --- a/src/formatter/index.ts +++ b/src/formatter/index.ts @@ -1,13 +1,14 @@ -import { IColorFns } from './get_color_fns' -import { EventDataCollector } from './helpers' -import StepDefinitionSnippetBuilder from './step_definition_snippet_builder' -import { PassThrough, Writable as WritableStream } from 'stream' -import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import { EventEmitter } from 'events' import { WriteStream as FsWriteStream } from 'fs' +import { PassThrough, Writable as WritableStream } from 'stream' import { WriteStream as TtyWriteStream } from 'tty' -import { EventEmitter } from 'events' + import { IParsedArgvFormatOptions } from '../cli/argv_parser' +import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import { IColorFns } from './get_color_fns' +import { EventDataCollector } from './helpers' import HttpStream from './http_stream' +import StepDefinitionSnippetBuilder from './step_definition_snippet_builder' export type IFormatterStream = | FsWriteStream diff --git a/src/formatter/json_formatter.ts b/src/formatter/json_formatter.ts index cb1396f1a..89b9d4db3 100644 --- a/src/formatter/json_formatter.ts +++ b/src/formatter/json_formatter.ts @@ -1,13 +1,14 @@ +import * as messages from '@cucumber/messages' + +import { parseStepArgument } from '../step_arguments' +import { doesHaveValue, doesNotHaveValue } from '../value_checker' import Formatter, { IFormatterOptions } from './' import { formatLocation, GherkinDocumentParser, PickleParser } from './helpers' -import * as messages from '@cucumber/messages' +import { ITestCaseAttempt } from './helpers/event_data_collector' import { getGherkinExampleRuleMap, getGherkinScenarioLocationMap, } from './helpers/gherkin_document_parser' -import { ITestCaseAttempt } from './helpers/event_data_collector' -import { doesHaveValue, doesNotHaveValue } from '../value_checker' -import { parseStepArgument } from '../step_arguments' const { getGherkinStepMap, getGherkinScenarioMap } = GherkinDocumentParser diff --git a/src/formatter/json_formatter_spec.ts b/src/formatter/json_formatter_spec.ts index de84daedc..bb54fee18 100644 --- a/src/formatter/json_formatter_spec.ts +++ b/src/formatter/json_formatter_spec.ts @@ -1,13 +1,14 @@ -import { afterEach, beforeEach, describe, it } from 'mocha' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' import { expect } from 'chai' -import { testFormatter } from '../../test/formatter_helpers' +import { afterEach, beforeEach, describe, it } from 'mocha' + +import { IJsonFeature, IJsonScenario } from '../../lib/formatter/json_formatter' import { getJsonFormatterSupportCodeLibrary, getJsonFormatterSupportCodeLibraryWithHooks, } from '../../test/fixtures/json_formatter_steps' -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' +import { testFormatter } from '../../test/formatter_helpers' import timeMethods from '../time' -import { IJsonFeature, IJsonScenario } from '../../lib/formatter/json_formatter' describe('JsonFormatter', () => { let clock: InstalledClock diff --git a/src/formatter/message_formatter.ts b/src/formatter/message_formatter.ts index 15f47b0e0..2771cfe90 100644 --- a/src/formatter/message_formatter.ts +++ b/src/formatter/message_formatter.ts @@ -1,6 +1,7 @@ -import Formatter, { IFormatterOptions } from '.' import * as messages from '@cucumber/messages' +import Formatter, { IFormatterOptions } from '.' + export default class MessageFormatter extends Formatter { public static readonly documentation: string = 'Outputs protobuf messages' constructor(options: IFormatterOptions) { diff --git a/src/formatter/progress_bar_formatter.ts b/src/formatter/progress_bar_formatter.ts index 660b3994f..f05d12ca4 100644 --- a/src/formatter/progress_bar_formatter.ts +++ b/src/formatter/progress_bar_formatter.ts @@ -1,11 +1,12 @@ -import { formatIssue, formatSummary, isIssue } from './helpers' -import Formatter, { IFormatterOptions } from './' +import * as messages from '@cucumber/messages' import ProgressBar from 'progress' import { WriteStream as TtyWriteStream } from 'tty' -import * as messages from '@cucumber/messages' + +import { durationBetweenTimestamps } from '../time' import { doesHaveValue, valueOrDefault } from '../value_checker' +import Formatter, { IFormatterOptions } from './' +import { formatIssue, formatSummary, isIssue } from './helpers' import { formatUndefinedParameterType } from './helpers/issue_helpers' -import { durationBetweenTimestamps } from '../time' // Inspired by https://github.com/thekompanee/fuubar and https://github.com/martinciu/fuubar-cucumber export default class ProgressBarFormatter extends Formatter { diff --git a/src/formatter/progress_bar_formatter_spec.ts b/src/formatter/progress_bar_formatter_spec.ts index c0709331a..c4aabf3a1 100644 --- a/src/formatter/progress_bar_formatter_spec.ts +++ b/src/formatter/progress_bar_formatter_spec.ts @@ -1,26 +1,27 @@ -import { afterEach, beforeEach, describe, it } from 'mocha' +import * as messages from '@cucumber/messages' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' import { expect } from 'chai' -import sinon from 'sinon' import { EventEmitter } from 'events' -import { EventDataCollector } from './helpers' +import { afterEach, beforeEach, describe, it } from 'mocha' +import ProgressBar from 'progress' +import sinon from 'sinon' +import { PassThrough } from 'stream' +import { promisify } from 'util' + +import { getBaseSupportCodeLibrary } from '../../test/fixtures/steps' import { getEnvelopesAndEventDataCollector, ITestSource, normalizeSummaryDuration, } from '../../test/formatter_helpers' import { buildSupportCodeLibrary } from '../../test/runtime_helpers' -import FormatterBuilder from './builder' -import { getBaseSupportCodeLibrary } from '../../test/fixtures/steps' -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import timeMethods from '../time' import { IRuntimeOptions } from '../runtime' -import * as messages from '@cucumber/messages' import { ISupportCodeLibrary } from '../support_code_library_builder/types' -import ProgressBarFormatter from './progress_bar_formatter' +import timeMethods from '../time' import { doesHaveValue, doesNotHaveValue } from '../value_checker' -import { PassThrough } from 'stream' -import ProgressBar from 'progress' -import { promisify } from 'util' +import FormatterBuilder from './builder' +import { EventDataCollector } from './helpers' +import ProgressBarFormatter from './progress_bar_formatter' interface ITestProgressBarFormatterOptions { runtimeOptions?: Partial diff --git a/src/formatter/progress_formatter.ts b/src/formatter/progress_formatter.ts index cc6198c6c..64677e054 100644 --- a/src/formatter/progress_formatter.ts +++ b/src/formatter/progress_formatter.ts @@ -1,7 +1,8 @@ -import SummaryFormatter from './summary_formatter' +import * as messages from '@cucumber/messages' + import { doesHaveValue } from '../value_checker' import { IFormatterOptions } from './index' -import * as messages from '@cucumber/messages' +import SummaryFormatter from './summary_formatter' import IEnvelope = messages.Envelope import ITestStepFinished = messages.TestStepFinished diff --git a/src/formatter/progress_formatter_spec.ts b/src/formatter/progress_formatter_spec.ts index b7581f2cd..d6e797438 100644 --- a/src/formatter/progress_formatter_spec.ts +++ b/src/formatter/progress_formatter_spec.ts @@ -1,10 +1,11 @@ -import { afterEach, beforeEach, describe, it } from 'mocha' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' import { expect } from 'chai' +import figures from 'figures' +import { afterEach, beforeEach, describe, it } from 'mocha' +import { reindent } from 'reindent-template-literals' + import { getBaseSupportCodeLibrary } from '../../test/fixtures/steps' import { testFormatter } from '../../test/formatter_helpers' -import { reindent } from 'reindent-template-literals' -import figures from 'figures' -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' import timeMethods from '../time' describe('ProgressFormatter', () => { diff --git a/src/formatter/rerun_formatter.ts b/src/formatter/rerun_formatter.ts index ad840e14d..ade9eecb5 100644 --- a/src/formatter/rerun_formatter.ts +++ b/src/formatter/rerun_formatter.ts @@ -1,11 +1,12 @@ -import Formatter, { IFormatterOptions } from './' -import { getGherkinScenarioLocationMap } from './helpers/gherkin_document_parser' +import * as messages from '@cucumber/messages' + import { doesHaveValue, doesNotHaveValue, valueOrDefault, } from '../value_checker' -import * as messages from '@cucumber/messages' +import Formatter, { IFormatterOptions } from './' +import { getGherkinScenarioLocationMap } from './helpers/gherkin_document_parser' const DEFAULT_SEPARATOR = '\n' diff --git a/src/formatter/rerun_formatter_spec.ts b/src/formatter/rerun_formatter_spec.ts index fd9e1c5bf..536aaa80e 100644 --- a/src/formatter/rerun_formatter_spec.ts +++ b/src/formatter/rerun_formatter_spec.ts @@ -1,7 +1,8 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' -import { buildSupportCodeLibrary } from '../../test/runtime_helpers' +import { describe, it } from 'mocha' + import { testFormatter } from '../../test/formatter_helpers' +import { buildSupportCodeLibrary } from '../../test/runtime_helpers' const onePickleSources = [ { diff --git a/src/formatter/snippets_formatter.ts b/src/formatter/snippets_formatter.ts index bbc936d37..38ca00a17 100644 --- a/src/formatter/snippets_formatter.ts +++ b/src/formatter/snippets_formatter.ts @@ -1,7 +1,8 @@ +import * as messages from '@cucumber/messages' + +import { doesHaveValue } from '../value_checker' import Formatter, { IFormatterOptions } from './' import { parseTestCaseAttempt } from './helpers' -import { doesHaveValue } from '../value_checker' -import * as messages from '@cucumber/messages' import IEnvelope = messages.Envelope export default class SnippetsFormatter extends Formatter { diff --git a/src/formatter/step_definition_snippet_builder/index.ts b/src/formatter/step_definition_snippet_builder/index.ts index ce7065d1e..afb5c2502 100644 --- a/src/formatter/step_definition_snippet_builder/index.ts +++ b/src/formatter/step_definition_snippet_builder/index.ts @@ -1,12 +1,13 @@ -import { KeywordType } from '../helpers' -import { parseStepArgument } from '../../step_arguments' -import { ISnippetSnytax } from './snippet_syntax' import { CucumberExpressionGenerator, ParameterTypeRegistry, } from '@cucumber/cucumber-expressions' import * as messages from '@cucumber/messages' + +import { parseStepArgument } from '../../step_arguments' import { doesHaveValue } from '../../value_checker' +import { KeywordType } from '../helpers' +import { ISnippetSnytax } from './snippet_syntax' export interface INewStepDefinitionSnippetBuilderOptions { snippetSyntax: ISnippetSnytax diff --git a/src/formatter/step_definition_snippet_builder/index_spec.ts b/src/formatter/step_definition_snippet_builder/index_spec.ts index b7d22a798..805b6afac 100644 --- a/src/formatter/step_definition_snippet_builder/index_spec.ts +++ b/src/formatter/step_definition_snippet_builder/index_spec.ts @@ -1,11 +1,12 @@ -import { describe, it } from 'mocha' +import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' import { expect } from 'chai' +import { describe, it } from 'mocha' +import sinon from 'sinon' + +import { getPickleStepWithText } from '../../../test/gherkin_helpers' import { KeywordType } from '../helpers' import StepDefinitionSnippetBuilder, { IBuildRequest } from './' -import sinon from 'sinon' -import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' import { ISnippetSyntaxBuildOptions } from './snippet_syntax' -import { getPickleStepWithText } from '../../../test/gherkin_helpers' function testStepDefinitionBuilder( request: IBuildRequest diff --git a/src/formatter/step_definition_snippet_builder/javascript_snippet_syntax_spec.ts b/src/formatter/step_definition_snippet_builder/javascript_snippet_syntax_spec.ts index 7d76edb94..8ce19e64a 100644 --- a/src/formatter/step_definition_snippet_builder/javascript_snippet_syntax_spec.ts +++ b/src/formatter/step_definition_snippet_builder/javascript_snippet_syntax_spec.ts @@ -1,15 +1,16 @@ -import { describe, it } from 'mocha' -import { expect } from 'chai' -import JavascriptSnippetSyntax from './javascript_snippet_syntax' -import { SnippetInterface } from './snippet_syntax' -import { ISnippetSyntaxBuildOptions } from '../../../lib/formatter/step_definition_snippet_builder/snippet_syntax' import { CucumberExpressionGenerator, GeneratedExpression, ParameterTypeRegistry, } from '@cucumber/cucumber-expressions' +import { expect } from 'chai' +import { describe, it } from 'mocha' import { reindent } from 'reindent-template-literals' +import { ISnippetSyntaxBuildOptions } from '../../../lib/formatter/step_definition_snippet_builder/snippet_syntax' +import JavascriptSnippetSyntax from './javascript_snippet_syntax' +import { SnippetInterface } from './snippet_syntax' + function generateExpressions(text: string): readonly GeneratedExpression[] { const parameterTypeRegistry = new ParameterTypeRegistry() const cucumberExpressionGenerator = new CucumberExpressionGenerator( diff --git a/src/formatter/summary_formatter.ts b/src/formatter/summary_formatter.ts index f91034a3d..0bc39e618 100644 --- a/src/formatter/summary_formatter.ts +++ b/src/formatter/summary_formatter.ts @@ -1,10 +1,11 @@ -import { formatIssue, formatSummary, isFailure, isWarning } from './helpers' -import Formatter, { IFormatterOptions } from './' -import { doesHaveValue } from '../value_checker' import * as messages from '@cucumber/messages' + +import { durationBetweenTimestamps } from '../time' +import { doesHaveValue } from '../value_checker' +import Formatter, { IFormatterOptions } from './' +import { formatIssue, formatSummary, isFailure, isWarning } from './helpers' import { ITestCaseAttempt } from './helpers/event_data_collector' import { formatUndefinedParameterTypes } from './helpers/issue_helpers' -import { durationBetweenTimestamps } from '../time' interface ILogIssuesRequest { issues: ITestCaseAttempt[] diff --git a/src/formatter/summary_formatter_spec.ts b/src/formatter/summary_formatter_spec.ts index 20acb60ef..59c8ab1c2 100644 --- a/src/formatter/summary_formatter_spec.ts +++ b/src/formatter/summary_formatter_spec.ts @@ -1,11 +1,12 @@ -import { afterEach, beforeEach, describe, it } from 'mocha' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' import { expect } from 'chai' import figures from 'figures' -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import timeMethods from '../time' -import { testFormatter } from '../../test/formatter_helpers' +import { afterEach, beforeEach, describe, it } from 'mocha' + import { getBaseSupportCodeLibrary } from '../../test/fixtures/steps' +import { testFormatter } from '../../test/formatter_helpers' import { buildSupportCodeLibrary } from '../../test/runtime_helpers' +import timeMethods from '../time' describe('SummaryFormatter', () => { let clock: InstalledClock diff --git a/src/formatter/usage_formatter.ts b/src/formatter/usage_formatter.ts index 0776d3656..8861eea61 100644 --- a/src/formatter/usage_formatter.ts +++ b/src/formatter/usage_formatter.ts @@ -1,8 +1,9 @@ -import { formatLocation, getUsage } from './helpers' -import Formatter, { IFormatterOptions } from './' +import * as messages from '@cucumber/messages' import Table from 'cli-table3' + import { doesHaveValue } from '../value_checker' -import * as messages from '@cucumber/messages' +import Formatter, { IFormatterOptions } from './' +import { formatLocation, getUsage } from './helpers' import IEnvelope = messages.Envelope export default class UsageFormatter extends Formatter { diff --git a/src/formatter/usage_formatter_spec.ts b/src/formatter/usage_formatter_spec.ts index 5c8545124..c7d110db8 100644 --- a/src/formatter/usage_formatter_spec.ts +++ b/src/formatter/usage_formatter_spec.ts @@ -1,10 +1,11 @@ -import { afterEach, beforeEach, describe, it } from 'mocha' -import { expect } from 'chai' import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import timeMethods from '../time' +import { expect } from 'chai' +import { afterEach, beforeEach, describe, it } from 'mocha' +import { reindent } from 'reindent-template-literals' + import { getUsageSupportCodeLibrary } from '../../test/fixtures/usage_steps' import { testFormatter } from '../../test/formatter_helpers' -import { reindent } from 'reindent-template-literals' +import timeMethods from '../time' describe('UsageFormatter', () => { let clock: InstalledClock diff --git a/src/formatter/usage_json_formatter.ts b/src/formatter/usage_json_formatter.ts index c2b522429..606a44c15 100644 --- a/src/formatter/usage_json_formatter.ts +++ b/src/formatter/usage_json_formatter.ts @@ -1,7 +1,8 @@ -import { getUsage } from './helpers' -import Formatter, { IFormatterOptions } from './' -import { doesHaveValue } from '../value_checker' import * as messages from '@cucumber/messages' + +import { doesHaveValue } from '../value_checker' +import Formatter, { IFormatterOptions } from './' +import { getUsage } from './helpers' import IEnvelope = messages.Envelope export default class UsageJsonFormatter extends Formatter { diff --git a/src/formatter/usage_json_formatter_spec.ts b/src/formatter/usage_json_formatter_spec.ts index 128049324..86367dc3a 100644 --- a/src/formatter/usage_json_formatter_spec.ts +++ b/src/formatter/usage_json_formatter_spec.ts @@ -1,9 +1,10 @@ -import { afterEach, beforeEach, describe, it } from 'mocha' -import { expect } from 'chai' import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import timeMethods from '../time' +import { expect } from 'chai' +import { afterEach, beforeEach, describe, it } from 'mocha' + import { getUsageSupportCodeLibrary } from '../../test/fixtures/usage_steps' import { testFormatter } from '../../test/formatter_helpers' +import timeMethods from '../time' describe('UsageJsonFormatter', () => { let clock: InstalledClock diff --git a/src/index.ts b/src/index.ts index 3272703ac..c4621c4c7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,18 +1,19 @@ +import * as messages from '@cucumber/messages' + import * as formatterHelpers from './formatter/helpers' import supportCodeLibraryBuilder from './support_code_library_builder' -import * as messages from '@cucumber/messages' // Top level export { default as Cli } from './cli' export { parseGherkinMessageStream } from './cli/helpers' +export { default as DataTable } from './models/data_table' export { default as PickleFilter } from './pickle_filter' export { - default as Runtime, INewRuntimeOptions, IRuntimeOptions, + default as Runtime, } from './runtime' export { default as supportCodeLibraryBuilder } from './support_code_library_builder' -export { default as DataTable } from './models/data_table' // Formatters export { default as Formatter, IFormatterOptions } from './formatter' @@ -42,16 +43,15 @@ export const setDefinitionFunctionWrapper = methods.setDefinitionFunctionWrapper export const setWorldConstructor = methods.setWorldConstructor export const Then = methods.Then export const When = methods.When -export { - default as World, - IWorld, - IWorldOptions, -} from './support_code_library_builder/world' - export { ITestCaseHookParameter, ITestStepHookParameter, } from './support_code_library_builder/types' +export { + IWorld, + IWorldOptions, + default as World, +} from './support_code_library_builder/world' export const Status = messages.TestStepResultStatus // Time helpers diff --git a/src/models/data_table_spec.ts b/src/models/data_table_spec.ts index 8be0c3ee7..a9eabf3e9 100644 --- a/src/models/data_table_spec.ts +++ b/src/models/data_table_spec.ts @@ -1,7 +1,8 @@ -import { describe, it } from 'mocha' +import * as messages from '@cucumber/messages' import { expect } from 'chai' +import { describe, it } from 'mocha' + import DataTable from './data_table' -import * as messages from '@cucumber/messages' const id = 'id' const location: messages.Location = { line: 0 } diff --git a/src/models/definition.ts b/src/models/definition.ts index 171e89648..88ef8df5c 100644 --- a/src/models/definition.ts +++ b/src/models/definition.ts @@ -1,6 +1,7 @@ +import { Expression } from '@cucumber/cucumber-expressions' import * as messages from '@cucumber/messages' + import { ITestCaseHookParameter } from '../support_code_library_builder/types' -import { Expression } from '@cucumber/cucumber-expressions' export interface IGetInvocationDataRequest { hookParameter: ITestCaseHookParameter diff --git a/src/models/step_definition.ts b/src/models/step_definition.ts index 42b7ae111..928110d88 100644 --- a/src/models/step_definition.ts +++ b/src/models/step_definition.ts @@ -1,3 +1,7 @@ +import { Expression } from '@cucumber/cucumber-expressions' + +import { parseStepArgument } from '../step_arguments' +import { doesHaveValue } from '../value_checker' import DataTable from './data_table' import Definition, { IDefinition, @@ -5,9 +9,6 @@ import Definition, { IGetInvocationDataResponse, IStepDefinitionParameters, } from './definition' -import { parseStepArgument } from '../step_arguments' -import { Expression } from '@cucumber/cucumber-expressions' -import { doesHaveValue } from '../value_checker' export default class StepDefinition extends Definition implements IDefinition { public readonly pattern: string | RegExp diff --git a/src/models/test_case_hook_definition.ts b/src/models/test_case_hook_definition.ts index 21d8b47e7..65a274522 100644 --- a/src/models/test_case_hook_definition.ts +++ b/src/models/test_case_hook_definition.ts @@ -1,3 +1,5 @@ +import * as messages from '@cucumber/messages' + import { PickleTagFilter } from '../pickle_filter' import Definition, { IDefinition, @@ -6,7 +8,6 @@ import Definition, { IGetInvocationDataResponse, IHookDefinitionOptions, } from './definition' -import * as messages from '@cucumber/messages' export default class TestCaseHookDefinition extends Definition diff --git a/src/models/test_case_hook_definition_spec.ts b/src/models/test_case_hook_definition_spec.ts index bb502c551..6b63c9cb0 100644 --- a/src/models/test_case_hook_definition_spec.ts +++ b/src/models/test_case_hook_definition_spec.ts @@ -1,7 +1,8 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' -import TestCaseHookDefinition from './test_case_hook_definition' +import { describe, it } from 'mocha' + import { getPickleWithTags } from '../../test/gherkin_helpers' +import TestCaseHookDefinition from './test_case_hook_definition' describe('TestCaseHookDefinition', () => { describe('appliesToTestCase', () => { diff --git a/src/models/test_step_hook_definition.ts b/src/models/test_step_hook_definition.ts index 32aa03367..c5a7e3c48 100644 --- a/src/models/test_step_hook_definition.ts +++ b/src/models/test_step_hook_definition.ts @@ -1,12 +1,13 @@ +import * as messages from '@cucumber/messages' + import { PickleTagFilter } from '../pickle_filter' import Definition, { IDefinition, - IGetInvocationDataResponse, - IGetInvocationDataRequest, IDefinitionParameters, + IGetInvocationDataRequest, + IGetInvocationDataResponse, IHookDefinitionOptions, } from './definition' -import * as messages from '@cucumber/messages' export default class TestStepHookDefinition extends Definition diff --git a/src/models/test_step_hook_definition_spec.ts b/src/models/test_step_hook_definition_spec.ts index a885050a3..ad000e3a8 100644 --- a/src/models/test_step_hook_definition_spec.ts +++ b/src/models/test_step_hook_definition_spec.ts @@ -1,7 +1,8 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' -import TestStepHookDefinition from './test_step_hook_definition' +import { describe, it } from 'mocha' + import { getPickleWithTags } from '../../test/gherkin_helpers' +import TestStepHookDefinition from './test_step_hook_definition' describe('TestStepHookDefinition', () => { describe('appliesToTestCase', () => { diff --git a/src/pickle_filter.ts b/src/pickle_filter.ts index 0b7bc24cd..0db9eedef 100644 --- a/src/pickle_filter.ts +++ b/src/pickle_filter.ts @@ -1,8 +1,9 @@ -import path from 'path' +import * as messages from '@cucumber/messages' import parse from '@cucumber/tag-expressions' +import path from 'path' + import { getGherkinScenarioLocationMap } from './formatter/helpers/gherkin_document_parser' import { doesHaveValue, doesNotHaveValue } from './value_checker' -import * as messages from '@cucumber/messages' import IGherkinDocument = messages.GherkinDocument import IPickle = messages.Pickle diff --git a/src/pickle_filter_spec.ts b/src/pickle_filter_spec.ts index 23529cd7a..02b47aeea 100644 --- a/src/pickle_filter_spec.ts +++ b/src/pickle_filter_spec.ts @@ -1,7 +1,8 @@ -import { beforeEach, describe, it } from 'mocha' import { expect } from 'chai' -import PickleFilter from './pickle_filter' +import { beforeEach, describe, it } from 'mocha' + import { parse } from '../test/gherkin_helpers' +import PickleFilter from './pickle_filter' describe('PickleFilter', () => { const cwd = '/project' diff --git a/src/runtime/assemble_test_cases.ts b/src/runtime/assemble_test_cases.ts index a07921309..880c799e6 100644 --- a/src/runtime/assemble_test_cases.ts +++ b/src/runtime/assemble_test_cases.ts @@ -1,8 +1,9 @@ -import { EventEmitter } from 'events' +import { Group } from '@cucumber/cucumber-expressions' import * as messages from '@cucumber/messages' import { IdGenerator } from '@cucumber/messages' +import { EventEmitter } from 'events' + import { ISupportCodeLibrary } from '../support_code_library_builder/types' -import { Group } from '@cucumber/cucumber-expressions' import { doesHaveValue } from '../value_checker' export declare type IAssembledTestCases = Record diff --git a/src/runtime/assemble_test_cases_spec.ts b/src/runtime/assemble_test_cases_spec.ts index 1e72bfe22..f204cc062 100644 --- a/src/runtime/assemble_test_cases_spec.ts +++ b/src/runtime/assemble_test_cases_spec.ts @@ -1,14 +1,15 @@ import { IdGenerator } from '@cucumber/messages' import * as messages from '@cucumber/messages' -import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' +import { expect } from 'chai' import { EventEmitter } from 'events' -import { assembleTestCases, IAssembledTestCases } from './assemble_test_cases' import { afterEach, beforeEach, describe, it } from 'mocha' -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import timeMethods from '../time' -import { buildSupportCodeLibrary } from '../../test/runtime_helpers' + import { parse } from '../../test/gherkin_helpers' -import { expect } from 'chai' +import { buildSupportCodeLibrary } from '../../test/runtime_helpers' +import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import timeMethods from '../time' +import { assembleTestCases, IAssembledTestCases } from './assemble_test_cases' interface IRequest { gherkinDocument: messages.GherkinDocument diff --git a/src/runtime/attachment_manager/index.ts b/src/runtime/attachment_manager/index.ts index d3ea34255..668be81b3 100644 --- a/src/runtime/attachment_manager/index.ts +++ b/src/runtime/attachment_manager/index.ts @@ -1,6 +1,7 @@ +import * as messages from '@cucumber/messages' import isStream from 'is-stream' import { Readable } from 'stream' -import * as messages from '@cucumber/messages' + import { doesHaveValue, doesNotHaveValue } from '../../value_checker' export interface IAttachmentMedia { diff --git a/src/runtime/attachment_manager/index_spec.ts b/src/runtime/attachment_manager/index_spec.ts index ecf2c45f3..bf0fd5b59 100644 --- a/src/runtime/attachment_manager/index_spec.ts +++ b/src/runtime/attachment_manager/index_spec.ts @@ -1,8 +1,9 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' -import AttachmentManager, { IAttachment } from './' +import { describe, it } from 'mocha' import stream, { Readable } from 'stream' +import AttachmentManager, { IAttachment } from './' + describe('AttachmentManager', () => { describe('create()', () => { describe('buffer', () => { diff --git a/src/runtime/helpers.ts b/src/runtime/helpers.ts index 5ecc031cb..2f1e2f9ad 100644 --- a/src/runtime/helpers.ts +++ b/src/runtime/helpers.ts @@ -1,9 +1,10 @@ -import { formatLocation } from '../formatter/helpers/location_helpers' +import * as messages from '@cucumber/messages' import Table from 'cli-table3' import indentString from 'indent-string' -import { PickleTagFilter } from '../pickle_filter' + +import { formatLocation } from '../formatter/helpers/location_helpers' import StepDefinition from '../models/step_definition' -import * as messages from '@cucumber/messages' +import { PickleTagFilter } from '../pickle_filter' import { IRuntimeOptions } from '.' export function getAmbiguousStepException( diff --git a/src/runtime/helpers_spec.ts b/src/runtime/helpers_spec.ts index 484342138..a9874aed0 100644 --- a/src/runtime/helpers_spec.ts +++ b/src/runtime/helpers_spec.ts @@ -1,9 +1,10 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' -import { getAmbiguousStepException, retriesForPickle } from './helpers' +import { describe, it } from 'mocha' + import { getPickleWithTags } from '../../test/gherkin_helpers' -import StepDefinition from '../models/step_definition' import { buildOptions } from '../../test/runtime_helpers' +import StepDefinition from '../models/step_definition' +import { getAmbiguousStepException, retriesForPickle } from './helpers' describe('Helpers', () => { describe('getAmbiguousStepException', () => { diff --git a/src/runtime/index.ts b/src/runtime/index.ts index 5efced4ca..3d672e887 100644 --- a/src/runtime/index.ts +++ b/src/runtime/index.ts @@ -1,17 +1,18 @@ -import { EventDataCollector, formatLocation } from '../formatter/helpers' -import StackTraceFilter from '../stack_trace_filter' -import UserCodeRunner from '../user_code_runner' -import VError from 'verror' -import { retriesForPickle, shouldCauseFailure } from './helpers' import { IdGenerator } from '@cucumber/messages' import * as messages from '@cucumber/messages' -import TestCaseRunner from './test_case_runner' import { EventEmitter } from 'events' -import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import VError from 'verror' + +import { EventDataCollector, formatLocation } from '../formatter/helpers' import TestRunHookDefinition from '../models/test_run_hook_definition' +import StackTraceFilter from '../stack_trace_filter' +import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import UserCodeRunner from '../user_code_runner' import { doesHaveValue, valueOrDefault } from '../value_checker' -import { ITestRunStopwatch, RealTestRunStopwatch } from './stopwatch' import { assembleTestCases } from './assemble_test_cases' +import { retriesForPickle, shouldCauseFailure } from './helpers' +import { ITestRunStopwatch, RealTestRunStopwatch } from './stopwatch' +import TestCaseRunner from './test_case_runner' export interface INewRuntimeOptions { eventBroadcaster: EventEmitter diff --git a/src/runtime/parallel/command_types.ts b/src/runtime/parallel/command_types.ts index 3a884550d..06fc29d7f 100644 --- a/src/runtime/parallel/command_types.ts +++ b/src/runtime/parallel/command_types.ts @@ -1,4 +1,5 @@ import * as messages from '@cucumber/messages' + import { IRuntimeOptions } from '../index' // Messages from Coordinator to Worker diff --git a/src/runtime/parallel/coordinator.ts b/src/runtime/parallel/coordinator.ts index 73e840f63..c527bc708 100644 --- a/src/runtime/parallel/coordinator.ts +++ b/src/runtime/parallel/coordinator.ts @@ -1,16 +1,17 @@ -import { ChildProcess, fork } from 'child_process' -import path from 'path' -import { retriesForPickle, shouldCauseFailure } from '../helpers' import * as messages from '@cucumber/messages' +import { IdGenerator } from '@cucumber/messages' +import { ChildProcess, fork } from 'child_process' import { EventEmitter } from 'events' +import path from 'path' + import { EventDataCollector } from '../../formatter/helpers' -import { IRuntimeOptions } from '..' import { ISupportCodeLibrary } from '../../support_code_library_builder/types' -import { ICoordinatorReport, IWorkerCommand } from './command_types' import { doesHaveValue } from '../../value_checker' -import { ITestRunStopwatch, RealTestRunStopwatch } from '../stopwatch' +import { IRuntimeOptions } from '..' import { assembleTestCases, IAssembledTestCases } from '../assemble_test_cases' -import { IdGenerator } from '@cucumber/messages' +import { retriesForPickle, shouldCauseFailure } from '../helpers' +import { ITestRunStopwatch, RealTestRunStopwatch } from '../stopwatch' +import { ICoordinatorReport, IWorkerCommand } from './command_types' const runWorkerPath = path.resolve(__dirname, 'run_worker.js') diff --git a/src/runtime/parallel/run_worker.ts b/src/runtime/parallel/run_worker.ts index e311d9412..72870c94c 100644 --- a/src/runtime/parallel/run_worker.ts +++ b/src/runtime/parallel/run_worker.ts @@ -1,6 +1,7 @@ -import Worker from './worker' import VError from 'verror' + import { doesHaveValue } from '../../value_checker' +import Worker from './worker' function run(): void { const exit = (exitCode: number, error?: Error, message?: string): void => { diff --git a/src/runtime/parallel/worker.ts b/src/runtime/parallel/worker.ts index 6fd1db60c..175c11a6a 100644 --- a/src/runtime/parallel/worker.ts +++ b/src/runtime/parallel/worker.ts @@ -1,25 +1,26 @@ -import { formatLocation } from '../../formatter/helpers' -import { - ICoordinatorReport, - IWorkerCommand, - IWorkerCommandInitialize, - IWorkerCommandRun, -} from './command_types' -import { EventEmitter } from 'events' -import StackTraceFilter from '../../stack_trace_filter' -import supportCodeLibraryBuilder from '../../support_code_library_builder' -import TestCaseRunner from '../test_case_runner' -import UserCodeRunner from '../../user_code_runner' import { IdGenerator } from '@cucumber/messages' import * as messages from '@cucumber/messages' +import { duration } from 'durations' +import { EventEmitter } from 'events' +import { pathToFileURL } from 'url' + +import { isJavaScript } from '../../cli/helpers' +import { formatLocation } from '../../formatter/helpers' import TestRunHookDefinition from '../../models/test_run_hook_definition' +import StackTraceFilter from '../../stack_trace_filter' +import supportCodeLibraryBuilder from '../../support_code_library_builder' import { ISupportCodeLibrary } from '../../support_code_library_builder/types' +import UserCodeRunner from '../../user_code_runner' import { doesHaveValue, valueOrDefault } from '../../value_checker' import { IRuntimeOptions } from '../index' import { RealTestRunStopwatch } from '../stopwatch' -import { duration } from 'durations' -import { pathToFileURL } from 'url' -import { isJavaScript } from '../../cli/helpers' +import TestCaseRunner from '../test_case_runner' +import { + ICoordinatorReport, + IWorkerCommand, + IWorkerCommandInitialize, + IWorkerCommandRun, +} from './command_types' // eslint-disable-next-line @typescript-eslint/no-var-requires const { importer } = require('../../importer') diff --git a/src/runtime/step_runner.ts b/src/runtime/step_runner.ts index 14e765bfd..b1ce08f2f 100644 --- a/src/runtime/step_runner.ts +++ b/src/runtime/step_runner.ts @@ -1,9 +1,10 @@ -import Time from '../time' -import UserCodeRunner from '../user_code_runner' import * as messages from '@cucumber/messages' import { format } from 'assertion-error-formatter' -import { ITestCaseHookParameter } from '../support_code_library_builder/types' + import { IDefinition, IGetInvocationDataResponse } from '../models/definition' +import { ITestCaseHookParameter } from '../support_code_library_builder/types' +import Time from '../time' +import UserCodeRunner from '../user_code_runner' import { doesHaveValue, doesNotHaveValue, diff --git a/src/runtime/stopwatch.ts b/src/runtime/stopwatch.ts index 592e20e04..dda8cc7a0 100644 --- a/src/runtime/stopwatch.ts +++ b/src/runtime/stopwatch.ts @@ -1,5 +1,5 @@ import * as messages from '@cucumber/messages' -import { stopwatch, Stopwatch, duration, Duration } from 'durations' +import { Duration, duration, Stopwatch, stopwatch } from 'durations' export interface ITestRunStopwatch { from: (duration: Duration) => ITestRunStopwatch diff --git a/src/runtime/stopwatch_spec.ts b/src/runtime/stopwatch_spec.ts index 5516f0cf6..48b70c107 100644 --- a/src/runtime/stopwatch_spec.ts +++ b/src/runtime/stopwatch_spec.ts @@ -1,7 +1,8 @@ +import { TimeConversion } from '@cucumber/messages' +import { expect } from 'chai' import { describe, it } from 'mocha' + import { RealTestRunStopwatch } from './stopwatch' -import { expect } from 'chai' -import { TimeConversion } from '@cucumber/messages' describe('stopwatch', () => { it('returns a timestamp close to now', () => { diff --git a/src/runtime/test_case_runner.ts b/src/runtime/test_case_runner.ts index 9b77ce904..2b472dfaa 100644 --- a/src/runtime/test_case_runner.ts +++ b/src/runtime/test_case_runner.ts @@ -1,20 +1,21 @@ -import { getAmbiguousStepException } from './helpers' -import AttachmentManager from './attachment_manager' -import StepRunner from './step_runner' import * as messages from '@cucumber/messages' import { getWorstTestStepResult, IdGenerator } from '@cucumber/messages' import { EventEmitter } from 'events' + +import { IDefinition } from '../models/definition' +import StepDefinition from '../models/step_definition' +import TestCaseHookDefinition from '../models/test_case_hook_definition' +import TestStepHookDefinition from '../models/test_step_hook_definition' import { ISupportCodeLibrary, ITestCaseHookParameter, ITestStepHookParameter, } from '../support_code_library_builder/types' -import TestCaseHookDefinition from '../models/test_case_hook_definition' -import TestStepHookDefinition from '../models/test_step_hook_definition' -import { IDefinition } from '../models/definition' import { doesHaveValue, doesNotHaveValue } from '../value_checker' +import AttachmentManager from './attachment_manager' +import { getAmbiguousStepException } from './helpers' +import StepRunner from './step_runner' import { ITestRunStopwatch } from './stopwatch' -import StepDefinition from '../models/step_definition' export interface INewTestCaseRunnerOptions { eventBroadcaster: EventEmitter diff --git a/src/runtime/test_case_runner_spec.ts b/src/runtime/test_case_runner_spec.ts index 1d5b1594d..78164ea36 100644 --- a/src/runtime/test_case_runner_spec.ts +++ b/src/runtime/test_case_runner_spec.ts @@ -1,19 +1,20 @@ -import { afterEach, beforeEach, describe, it } from 'mocha' -import { expect } from 'chai' -import sinon from 'sinon' -import TestCaseRunner from './test_case_runner' -import { EventEmitter } from 'events' import { IdGenerator } from '@cucumber/messages' import * as messages from '@cucumber/messages' -import { parse } from '../../test/gherkin_helpers' -import { buildSupportCodeLibrary } from '../../test/runtime_helpers' import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import timeMethods from '../time' +import { expect } from 'chai' +import { EventEmitter } from 'events' +import { afterEach, beforeEach, describe, it } from 'mocha' +import sinon from 'sinon' + import { getBaseSupportCodeLibrary } from '../../test/fixtures/steps' +import { parse } from '../../test/gherkin_helpers' +import { buildSupportCodeLibrary } from '../../test/runtime_helpers' import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import timeMethods from '../time' import { valueOrDefault } from '../value_checker' -import { PredictableTestRunStopwatch } from './stopwatch' import { assembleTestCases } from './assemble_test_cases' +import { PredictableTestRunStopwatch } from './stopwatch' +import TestCaseRunner from './test_case_runner' import IEnvelope = messages.Envelope interface ITestRunnerRequest { diff --git a/src/stack_trace_filter.ts b/src/stack_trace_filter.ts index 2275d4685..219dbabf4 100644 --- a/src/stack_trace_filter.ts +++ b/src/stack_trace_filter.ts @@ -1,5 +1,6 @@ -import stackChain from 'stack-chain' import path from 'path' +import stackChain from 'stack-chain' + import { valueOrDefault } from './value_checker' import CallSite = NodeJS.CallSite diff --git a/src/step_arguments.ts b/src/step_arguments.ts index 18fa0ee54..47e8c3a2e 100644 --- a/src/step_arguments.ts +++ b/src/step_arguments.ts @@ -1,5 +1,6 @@ -import util from 'util' import * as messages from '@cucumber/messages' +import util from 'util' + import { doesHaveValue } from './value_checker' export interface IPickleStepArgumentFunctionMap { diff --git a/src/support_code_library_builder/build_parameter_type.ts b/src/support_code_library_builder/build_parameter_type.ts index a05258370..dd2eb2ced 100644 --- a/src/support_code_library_builder/build_parameter_type.ts +++ b/src/support_code_library_builder/build_parameter_type.ts @@ -1,4 +1,5 @@ import { ParameterType } from '@cucumber/cucumber-expressions' + import { IParameterTypeDefinition } from './types' export function buildParameterType({ diff --git a/src/support_code_library_builder/get_definition_line_and_uri.ts b/src/support_code_library_builder/get_definition_line_and_uri.ts index 583319e6a..1db4c8a91 100644 --- a/src/support_code_library_builder/get_definition_line_and_uri.ts +++ b/src/support_code_library_builder/get_definition_line_and_uri.ts @@ -1,9 +1,10 @@ -import path from 'path' import { wrapCallSite } from '@cspotcode/source-map-support' +import path from 'path' import stackChain from 'stack-chain' + import { isFileNameInCucumber } from '../stack_trace_filter' -import { doesHaveValue, valueOrDefault } from '../value_checker' import { ILineAndUri } from '../types' +import { doesHaveValue, valueOrDefault } from '../value_checker' import CallSite = NodeJS.CallSite export function getDefinitionLineAndUri( diff --git a/src/support_code_library_builder/get_definition_line_and_uri_spec.ts b/src/support_code_library_builder/get_definition_line_and_uri_spec.ts index 81956f255..084be40ae 100644 --- a/src/support_code_library_builder/get_definition_line_and_uri_spec.ts +++ b/src/support_code_library_builder/get_definition_line_and_uri_spec.ts @@ -1,7 +1,8 @@ import assert from 'assert' -import { getDefinitionLineAndUri } from './get_definition_line_and_uri' import path from 'path' +import { getDefinitionLineAndUri } from './get_definition_line_and_uri' + describe(getDefinitionLineAndUri.name, () => { it('correctly gets the filename of the caller', () => { const includeAnyFile = (): boolean => false diff --git a/src/support_code_library_builder/index.ts b/src/support_code_library_builder/index.ts index a409df609..4b2923ea4 100644 --- a/src/support_code_library_builder/index.ts +++ b/src/support_code_library_builder/index.ts @@ -1,35 +1,35 @@ -import { buildParameterType } from './build_parameter_type' -import { getDefinitionLineAndUri } from './get_definition_line_and_uri' -import { IdGenerator } from '@cucumber/messages' -import * as messages from '@cucumber/messages' -import TestCaseHookDefinition from '../models/test_case_hook_definition' -import TestStepHookDefinition from '../models/test_step_hook_definition' -import TestRunHookDefinition from '../models/test_run_hook_definition' -import StepDefinition from '../models/step_definition' -import { formatLocation } from '../formatter/helpers' -import validateArguments from './validate_arguments' -import arity from 'util-arity' - import { CucumberExpression, ParameterTypeRegistry, RegularExpression, } from '@cucumber/cucumber-expressions' +import { IdGenerator } from '@cucumber/messages' +import * as messages from '@cucumber/messages' +import arity from 'util-arity' + +import { formatLocation } from '../formatter/helpers' +import StepDefinition from '../models/step_definition' +import TestCaseHookDefinition from '../models/test_case_hook_definition' +import TestRunHookDefinition from '../models/test_run_hook_definition' +import TestStepHookDefinition from '../models/test_step_hook_definition' +import { ICanonicalSupportCodeIds } from '../runtime/parallel/command_types' import { doesHaveValue } from '../value_checker' +import { buildParameterType } from './build_parameter_type' +import { getDefinitionLineAndUri } from './get_definition_line_and_uri' import { DefineStepPattern, IDefineStepOptions, IDefineSupportCodeMethods, IDefineTestCaseHookOptions, - IDefineTestStepHookOptions, IDefineTestRunHookOptions, + IDefineTestStepHookOptions, IParameterTypeDefinition, ISupportCodeLibrary, TestCaseHookFunction, TestStepHookFunction, } from './types' +import validateArguments from './validate_arguments' import World from './world' -import { ICanonicalSupportCodeIds } from '../runtime/parallel/command_types' interface IStepDefinitionConfig { code: any diff --git a/src/support_code_library_builder/index_spec.ts b/src/support_code_library_builder/index_spec.ts index 6485741a5..15048952f 100644 --- a/src/support_code_library_builder/index_spec.ts +++ b/src/support_code_library_builder/index_spec.ts @@ -1,10 +1,11 @@ -import { describe, it } from 'mocha' -import { expect } from 'chai' -import sinon from 'sinon' import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' -import supportCodeLibraryBuilder from './' import { IdGenerator } from '@cucumber/messages' +import { expect } from 'chai' +import { describe, it } from 'mocha' +import sinon from 'sinon' + import { getPickleWithTags } from '../../test/gherkin_helpers' +import supportCodeLibraryBuilder from './' const { uuid } = IdGenerator diff --git a/src/support_code_library_builder/types.ts b/src/support_code_library_builder/types.ts index 9f24f0ccb..d979e0070 100644 --- a/src/support_code_library_builder/types.ts +++ b/src/support_code_library_builder/types.ts @@ -1,9 +1,10 @@ +import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' import * as messages from '@cucumber/messages' + +import StepDefinition from '../models/step_definition' import TestCaseHookDefinition from '../models/test_case_hook_definition' -import TestStepHookDefinition from '../models/test_step_hook_definition' import TestRunHookDefinition from '../models/test_run_hook_definition' -import StepDefinition from '../models/step_definition' -import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' +import TestStepHookDefinition from '../models/test_step_hook_definition' import { IWorld } from './world' export type DefineStepPattern = string | RegExp diff --git a/src/time.ts b/src/time.ts index 32ec1c9ed..c29d2f530 100644 --- a/src/time.ts +++ b/src/time.ts @@ -1,5 +1,5 @@ -import { performance } from 'perf_hooks' import * as messages from '@cucumber/messages' +import { performance } from 'perf_hooks' let previousTimestamp: number diff --git a/src/time_spec.ts b/src/time_spec.ts index 2fe66e793..61e9695b8 100644 --- a/src/time_spec.ts +++ b/src/time_spec.ts @@ -1,5 +1,6 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' +import { describe, it } from 'mocha' + import { wrapPromiseWithTimeout } from './time' describe('wrapPromiseWithTimeout()', () => { diff --git a/src/user_code_runner.ts b/src/user_code_runner.ts index 99d05ab93..d585cf830 100644 --- a/src/user_code_runner.ts +++ b/src/user_code_runner.ts @@ -1,6 +1,7 @@ +import util from 'util' + import { wrapPromiseWithTimeout } from './time' import UncaughtExceptionManager from './uncaught_exception_manager' -import util from 'util' import { doesHaveValue } from './value_checker' export interface IRunRequest { diff --git a/src/user_code_runner_spec.ts b/src/user_code_runner_spec.ts index fe028ddee..27b7a8671 100644 --- a/src/user_code_runner_spec.ts +++ b/src/user_code_runner_spec.ts @@ -1,8 +1,9 @@ -import { describe, it } from 'mocha' import { expect } from 'chai' -import UserCodeRunner, { IRunRequest, IRunResponse } from './user_code_runner' +import { describe, it } from 'mocha' import semver from 'semver' +import UserCodeRunner, { IRunRequest, IRunResponse } from './user_code_runner' + async function testUserCodeRunner( opts: Partial ): Promise { diff --git a/test/fake_report_server.ts b/test/fake_report_server.ts index 9fc459e85..91fa741ea 100644 --- a/test/fake_report_server.ts +++ b/test/fake_report_server.ts @@ -1,8 +1,9 @@ -import { AddressInfo, Server, Socket } from 'net' import express from 'express' -import { pipeline, Writable } from 'stream' import http from 'http' +import { AddressInfo, Server, Socket } from 'net' +import { pipeline, Writable } from 'stream' import { promisify } from 'util' + import { doesHaveValue } from '../src/value_checker' type Callback = (err?: Error | null) => void diff --git a/test/fixtures/json_formatter_steps.ts b/test/fixtures/json_formatter_steps.ts index cbef54b22..6aca86f36 100644 --- a/test/fixtures/json_formatter_steps.ts +++ b/test/fixtures/json_formatter_steps.ts @@ -1,9 +1,10 @@ // Tests depend on the lines the steps are defined on -import { buildSupportCodeLibrary } from '../runtime_helpers' -import { ISupportCodeLibrary } from '../../src/support_code_library_builder/types' import { InstalledClock } from '@sinonjs/fake-timers' + import { World } from '../../src' +import { ISupportCodeLibrary } from '../../src/support_code_library_builder/types' +import { buildSupportCodeLibrary } from '../runtime_helpers' export function getJsonFormatterSupportCodeLibrary( clock: InstalledClock diff --git a/test/fixtures/steps.ts b/test/fixtures/steps.ts index 8a09cc5a5..7ed6c01f0 100644 --- a/test/fixtures/steps.ts +++ b/test/fixtures/steps.ts @@ -1,8 +1,8 @@ // Tests depend on the lines the steps are defined on -import { buildSupportCodeLibrary } from '../runtime_helpers' import { ISupportCodeLibrary } from '../../src/support_code_library_builder/types' import World from '../../src/support_code_library_builder/world' +import { buildSupportCodeLibrary } from '../runtime_helpers' export function getBaseSupportCodeLibrary(): ISupportCodeLibrary { return buildSupportCodeLibrary(__dirname, ({ Given }) => { diff --git a/test/fixtures/usage_steps.ts b/test/fixtures/usage_steps.ts index 7d37e91d2..80cc11db4 100644 --- a/test/fixtures/usage_steps.ts +++ b/test/fixtures/usage_steps.ts @@ -1,9 +1,10 @@ // Tests depend on the lines the steps are defined on -import { buildSupportCodeLibrary } from '../runtime_helpers' -import { ISupportCodeLibrary } from '../../src/support_code_library_builder/types' import { InstalledClock } from '@sinonjs/fake-timers' +import { ISupportCodeLibrary } from '../../src/support_code_library_builder/types' +import { buildSupportCodeLibrary } from '../runtime_helpers' + export function getUsageSupportCodeLibrary( clock: InstalledClock ): ISupportCodeLibrary { diff --git a/test/formatter_helpers.ts b/test/formatter_helpers.ts index 8e2825529..951bf5b1d 100644 --- a/test/formatter_helpers.ts +++ b/test/formatter_helpers.ts @@ -1,19 +1,20 @@ -import { buildOptions, buildSupportCodeLibrary } from './runtime_helpers' -import { generateEvents } from './gherkin_helpers' -import Runtime, { IRuntimeOptions } from '../src/runtime' -import { EventEmitter } from 'events' -import { EventDataCollector } from '../src/formatter/helpers' -import FormatterBuilder from '../src/formatter/builder' import { IdGenerator } from '@cucumber/messages' import * as messages from '@cucumber/messages' -import { ISupportCodeLibrary } from '../src/support_code_library_builder/types' -import { ITestCaseAttempt } from '../src/formatter/helpers/event_data_collector' -import { doesNotHaveValue } from '../src/value_checker' -import { IParsedArgvFormatOptions } from '../src/cli/argv_parser' +import { EventEmitter } from 'events' import { PassThrough } from 'stream' -import { emitSupportCodeMessages } from '../src/cli/helpers' import { promisify } from 'util' +import { IParsedArgvFormatOptions } from '../src/cli/argv_parser' +import { emitSupportCodeMessages } from '../src/cli/helpers' +import FormatterBuilder from '../src/formatter/builder' +import { EventDataCollector } from '../src/formatter/helpers' +import { ITestCaseAttempt } from '../src/formatter/helpers/event_data_collector' +import Runtime, { IRuntimeOptions } from '../src/runtime' +import { ISupportCodeLibrary } from '../src/support_code_library_builder/types' +import { doesNotHaveValue } from '../src/value_checker' +import { generateEvents } from './gherkin_helpers' +import { buildOptions, buildSupportCodeLibrary } from './runtime_helpers' + const { uuid } = IdGenerator export interface ITestSource { diff --git a/test/gherkin_helpers.ts b/test/gherkin_helpers.ts index a0b94e187..cf0da550e 100644 --- a/test/gherkin_helpers.ts +++ b/test/gherkin_helpers.ts @@ -1,10 +1,11 @@ -import * as messages from '@cucumber/messages' -import { SourceMediaType } from '@cucumber/messages' -import { doesHaveValue } from '../src/value_checker' import { IGherkinOptions } from '@cucumber/gherkin' import { GherkinStreams } from '@cucumber/gherkin-streams' +import * as messages from '@cucumber/messages' +import { SourceMediaType } from '@cucumber/messages' import { EventEmitter } from 'events' +import { doesHaveValue } from '../src/value_checker' + export interface IParsedSource { pickles: messages.Pickle[] source: messages.Source diff --git a/test/runtime_helpers.ts b/test/runtime_helpers.ts index 90ba04816..760fce8d0 100644 --- a/test/runtime_helpers.ts +++ b/test/runtime_helpers.ts @@ -1,6 +1,7 @@ -import { SupportCodeLibraryBuilder } from '../src/support_code_library_builder' import { IdGenerator } from '@cucumber/messages' + import { IRuntimeOptions } from '../src/runtime' +import { SupportCodeLibraryBuilder } from '../src/support_code_library_builder' import { IDefineSupportCodeMethods, ISupportCodeLibrary, diff --git a/test/test_helper.ts b/test/test_helper.ts index bbe85dea2..0f0e38e19 100644 --- a/test/test_helper.ts +++ b/test/test_helper.ts @@ -1,6 +1,6 @@ import chai from 'chai' -import sinonChai from 'sinon-chai' import dirtyChai from 'dirty-chai' +import sinonChai from 'sinon-chai' chai.use(sinonChai) chai.use(dirtyChai) From 1bd2f3212b3c9ddf666b11710c524a9fb4a2e36c Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Tue, 7 Dec 2021 09:35:14 +0100 Subject: [PATCH 4/7] Add simple-import-sort to dependency-lint ignore list --- dependency-lint.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dependency-lint.yml b/dependency-lint.yml index a4a45798d..a19a0f69c 100644 --- a/dependency-lint.yml +++ b/dependency-lint.yml @@ -23,12 +23,11 @@ ignoreErrors: - bluebird # features/generator_step_definitions.feature - coffeescript # features/compiler.feature - eslint-config-prettier # .eslintrc.yml - extends - prettier - - eslint-config-standard-with-typescript # .eslintrc.yml - extends - standard-with-typescript - eslint-plugin-import # peer dependency of eslint-config-standard-with-typescript - eslint-plugin-node # peer dependency of eslint-config-standard-with-typescript - eslint-plugin-prettier # .eslintrc.yml - extends - prettier - - eslint-plugin-promise # peer dependency of eslint-config-standard-with-typescript - eslint-plugin-standard # peer dependency of eslint-config-standard-with-typescript + - eslint-plugin-simple-import-sort - prettier # peer dependency of eslint-plugin-prettier - ts-node # .mocharc.yml / cucumber.js From 1e79f9fbb66e7da14aa8855fd112602182456dd6 Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Tue, 7 Dec 2021 09:37:19 +0100 Subject: [PATCH 5/7] Revert "Add simple-import-sort to dependency-lint ignore list" This reverts commit 1bd2f3212b3c9ddf666b11710c524a9fb4a2e36c. --- dependency-lint.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dependency-lint.yml b/dependency-lint.yml index a19a0f69c..a4a45798d 100644 --- a/dependency-lint.yml +++ b/dependency-lint.yml @@ -23,11 +23,12 @@ ignoreErrors: - bluebird # features/generator_step_definitions.feature - coffeescript # features/compiler.feature - eslint-config-prettier # .eslintrc.yml - extends - prettier + - eslint-config-standard-with-typescript # .eslintrc.yml - extends - standard-with-typescript - eslint-plugin-import # peer dependency of eslint-config-standard-with-typescript - eslint-plugin-node # peer dependency of eslint-config-standard-with-typescript - eslint-plugin-prettier # .eslintrc.yml - extends - prettier + - eslint-plugin-promise # peer dependency of eslint-config-standard-with-typescript - eslint-plugin-standard # peer dependency of eslint-config-standard-with-typescript - - eslint-plugin-simple-import-sort - prettier # peer dependency of eslint-plugin-prettier - ts-node # .mocharc.yml / cucumber.js From 59f575bd236830681205a304d6681ae86eaaa414 Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Tue, 7 Dec 2021 09:37:59 +0100 Subject: [PATCH 6/7] Revert "Activate eslint-plugin-simple-import-sort" This reverts commit a0075e73cd735942e03cb99eda5b73c53a4eb31a. --- .eslintrc.yml | 4 +- compatibility/cck_spec.ts | 13 +++-- .../features/attachments/attachments.ts | 5 +- .../features/data-tables/data-tables.ts | 3 +- .../examples-tables/examples-tables.ts | 3 +- compatibility/features/hooks/hooks.ts | 3 +- compatibility/features/markdown/markdown.ts | 3 +- compatibility/features/minimal/minimal.ts | 1 - .../parameter-types/parameter-types.ts | 3 +- compatibility/features/rules/rules.ts | 3 +- features/step_definitions/cli_steps.ts | 7 ++- features/step_definitions/file_steps.ts | 9 ++-- features/step_definitions/formatter_steps.ts | 7 ++- features/step_definitions/message_steps.ts | 7 ++- .../step_definitions/report_server_steps.ts | 7 ++- features/step_definitions/usage_json_steps.ts | 5 +- features/support/formatter_output_helpers.ts | 13 +++-- features/support/helpers.ts | 3 +- features/support/hooks.ts | 7 ++- features/support/message_helpers.ts | 9 ++-- ...warn_user_about_enabling_developer_mode.ts | 2 +- features/support/world.ts | 17 +++---- src/cli/argv_parser.ts | 5 +- src/cli/configuration_builder.ts | 13 +++-- src/cli/configuration_builder_spec.ts | 5 +- src/cli/helpers.ts | 23 +++++---- src/cli/helpers_spec.ts | 35 +++++++------ src/cli/i18n.ts | 2 +- src/cli/index.ts | 49 +++++++++---------- src/cli/option_splitter_spec.ts | 3 +- src/cli/profile_loader.ts | 1 - src/cli/profile_loader_spec.ts | 5 +- src/cli/publish_banner.ts | 2 +- src/cli/run.ts | 3 +- src/formatter/builder.ts | 19 ++++--- src/formatter/get_color_fns.ts | 2 +- src/formatter/helpers/event_data_collector.ts | 3 +- src/formatter/helpers/formatters.ts | 2 +- .../helpers/gherkin_document_parser.ts | 1 - .../helpers/gherkin_document_parser_spec.ts | 13 +++-- src/formatter/helpers/index.ts | 6 +-- src/formatter/helpers/issue_helpers.ts | 7 ++- src/formatter/helpers/issue_helpers_spec.ts | 9 ++-- src/formatter/helpers/keyword_type.ts | 1 - src/formatter/helpers/keyword_type_spec.ts | 3 +- src/formatter/helpers/location_helpers.ts | 3 +- src/formatter/helpers/pickle_parser.ts | 3 +- .../helpers/step_argument_formatter.ts | 3 +- src/formatter/helpers/summary_helpers.ts | 5 +- src/formatter/helpers/summary_helpers_spec.ts | 15 +++--- .../helpers/test_case_attempt_formatter.ts | 15 +++--- .../helpers/test_case_attempt_parser.ts | 19 ++++--- .../helpers/test_case_attempt_parser_spec.ts | 13 +++-- src/formatter/helpers/usage_helpers/index.ts | 5 +- .../helpers/usage_helpers/index_spec.ts | 5 +- src/formatter/html_formatter.ts | 7 ++- src/formatter/http_stream.ts | 5 +- src/formatter/http_stream_spec.ts | 5 +- src/formatter/index.ts | 13 +++-- src/formatter/json_formatter.ts | 9 ++-- src/formatter/json_formatter_spec.ts | 9 ++-- src/formatter/message_formatter.ts | 3 +- src/formatter/progress_bar_formatter.ts | 9 ++-- src/formatter/progress_bar_formatter_spec.ts | 25 +++++----- src/formatter/progress_formatter.ts | 5 +- src/formatter/progress_formatter_spec.ts | 9 ++-- src/formatter/rerun_formatter.ts | 7 ++- src/formatter/rerun_formatter_spec.ts | 5 +- src/formatter/snippets_formatter.ts | 5 +- .../step_definition_snippet_builder/index.ts | 7 ++- .../index_spec.ts | 9 ++-- .../javascript_snippet_syntax_spec.ts | 11 ++--- src/formatter/summary_formatter.ts | 9 ++-- src/formatter/summary_formatter_spec.ts | 9 ++-- src/formatter/usage_formatter.ts | 7 ++- src/formatter/usage_formatter_spec.ts | 9 ++-- src/formatter/usage_json_formatter.ts | 7 ++- src/formatter/usage_json_formatter_spec.ts | 7 ++- src/index.ts | 18 +++---- src/models/data_table_spec.ts | 5 +- src/models/definition.ts | 3 +- src/models/step_definition.ts | 7 ++- src/models/test_case_hook_definition.ts | 3 +- src/models/test_case_hook_definition_spec.ts | 5 +- src/models/test_step_hook_definition.ts | 7 ++- src/models/test_step_hook_definition_spec.ts | 5 +- src/pickle_filter.ts | 5 +- src/pickle_filter_spec.ts | 5 +- src/runtime/assemble_test_cases.ts | 5 +- src/runtime/assemble_test_cases_spec.ts | 13 +++-- src/runtime/attachment_manager/index.ts | 3 +- src/runtime/attachment_manager/index_spec.ts | 5 +- src/runtime/helpers.ts | 7 ++- src/runtime/helpers_spec.ts | 7 ++- src/runtime/index.ts | 17 +++---- src/runtime/parallel/command_types.ts | 1 - src/runtime/parallel/coordinator.ts | 15 +++--- src/runtime/parallel/run_worker.ts | 3 +- src/runtime/parallel/worker.ts | 31 ++++++------ src/runtime/step_runner.ts | 7 ++- src/runtime/stopwatch.ts | 2 +- src/runtime/stopwatch_spec.ts | 5 +- src/runtime/test_case_runner.ts | 15 +++--- src/runtime/test_case_runner_spec.ts | 19 ++++--- src/stack_trace_filter.ts | 3 +- src/step_arguments.ts | 3 +- .../build_parameter_type.ts | 1 - .../get_definition_line_and_uri.ts | 5 +- .../get_definition_line_and_uri_spec.ts | 3 +- src/support_code_library_builder/index.ts | 28 +++++------ .../index_spec.ts | 9 ++-- src/support_code_library_builder/types.ts | 7 ++- src/time.ts | 2 +- src/time_spec.ts | 3 +- src/user_code_runner.ts | 3 +- src/user_code_runner_spec.ts | 5 +- test/fake_report_server.ts | 5 +- test/fixtures/json_formatter_steps.ts | 5 +- test/fixtures/steps.ts | 2 +- test/fixtures/usage_steps.ts | 5 +- test/formatter_helpers.ts | 23 +++++---- test/gherkin_helpers.ts | 7 ++- test/runtime_helpers.ts | 3 +- test/test_helper.ts | 2 +- 124 files changed, 426 insertions(+), 539 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 1855f4c79..669fe0987 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -24,6 +24,4 @@ rules: "@typescript-eslint/no-inferrable-types": off "@typescript-eslint/no-empty-function": off "@typescript-eslint/ban-types": off - "@typescript-eslint/no-unused-vars": off - "simple-import-sort/imports": "error" - "simple-import-sort/exports": "error" \ No newline at end of file + "@typescript-eslint/no-unused-vars": off \ No newline at end of file diff --git a/compatibility/cck_spec.ts b/compatibility/cck_spec.ts index 8f4203a6d..0f5f0dbce 100644 --- a/compatibility/cck_spec.ts +++ b/compatibility/cck_spec.ts @@ -1,20 +1,19 @@ -import * as messageStreams from '@cucumber/message-streams' -import * as messages from '@cucumber/messages' +import { describe, it } from 'mocha' import { config, expect, use } from 'chai' import chaiExclude from 'chai-exclude' -import fs from 'fs' import glob from 'glob' -import { describe, it } from 'mocha' +import fs from 'fs' import path from 'path' import { PassThrough, pipeline, Writable } from 'stream' +import { Cli } from '../src' import toString from 'stream-to-string' -import util from 'util' - import { ignorableKeys, normalizeMessageOutput, } from '../features/support/formatter_output_helpers' -import { Cli } from '../src' +import * as messages from '@cucumber/messages' +import * as messageStreams from '@cucumber/message-streams' +import util from 'util' const asyncPipeline = util.promisify(pipeline) const PROJECT_PATH = path.join(__dirname, '..') diff --git a/compatibility/features/attachments/attachments.ts b/compatibility/features/attachments/attachments.ts index ff3ed40fc..4d130baa4 100644 --- a/compatibility/features/attachments/attachments.ts +++ b/compatibility/features/attachments/attachments.ts @@ -1,8 +1,7 @@ +import { Before, When, World } from '../../../src' +import { ReadableStreamBuffer } from 'stream-buffers' import fs from 'fs' import path from 'path' -import { ReadableStreamBuffer } from 'stream-buffers' - -import { Before, When, World } from '../../../src' Before((): void => undefined) diff --git a/compatibility/features/data-tables/data-tables.ts b/compatibility/features/data-tables/data-tables.ts index 72064d75a..e901273fa 100644 --- a/compatibility/features/data-tables/data-tables.ts +++ b/compatibility/features/data-tables/data-tables.ts @@ -1,7 +1,6 @@ +import { When, Then, DataTable } from '../../../src' import { expect } from 'chai' -import { DataTable, Then, When } from '../../../src' - When( 'the following table is transposed:', function (this: any, table: DataTable) { diff --git a/compatibility/features/examples-tables/examples-tables.ts b/compatibility/features/examples-tables/examples-tables.ts index e8c6a8295..e259bd958 100644 --- a/compatibility/features/examples-tables/examples-tables.ts +++ b/compatibility/features/examples-tables/examples-tables.ts @@ -1,6 +1,5 @@ import assert from 'assert' - -import { Given, Then, When } from '../../../src' +import { Given, When, Then } from '../../../src' Given('there are {int} cucumbers', function (this: any, initialCount: number) { this.count = initialCount diff --git a/compatibility/features/hooks/hooks.ts b/compatibility/features/hooks/hooks.ts index 8ffdd41aa..1ce001c6f 100644 --- a/compatibility/features/hooks/hooks.ts +++ b/compatibility/features/hooks/hooks.ts @@ -1,8 +1,7 @@ +import { When, Before, After, World } from '../../../src' import fs from 'fs' import path from 'path' -import { After, Before, When, World } from '../../../src' - Before(function () { // no-op }) diff --git a/compatibility/features/markdown/markdown.ts b/compatibility/features/markdown/markdown.ts index c1dd4c941..8731e3682 100644 --- a/compatibility/features/markdown/markdown.ts +++ b/compatibility/features/markdown/markdown.ts @@ -1,6 +1,5 @@ import assert from 'assert' - -import { DataTable, Given, Then, When, World } from '../../../src' +import { Given, DataTable, Then, When, World } from '../../../src' Given('some TypeScript code:', function (dataTable: DataTable) { assert(dataTable) diff --git a/compatibility/features/minimal/minimal.ts b/compatibility/features/minimal/minimal.ts index 0f726e893..bccc4f289 100644 --- a/compatibility/features/minimal/minimal.ts +++ b/compatibility/features/minimal/minimal.ts @@ -1,5 +1,4 @@ import assert from 'assert' - import { Given } from '../../../src' Given('I have {int} cukes in my belly', function (cukeCount: number) { diff --git a/compatibility/features/parameter-types/parameter-types.ts b/compatibility/features/parameter-types/parameter-types.ts index 0147362c2..8a5a57ed1 100644 --- a/compatibility/features/parameter-types/parameter-types.ts +++ b/compatibility/features/parameter-types/parameter-types.ts @@ -1,7 +1,6 @@ +import { Given, defineParameterType } from '../../../src' import { expect } from 'chai' -import { defineParameterType, Given } from '../../../src' - class Flight { constructor(public readonly from: string, public readonly to: string) {} } diff --git a/compatibility/features/rules/rules.ts b/compatibility/features/rules/rules.ts index 3b90e0ef7..629a15b34 100644 --- a/compatibility/features/rules/rules.ts +++ b/compatibility/features/rules/rules.ts @@ -1,6 +1,5 @@ import assert from 'assert' - -import { Given, Then, When } from '../../../src' +import { Given, When, Then } from '../../../src' Given( 'there are {int} {float} coins inside', diff --git a/features/step_definitions/cli_steps.ts b/features/step_definitions/cli_steps.ts index 432bee228..3735f1866 100644 --- a/features/step_definitions/cli_steps.ts +++ b/features/step_definitions/cli_steps.ts @@ -1,14 +1,13 @@ +import { DataTable, Then, When } from '../../' import { expect } from 'chai' -import Mustache from 'mustache' +import { normalizeText } from '../support/helpers' import stringArgv from 'string-argv' - -import { DataTable, Then, When } from '../../' +import Mustache from 'mustache' import { doesHaveValue, doesNotHaveValue, valueOrDefault, } from '../../src/value_checker' -import { normalizeText } from '../support/helpers' import { World } from '../support/world' const { version } = require('../../package.json') // eslint-disable-line @typescript-eslint/no-var-requires diff --git a/features/step_definitions/file_steps.ts b/features/step_definitions/file_steps.ts index ea667e09e..e671ac05c 100644 --- a/features/step_definitions/file_steps.ts +++ b/features/step_definitions/file_steps.ts @@ -1,11 +1,10 @@ +import { Given, Then } from '../../' import { expect } from 'chai' -import fsExtra from 'fs-extra' -import Mustache from 'mustache' +import { normalizeText } from '../support/helpers' import fs from 'mz/fs' +import fsExtra from 'fs-extra' import path from 'path' - -import { Given, Then } from '../../' -import { normalizeText } from '../support/helpers' +import Mustache from 'mustache' import { World } from '../support/world' Given( diff --git a/features/step_definitions/formatter_steps.ts b/features/step_definitions/formatter_steps.ts index 667e1cd40..f4bc18b7a 100644 --- a/features/step_definitions/formatter_steps.ts +++ b/features/step_definitions/formatter_steps.ts @@ -1,15 +1,14 @@ +import { Then } from '../../' import { expect, use } from 'chai' import chaiExclude from 'chai-exclude' -import fs from 'mz/fs' -import path from 'path' - -import { Then } from '../../' import { ignorableKeys, normalizeJsonOutput, normalizeMessageOutput, stripMetaMessages, } from '../support/formatter_output_helpers' +import fs from 'mz/fs' +import path from 'path' import { World } from '../support/world' use(chaiExclude) diff --git a/features/step_definitions/message_steps.ts b/features/step_definitions/message_steps.ts index 9712b73c2..b4b7c0eb2 100644 --- a/features/step_definitions/message_steps.ts +++ b/features/step_definitions/message_steps.ts @@ -1,8 +1,5 @@ -import * as messages from '@cucumber/messages' -import { expect } from 'chai' -import semver from 'semver' - import { Then } from '../../' +import { expect } from 'chai' import DataTable from '../../src/models/data_table' import { getPickleNamesInOrderOfExecution, @@ -12,7 +9,9 @@ import { getTestStepAttachmentsForStep, getTestStepResults, } from '../support/message_helpers' +import * as messages from '@cucumber/messages' import { World } from '../support/world' +import semver from 'semver' const ENCODING_MAP: { [key: string]: messages.AttachmentContentEncoding } = { IDENTITY: messages.AttachmentContentEncoding.IDENTITY, diff --git a/features/step_definitions/report_server_steps.ts b/features/step_definitions/report_server_steps.ts index 3c89c88a5..2a675c436 100644 --- a/features/step_definitions/report_server_steps.ts +++ b/features/step_definitions/report_server_steps.ts @@ -1,10 +1,9 @@ -import assert from 'assert' +import { Given, Then, DataTable } from '../..' +import { World } from '../support/world' import { expect } from 'chai' import { URL } from 'url' - -import { DataTable, Given, Then } from '../..' import FakeReportServer from '../../test/fake_report_server' -import { World } from '../support/world' +import assert from 'assert' Given( 'a report server is running on {string}', diff --git a/features/step_definitions/usage_json_steps.ts b/features/step_definitions/usage_json_steps.ts index c1e0b1860..1a559d1d9 100644 --- a/features/step_definitions/usage_json_steps.ts +++ b/features/step_definitions/usage_json_steps.ts @@ -1,9 +1,8 @@ +import { DataTable, Then } from '../../' import { expect } from 'chai' import path from 'path' - -import { DataTable, Then } from '../../' -import { IUsage } from '../../src/formatter/helpers/usage_helpers' import { World } from '../support/world' +import { IUsage } from '../../src/formatter/helpers/usage_helpers' Then('it outputs the usage data:', function (this: World, table: DataTable) { const usageData: IUsage[] = JSON.parse(this.lastRun.output) diff --git a/features/support/formatter_output_helpers.ts b/features/support/formatter_output_helpers.ts index 4b6c2a798..f33da9ff3 100644 --- a/features/support/formatter_output_helpers.ts +++ b/features/support/formatter_output_helpers.ts @@ -1,15 +1,14 @@ -import * as messages from '@cucumber/messages' - -import { - IJsonFeature, - IJsonScenario, - IJsonStep, -} from '../../src/formatter/json_formatter' import { doesHaveValue, doesNotHaveValue, valueOrDefault, } from '../../src/value_checker' +import { + IJsonFeature, + IJsonScenario, + IJsonStep, +} from '../../src/formatter/json_formatter' +import * as messages from '@cucumber/messages' // Converting windows stack trace to posix and removing cwd // C:\\project\\path\\features\\support/code.js diff --git a/features/support/helpers.ts b/features/support/helpers.ts index 67ea4ac22..a17b1dc57 100644 --- a/features/support/helpers.ts +++ b/features/support/helpers.ts @@ -1,6 +1,5 @@ -import figures from 'figures' import path from 'path' - +import figures from 'figures' import { normalizeSummaryDuration } from '../../test/formatter_helpers' export function normalizeText(text: string): string { diff --git a/features/support/hooks.ts b/features/support/hooks.ts index 7b082d6e5..686822fbf 100644 --- a/features/support/hooks.ts +++ b/features/support/hooks.ts @@ -1,13 +1,12 @@ +import { After, Before, formatterHelpers } from '../../' import fs from 'fs' import fsExtra from 'fs-extra' import path from 'path' import tmp from 'tmp' - -import { After, Before, formatterHelpers } from '../../' -import { ITestCaseHookParameter } from '../../src/support_code_library_builder/types' import { doesHaveValue } from '../../src/value_checker' -import { warnUserAboutEnablingDeveloperMode } from './warn_user_about_enabling_developer_mode' import { World } from './world' +import { ITestCaseHookParameter } from '../../src/support_code_library_builder/types' +import { warnUserAboutEnablingDeveloperMode } from './warn_user_about_enabling_developer_mode' const projectPath = path.join(__dirname, '..', '..') diff --git a/features/support/message_helpers.ts b/features/support/message_helpers.ts index 5ebed27d4..8fd545675 100644 --- a/features/support/message_helpers.ts +++ b/features/support/message_helpers.ts @@ -1,14 +1,13 @@ -import * as messages from '@cucumber/messages' -import { getWorstTestStepResult } from '@cucumber/messages' -import { Query } from '@cucumber/query' -import util from 'util' - import { getGherkinStepMap } from '../../src/formatter/helpers/gherkin_document_parser' import { getPickleStepMap, getStepKeyword, } from '../../src/formatter/helpers/pickle_parser' +import util from 'util' +import * as messages from '@cucumber/messages' +import { Query } from '@cucumber/query' import { doesHaveValue, doesNotHaveValue } from '../../src/value_checker' +import { getWorstTestStepResult } from '@cucumber/messages' export interface IStepTextAndResult { text: string diff --git a/features/support/warn_user_about_enabling_developer_mode.ts b/features/support/warn_user_about_enabling_developer_mode.ts index da9ee6c39..9afcd37a7 100644 --- a/features/support/warn_user_about_enabling_developer_mode.ts +++ b/features/support/warn_user_about_enabling_developer_mode.ts @@ -1,5 +1,5 @@ -import colors from 'colors/safe' import { reindent } from 'reindent-template-literals' +import colors from 'colors/safe' export function warnUserAboutEnablingDeveloperMode(error: any): void { if (!(error?.code === 'EPERM')) { diff --git a/features/support/world.ts b/features/support/world.ts index 66b02e485..6b908df7a 100644 --- a/features/support/world.ts +++ b/features/support/world.ts @@ -1,18 +1,17 @@ -import * as messageStreams from '@cucumber/message-streams' -import * as messages from '@cucumber/messages' -import { expect } from 'chai' +import { Cli, setWorldConstructor } from '../../' import { execFile } from 'child_process' +import { expect } from 'chai' +import toString from 'stream-to-string' +import { PassThrough, pipeline, Writable } from 'stream' import colors from 'colors/safe' import fs from 'fs' import path from 'path' -import { PassThrough, pipeline, Writable } from 'stream' -import toString from 'stream-to-string' -import util from 'util' import VError from 'verror' - -import { Cli, setWorldConstructor } from '../../' -import { doesHaveValue } from '../../src/value_checker' +import * as messages from '@cucumber/messages' +import * as messageStreams from '@cucumber/message-streams' import FakeReportServer from '../../test/fake_report_server' +import { doesHaveValue } from '../../src/value_checker' +import util from 'util' const asyncPipeline = util.promisify(pipeline) diff --git a/src/cli/argv_parser.ts b/src/cli/argv_parser.ts index 11588e87d..0519a7a1d 100644 --- a/src/cli/argv_parser.ts +++ b/src/cli/argv_parser.ts @@ -1,9 +1,8 @@ -import { dialects } from '@cucumber/gherkin' import { Command } from 'commander' import path from 'path' - -import Formatters from '../formatter/helpers/formatters' +import { dialects } from '@cucumber/gherkin' import { SnippetInterface } from '../formatter/step_definition_snippet_builder/snippet_syntax' +import Formatters from '../formatter/helpers/formatters' // Using require instead of import so compiled typescript will have the desired folder structure const { version } = require('../../package.json') // eslint-disable-line @typescript-eslint/no-var-requires diff --git a/src/cli/configuration_builder.ts b/src/cli/configuration_builder.ts index 9a550f972..384a3da67 100644 --- a/src/cli/configuration_builder.ts +++ b/src/cli/configuration_builder.ts @@ -1,16 +1,15 @@ -import glob from 'glob' +import ArgvParser, { + IParsedArgvFormatOptions, + IParsedArgvOptions, +} from './argv_parser' import fs from 'mz/fs' import path from 'path' +import OptionSplitter from './option_splitter' +import glob from 'glob' import { promisify } from 'util' - import { IPickleFilterOptions } from '../pickle_filter' import { IRuntimeOptions } from '../runtime' import { valueOrDefault } from '../value_checker' -import ArgvParser, { - IParsedArgvFormatOptions, - IParsedArgvOptions, -} from './argv_parser' -import OptionSplitter from './option_splitter' export interface IConfigurationFormat { outputTo: string diff --git a/src/cli/configuration_builder_spec.ts b/src/cli/configuration_builder_spec.ts index db16493d6..b2b8a0111 100644 --- a/src/cli/configuration_builder_spec.ts +++ b/src/cli/configuration_builder_spec.ts @@ -1,12 +1,11 @@ +import { describe, it } from 'mocha' import { expect } from 'chai' +import ConfigurationBuilder from './configuration_builder' import fsExtra from 'fs-extra' -import { describe, it } from 'mocha' import path from 'path' import tmp, { DirOptions } from 'tmp' import { promisify } from 'util' - import { SnippetInterface } from '../formatter/step_definition_snippet_builder/snippet_syntax' -import ConfigurationBuilder from './configuration_builder' async function buildTestWorkingDirectory(): Promise { const cwd = await promisify(tmp.dir)({ diff --git a/src/cli/helpers.ts b/src/cli/helpers.ts index e9afb887a..9c53f9168 100644 --- a/src/cli/helpers.ts +++ b/src/cli/helpers.ts @@ -1,20 +1,19 @@ -import createMeta from '@cucumber/create-meta' -import { IdGenerator } from '@cucumber/messages' -import * as messages from '@cucumber/messages' -import { EventEmitter } from 'events' +import ArgvParser from './argv_parser' +import ProfileLoader from './profile_loader' import shuffle from 'knuth-shuffle-seeded' -import { Readable } from 'stream' - +import { EventEmitter } from 'events' +import PickleFilter from '../pickle_filter' import { EventDataCollector } from '../formatter/helpers' +import { doesHaveValue } from '../value_checker' +import OptionSplitter from './option_splitter' +import { Readable } from 'stream' +import { IdGenerator } from '@cucumber/messages' +import * as messages from '@cucumber/messages' +import createMeta from '@cucumber/create-meta' +import { ISupportCodeLibrary } from '../support_code_library_builder/types' import TestCaseHookDefinition from '../models/test_case_hook_definition' import TestRunHookDefinition from '../models/test_run_hook_definition' -import PickleFilter from '../pickle_filter' import { builtinParameterTypes } from '../support_code_library_builder' -import { ISupportCodeLibrary } from '../support_code_library_builder/types' -import { doesHaveValue } from '../value_checker' -import ArgvParser from './argv_parser' -import OptionSplitter from './option_splitter' -import ProfileLoader from './profile_loader' export interface IGetExpandedArgvRequest { argv: string[] diff --git a/src/cli/helpers_spec.ts b/src/cli/helpers_spec.ts index 2477c0583..f4200b536 100644 --- a/src/cli/helpers_spec.ts +++ b/src/cli/helpers_spec.ts @@ -1,29 +1,28 @@ +import { describe, it } from 'mocha' +import { expect } from 'chai' +import { + emitMetaMessage, + emitSupportCodeMessages, + isJavaScript, + parseGherkinMessageStream, +} from './helpers' +import { EventEmitter } from 'events' +import PickleFilter from '../pickle_filter' +import * as messages from '@cucumber/messages' +import { IdGenerator, SourceMediaType } from '@cucumber/messages' +import { EventDataCollector } from '../formatter/helpers' +import { GherkinStreams } from '@cucumber/gherkin-streams' +import { Readable } from 'stream' +import StepDefinition from '../models/step_definition' import { CucumberExpression, ParameterType, ParameterTypeRegistry, RegularExpression, } from '@cucumber/cucumber-expressions' -import { GherkinStreams } from '@cucumber/gherkin-streams' -import * as messages from '@cucumber/messages' -import { IdGenerator, SourceMediaType } from '@cucumber/messages' -import { expect } from 'chai' -import { EventEmitter } from 'events' -import { describe, it } from 'mocha' -import { Readable } from 'stream' - -import { EventDataCollector } from '../formatter/helpers' -import StepDefinition from '../models/step_definition' +import { ISupportCodeLibrary } from '../support_code_library_builder/types' import TestCaseHookDefinition from '../models/test_case_hook_definition' import TestRunHookDefinition from '../models/test_run_hook_definition' -import PickleFilter from '../pickle_filter' -import { ISupportCodeLibrary } from '../support_code_library_builder/types' -import { - emitMetaMessage, - emitSupportCodeMessages, - isJavaScript, - parseGherkinMessageStream, -} from './helpers' const noopFunction = (): void => { // no code diff --git a/src/cli/i18n.ts b/src/cli/i18n.ts index 8366c9b00..be243e9a1 100644 --- a/src/cli/i18n.ts +++ b/src/cli/i18n.ts @@ -1,6 +1,6 @@ import { dialects } from '@cucumber/gherkin' -import { capitalCase } from 'capital-case' import Table from 'cli-table3' +import { capitalCase } from 'capital-case' const keywords = [ 'feature', diff --git a/src/cli/index.ts b/src/cli/index.ts index 81d6d3a7a..bd5488e60 100644 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -1,28 +1,4 @@ -import { GherkinStreams } from '@cucumber/gherkin-streams' -import { IdGenerator } from '@cucumber/messages' -import { EventEmitter } from 'events' -import fs from 'mz/fs' -import path from 'path' -import { Writable } from 'stream' -import { WriteStream as TtyWriteStream } from 'tty' -import { pathToFileURL } from 'url' -import { promisify } from 'util' - -import Formatter, { IFormatterStream } from '../formatter' -import FormatterBuilder from '../formatter/builder' import { EventDataCollector } from '../formatter/helpers' -import HttpStream from '../formatter/http_stream' -import PickleFilter from '../pickle_filter' -import Runtime from '../runtime' -import ParallelRuntimeCoordinator from '../runtime/parallel/coordinator' -import supportCodeLibraryBuilder from '../support_code_library_builder' -import { ISupportCodeLibrary } from '../support_code_library_builder/types' -import { doesNotHaveValue } from '../value_checker' -import { IParsedArgvFormatOptions } from './argv_parser' -import ConfigurationBuilder, { - IConfiguration, - IConfigurationFormat, -} from './configuration_builder' import { emitMetaMessage, emitSupportCodeMessages, @@ -30,8 +6,31 @@ import { isJavaScript, parseGherkinMessageStream, } from './helpers' -import * as I18n from './i18n' import { validateInstall } from './install_validator' +import * as I18n from './i18n' +import ConfigurationBuilder, { + IConfiguration, + IConfigurationFormat, +} from './configuration_builder' +import { EventEmitter } from 'events' +import FormatterBuilder from '../formatter/builder' +import fs from 'mz/fs' +import path from 'path' +import PickleFilter from '../pickle_filter' +import ParallelRuntimeCoordinator from '../runtime/parallel/coordinator' +import Runtime from '../runtime' +import supportCodeLibraryBuilder from '../support_code_library_builder' +import { IdGenerator } from '@cucumber/messages' +import Formatter, { IFormatterStream } from '../formatter' +import { WriteStream as TtyWriteStream } from 'tty' +import { doesNotHaveValue } from '../value_checker' +import { GherkinStreams } from '@cucumber/gherkin-streams' +import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import { IParsedArgvFormatOptions } from './argv_parser' +import HttpStream from '../formatter/http_stream' +import { promisify } from 'util' +import { Writable } from 'stream' +import { pathToFileURL } from 'url' // eslint-disable-next-line @typescript-eslint/no-var-requires const { importer } = require('../importer') diff --git a/src/cli/option_splitter_spec.ts b/src/cli/option_splitter_spec.ts index ec267cc0a..19ec75c93 100644 --- a/src/cli/option_splitter_spec.ts +++ b/src/cli/option_splitter_spec.ts @@ -1,6 +1,5 @@ -import { expect } from 'chai' import { describe, it } from 'mocha' - +import { expect } from 'chai' import OptionSplitter from './option_splitter' describe('OptionSplitter', () => { diff --git a/src/cli/profile_loader.ts b/src/cli/profile_loader.ts index e03c10c45..8cd97d499 100644 --- a/src/cli/profile_loader.ts +++ b/src/cli/profile_loader.ts @@ -1,7 +1,6 @@ import fs from 'mz/fs' import path from 'path' import stringArgv from 'string-argv' - import { doesHaveValue, doesNotHaveValue } from '../value_checker' const DEFAULT_FILENAMES = ['cucumber.cjs', 'cucumber.js'] diff --git a/src/cli/profile_loader_spec.ts b/src/cli/profile_loader_spec.ts index 019c669d7..fcbe4c035 100644 --- a/src/cli/profile_loader_spec.ts +++ b/src/cli/profile_loader_spec.ts @@ -1,12 +1,11 @@ -import { expect } from 'chai' import { describe, it } from 'mocha' +import { expect } from 'chai' import fs from 'mz/fs' import path from 'path' +import ProfileLoader from './profile_loader' import tmp, { DirOptions } from 'tmp' import { promisify } from 'util' - import { doesHaveValue, valueOrDefault } from '../value_checker' -import ProfileLoader from './profile_loader' interface TestProfileLoaderOptions { definitionsFileContent?: string diff --git a/src/cli/publish_banner.ts b/src/cli/publish_banner.ts index ff1a7aa81..788abaefd 100644 --- a/src/cli/publish_banner.ts +++ b/src/cli/publish_banner.ts @@ -1,5 +1,5 @@ -import Table from 'cli-table3' import colors from 'colors/safe' +import Table from 'cli-table3' const underlineBoldCyan = (x: string): string => colors.underline(colors.bold(colors.cyan(x))) diff --git a/src/cli/run.ts b/src/cli/run.ts index d9f2eae03..c2253d0f2 100644 --- a/src/cli/run.ts +++ b/src/cli/run.ts @@ -1,6 +1,5 @@ -import VError from 'verror' - import Cli, { ICliRunResult } from './' +import VError from 'verror' import publishBanner from './publish_banner' function exitWithError(error: Error): void { diff --git a/src/formatter/builder.ts b/src/formatter/builder.ts index 98f2999dc..fcb20f5ff 100644 --- a/src/formatter/builder.ts +++ b/src/formatter/builder.ts @@ -1,18 +1,17 @@ -import { EventEmitter } from 'events' +import getColorFns from './get_color_fns' +import JavascriptSnippetSyntax from './step_definition_snippet_builder/javascript_snippet_syntax' import path from 'path' -import { Writable as WritableStream } from 'stream' -import { pathToFileURL } from 'url' - -import { IParsedArgvFormatOptions } from '../cli/argv_parser' +import StepDefinitionSnippetBuilder from './step_definition_snippet_builder' import { ISupportCodeLibrary } from '../support_code_library_builder/types' -import { doesHaveValue, doesNotHaveValue } from '../value_checker' import Formatter, { IFormatterCleanupFn, IFormatterLogFn } from '.' -import getColorFns from './get_color_fns' +import { doesHaveValue, doesNotHaveValue } from '../value_checker' +import { EventEmitter } from 'events' import EventDataCollector from './helpers/event_data_collector' -import Formatters from './helpers/formatters' -import StepDefinitionSnippetBuilder from './step_definition_snippet_builder' -import JavascriptSnippetSyntax from './step_definition_snippet_builder/javascript_snippet_syntax' +import { Writable as WritableStream } from 'stream' +import { IParsedArgvFormatOptions } from '../cli/argv_parser' import { SnippetInterface } from './step_definition_snippet_builder/snippet_syntax' +import { pathToFileURL } from 'url' +import Formatters from './helpers/formatters' // eslint-disable-next-line @typescript-eslint/no-var-requires const { importer } = require('../importer') diff --git a/src/formatter/get_color_fns.ts b/src/formatter/get_color_fns.ts index 6e77b3d31..d0a9453ef 100644 --- a/src/formatter/get_color_fns.ts +++ b/src/formatter/get_color_fns.ts @@ -1,5 +1,5 @@ -import { TestStepResultStatus } from '@cucumber/messages' import colors from 'colors/safe' +import { TestStepResultStatus } from '@cucumber/messages' colors.enable() diff --git a/src/formatter/helpers/event_data_collector.ts b/src/formatter/helpers/event_data_collector.ts index 6332d225a..d976d1417 100644 --- a/src/formatter/helpers/event_data_collector.ts +++ b/src/formatter/helpers/event_data_collector.ts @@ -1,7 +1,6 @@ import * as messages from '@cucumber/messages' -import { EventEmitter } from 'events' - import { doesHaveValue, doesNotHaveValue } from '../../value_checker' +import { EventEmitter } from 'events' interface ITestCaseAttemptData { attempt: number diff --git a/src/formatter/helpers/formatters.ts b/src/formatter/helpers/formatters.ts index 632e45b14..d5a2698f5 100644 --- a/src/formatter/helpers/formatters.ts +++ b/src/formatter/helpers/formatters.ts @@ -1,5 +1,4 @@ import Formatter from '../.' -import HtmlFormatter from '../html_formatter' import JsonFormatter from '../json_formatter' import MessageFormatter from '../message_formatter' import ProgressBarFormatter from '../progress_bar_formatter' @@ -9,6 +8,7 @@ import SnippetsFormatter from '../snippets_formatter' import SummaryFormatter from '../summary_formatter' import UsageFormatter from '../usage_formatter' import UsageJsonFormatter from '../usage_json_formatter' +import HtmlFormatter from '../html_formatter' const Formatters = { getFormatters(): Record { diff --git a/src/formatter/helpers/gherkin_document_parser.ts b/src/formatter/helpers/gherkin_document_parser.ts index eae374bf6..8b4763181 100644 --- a/src/formatter/helpers/gherkin_document_parser.ts +++ b/src/formatter/helpers/gherkin_document_parser.ts @@ -1,5 +1,4 @@ import * as messages from '@cucumber/messages' - import { doesHaveValue } from '../../value_checker' export function getGherkinStepMap( diff --git a/src/formatter/helpers/gherkin_document_parser_spec.ts b/src/formatter/helpers/gherkin_document_parser_spec.ts index b63007778..8bea18ee7 100644 --- a/src/formatter/helpers/gherkin_document_parser_spec.ts +++ b/src/formatter/helpers/gherkin_document_parser_spec.ts @@ -1,17 +1,16 @@ -import * as messages from '@cucumber/messages' -import { expect } from 'chai' import { describe, it } from 'mocha' - -import { - IParsedSourceWithEnvelopes, - parse, -} from '../../../test/gherkin_helpers' +import { expect } from 'chai' import { getGherkinExampleRuleMap, getGherkinScenarioLocationMap, getGherkinScenarioMap, getGherkinStepMap, } from './gherkin_document_parser' +import { + IParsedSourceWithEnvelopes, + parse, +} from '../../../test/gherkin_helpers' +import * as messages from '@cucumber/messages' import IGherkinDocument = messages.GherkinDocument import { reindent } from 'reindent-template-literals' diff --git a/src/formatter/helpers/index.ts b/src/formatter/helpers/index.ts index 4f363ab03..f7f430ded 100644 --- a/src/formatter/helpers/index.ts +++ b/src/formatter/helpers/index.ts @@ -1,11 +1,11 @@ import * as GherkinDocumentParser from './gherkin_document_parser' import * as PickleParser from './pickle_parser' +export { parseTestCaseAttempt } from './test_case_attempt_parser' export { default as EventDataCollector } from './event_data_collector' -export { formatIssue, isFailure, isIssue, isWarning } from './issue_helpers' -export { getStepKeywordType, KeywordType } from './keyword_type' +export { KeywordType, getStepKeywordType } from './keyword_type' +export { formatIssue, isWarning, isFailure, isIssue } from './issue_helpers' export { formatLocation } from './location_helpers' export { formatSummary } from './summary_helpers' -export { parseTestCaseAttempt } from './test_case_attempt_parser' export { getUsage } from './usage_helpers' export { GherkinDocumentParser, PickleParser } diff --git a/src/formatter/helpers/issue_helpers.ts b/src/formatter/helpers/issue_helpers.ts index dead022eb..02fa6f419 100644 --- a/src/formatter/helpers/issue_helpers.ts +++ b/src/formatter/helpers/issue_helpers.ts @@ -1,11 +1,10 @@ -import * as messages from '@cucumber/messages' import indentString from 'indent-string' - -import { ISupportCodeLibrary } from '../../support_code_library_builder/types' +import { formatTestCaseAttempt } from './test_case_attempt_formatter' +import * as messages from '@cucumber/messages' import { IColorFns } from '../get_color_fns' import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' +import { ISupportCodeLibrary } from '../../support_code_library_builder/types' import { ITestCaseAttempt } from './event_data_collector' -import { formatTestCaseAttempt } from './test_case_attempt_formatter' export function isFailure( result: messages.TestStepResult, diff --git a/src/formatter/helpers/issue_helpers_spec.ts b/src/formatter/helpers/issue_helpers_spec.ts index 86bc2cd41..f60cfed10 100644 --- a/src/formatter/helpers/issue_helpers_spec.ts +++ b/src/formatter/helpers/issue_helpers_spec.ts @@ -1,13 +1,12 @@ +import { describe, it } from 'mocha' import { expect } from 'chai' +import getColorFns from '../get_color_fns' +import { formatIssue } from './issue_helpers' import figures from 'figures' -import { describe, it } from 'mocha' +import { getTestCaseAttempts } from '../../../test/formatter_helpers' import { reindent } from 'reindent-template-literals' - import { getBaseSupportCodeLibrary } from '../../../test/fixtures/steps' -import { getTestCaseAttempts } from '../../../test/formatter_helpers' import FormatterBuilder from '../builder' -import getColorFns from '../get_color_fns' -import { formatIssue } from './issue_helpers' async function testFormatIssue(sourceData: string): Promise { const sources = [ diff --git a/src/formatter/helpers/keyword_type.ts b/src/formatter/helpers/keyword_type.ts index 7223afab0..59be776d0 100644 --- a/src/formatter/helpers/keyword_type.ts +++ b/src/formatter/helpers/keyword_type.ts @@ -1,5 +1,4 @@ import { Dialect, dialects } from '@cucumber/gherkin' - import { doesHaveValue } from '../../value_checker' export enum KeywordType { diff --git a/src/formatter/helpers/keyword_type_spec.ts b/src/formatter/helpers/keyword_type_spec.ts index 48f64bdb1..659070319 100644 --- a/src/formatter/helpers/keyword_type_spec.ts +++ b/src/formatter/helpers/keyword_type_spec.ts @@ -1,6 +1,5 @@ -import { expect } from 'chai' import { describe, it } from 'mocha' - +import { expect } from 'chai' import { getStepKeywordType, KeywordType } from './keyword_type' describe('KeywordType', () => { diff --git a/src/formatter/helpers/location_helpers.ts b/src/formatter/helpers/location_helpers.ts index 0318a9ed3..fd212b01c 100644 --- a/src/formatter/helpers/location_helpers.ts +++ b/src/formatter/helpers/location_helpers.ts @@ -1,7 +1,6 @@ import path from 'path' - -import { ILineAndUri } from '../../types' import { doesHaveValue } from '../../value_checker' +import { ILineAndUri } from '../../types' export function formatLocation(obj: ILineAndUri, cwd?: string): string { let uri = obj.uri diff --git a/src/formatter/helpers/pickle_parser.ts b/src/formatter/helpers/pickle_parser.ts index a8d5888d4..166ee3144 100644 --- a/src/formatter/helpers/pickle_parser.ts +++ b/src/formatter/helpers/pickle_parser.ts @@ -1,6 +1,5 @@ -import * as messages from '@cucumber/messages' - import { getGherkinScenarioLocationMap } from './gherkin_document_parser' +import * as messages from '@cucumber/messages' export interface IGetPickleLocationRequest { gherkinDocument: messages.GherkinDocument diff --git a/src/formatter/helpers/step_argument_formatter.ts b/src/formatter/helpers/step_argument_formatter.ts index 2ec077f9b..7381056cc 100644 --- a/src/formatter/helpers/step_argument_formatter.ts +++ b/src/formatter/helpers/step_argument_formatter.ts @@ -1,7 +1,6 @@ -import * as messages from '@cucumber/messages' import Table from 'cli-table3' - import { parseStepArgument } from '../../step_arguments' +import * as messages from '@cucumber/messages' function formatDataTable(dataTable: messages.PickleTable): string { const table = new Table({ diff --git a/src/formatter/helpers/summary_helpers.ts b/src/formatter/helpers/summary_helpers.ts index 67ec6316e..e18bfb9d9 100644 --- a/src/formatter/helpers/summary_helpers.ts +++ b/src/formatter/helpers/summary_helpers.ts @@ -1,9 +1,8 @@ -import * as messages from '@cucumber/messages' import Duration from 'duration' - -import { doesHaveValue } from '../../value_checker' import { IColorFns } from '../get_color_fns' import { ITestCaseAttempt } from './event_data_collector' +import * as messages from '@cucumber/messages' +import { doesHaveValue } from '../../value_checker' const STATUS_REPORT_ORDER = [ messages.TestStepResultStatus.FAILED, diff --git a/src/formatter/helpers/summary_helpers_spec.ts b/src/formatter/helpers/summary_helpers_spec.ts index 460b5c5d0..bc3dba4be 100644 --- a/src/formatter/helpers/summary_helpers_spec.ts +++ b/src/formatter/helpers/summary_helpers_spec.ts @@ -1,17 +1,16 @@ -import * as messages from '@cucumber/messages' -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import { expect } from 'chai' import { afterEach, beforeEach, describe, it } from 'mocha' - -import { getBaseSupportCodeLibrary } from '../../../test/fixtures/steps' +import { expect } from 'chai' +import getColorFns from '../get_color_fns' +import { formatSummary } from './summary_helpers' import { getTestCaseAttempts } from '../../../test/formatter_helpers' +import { getBaseSupportCodeLibrary } from '../../../test/fixtures/steps' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' +import timeMethods, { durationBetweenTimestamps } from '../../time' import { buildSupportCodeLibrary } from '../../../test/runtime_helpers' import { IRuntimeOptions } from '../../runtime' import { ISupportCodeLibrary } from '../../support_code_library_builder/types' -import timeMethods, { durationBetweenTimestamps } from '../../time' import { doesNotHaveValue } from '../../value_checker' -import getColorFns from '../get_color_fns' -import { formatSummary } from './summary_helpers' +import * as messages from '@cucumber/messages' interface ITestFormatSummaryOptions { runtimeOptions?: Partial diff --git a/src/formatter/helpers/test_case_attempt_formatter.ts b/src/formatter/helpers/test_case_attempt_formatter.ts index 7a70c6713..3c67c3cb0 100644 --- a/src/formatter/helpers/test_case_attempt_formatter.ts +++ b/src/formatter/helpers/test_case_attempt_formatter.ts @@ -1,18 +1,17 @@ +import indentString from 'indent-string' import * as messages from '@cucumber/messages' import figures from 'figures' -import indentString from 'indent-string' - -import { ISupportCodeLibrary } from '../../support_code_library_builder/types' -import { doesHaveValue, valueOrDefault } from '../../value_checker' -import { IColorFns } from '../get_color_fns' -import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' -import { ITestCaseAttempt } from './event_data_collector' import { formatLocation } from './location_helpers' -import { formatStepArgument } from './step_argument_formatter' import { IParsedTestStep, parseTestCaseAttempt, } from './test_case_attempt_parser' +import { formatStepArgument } from './step_argument_formatter' +import { IColorFns } from '../get_color_fns' +import { doesHaveValue, valueOrDefault } from '../../value_checker' +import { ITestCaseAttempt } from './event_data_collector' +import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' +import { ISupportCodeLibrary } from '../../support_code_library_builder/types' const CHARACTERS: Map = new Map([ [messages.TestStepResultStatus.AMBIGUOUS, figures.cross], diff --git a/src/formatter/helpers/test_case_attempt_parser.ts b/src/formatter/helpers/test_case_attempt_parser.ts index 59200ab38..886eb75cd 100644 --- a/src/formatter/helpers/test_case_attempt_parser.ts +++ b/src/formatter/helpers/test_case_attempt_parser.ts @@ -1,18 +1,17 @@ -import * as messages from '@cucumber/messages' -import { TestStepResult } from '@cucumber/messages' - -import TestCaseHookDefinition from '../../models/test_case_hook_definition' -import { ISupportCodeLibrary } from '../../support_code_library_builder/types' -import { ILineAndUri } from '../../types' -import { doesHaveValue, valueOrDefault } from '../../value_checker' -import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' -import { ITestCaseAttempt } from './event_data_collector' +import { getStepKeywordType, KeywordType } from './keyword_type' import { getGherkinScenarioLocationMap, getGherkinStepMap, } from './gherkin_document_parser' -import { getStepKeywordType, KeywordType } from './keyword_type' import { getPickleStepMap, getStepKeyword } from './pickle_parser' +import * as messages from '@cucumber/messages' +import { ITestCaseAttempt } from './event_data_collector' +import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' +import { ISupportCodeLibrary } from '../../support_code_library_builder/types' +import { doesHaveValue, valueOrDefault } from '../../value_checker' +import TestCaseHookDefinition from '../../models/test_case_hook_definition' +import { ILineAndUri } from '../../types' +import { TestStepResult } from '@cucumber/messages' export interface IParsedTestStep { actionLocation?: ILineAndUri diff --git a/src/formatter/helpers/test_case_attempt_parser_spec.ts b/src/formatter/helpers/test_case_attempt_parser_spec.ts index f14929aa9..796ddbde4 100644 --- a/src/formatter/helpers/test_case_attempt_parser_spec.ts +++ b/src/formatter/helpers/test_case_attempt_parser_spec.ts @@ -1,13 +1,12 @@ -import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' -import * as messages from '@cucumber/messages' -import { expect } from 'chai' import { describe, it } from 'mocha' -import { reindent } from 'reindent-template-literals' - +import { expect } from 'chai' +import * as messages from '@cucumber/messages' +import { parseTestCaseAttempt } from '.' import { getBaseSupportCodeLibrary } from '../../../test/fixtures/steps' -import { getTestCaseAttempts } from '../../../test/formatter_helpers' import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder' -import { parseTestCaseAttempt } from '.' +import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' +import { reindent } from 'reindent-template-literals' +import { getTestCaseAttempts } from '../../../test/formatter_helpers' describe('TestCaseAttemptParser', () => { describe('parseTestCaseAttempt', () => { diff --git a/src/formatter/helpers/usage_helpers/index.ts b/src/formatter/helpers/usage_helpers/index.ts index 666c99814..cfd327948 100644 --- a/src/formatter/helpers/usage_helpers/index.ts +++ b/src/formatter/helpers/usage_helpers/index.ts @@ -1,10 +1,9 @@ +import { getPickleStepMap } from '../pickle_parser' +import { getGherkinStepMap } from '../gherkin_document_parser' import * as messages from '@cucumber/messages' - import StepDefinition from '../../../models/step_definition' import { doesHaveValue } from '../../../value_checker' import EventDataCollector from '../event_data_collector' -import { getGherkinStepMap } from '../gherkin_document_parser' -import { getPickleStepMap } from '../pickle_parser' export interface IUsageMatch { duration?: messages.Duration diff --git a/src/formatter/helpers/usage_helpers/index_spec.ts b/src/formatter/helpers/usage_helpers/index_spec.ts index 4b88af695..081224a2a 100644 --- a/src/formatter/helpers/usage_helpers/index_spec.ts +++ b/src/formatter/helpers/usage_helpers/index_spec.ts @@ -1,9 +1,8 @@ -import { expect } from 'chai' import { describe, it } from 'mocha' - +import { expect } from 'chai' +import { getUsage } from './' import { getEnvelopesAndEventDataCollector } from '../../../../test/formatter_helpers' import { buildSupportCodeLibrary } from '../../../../test/runtime_helpers' -import { getUsage } from './' describe('Usage Helpers', () => { describe('getUsage', () => { diff --git a/src/formatter/html_formatter.ts b/src/formatter/html_formatter.ts index 770207dd2..458e76fae 100644 --- a/src/formatter/html_formatter.ts +++ b/src/formatter/html_formatter.ts @@ -1,12 +1,11 @@ -import CucumberHtmlStream from '@cucumber/html-formatter' +import Formatter, { IFormatterOptions } from '.' import * as messages from '@cucumber/messages' import resolvePkg from 'resolve-pkg' +import CucumberHtmlStream from '@cucumber/html-formatter' +import { doesHaveValue } from '../value_checker' import { finished } from 'stream' import { promisify } from 'util' -import { doesHaveValue } from '../value_checker' -import Formatter, { IFormatterOptions } from '.' - export default class HtmlFormatter extends Formatter { private readonly _finished: Promise public static readonly documentation: string = 'Outputs HTML report' diff --git a/src/formatter/http_stream.ts b/src/formatter/http_stream.ts index 7e2534104..49a51e579 100644 --- a/src/formatter/http_stream.ts +++ b/src/formatter/http_stream.ts @@ -1,9 +1,8 @@ +import { pipeline, Transform, Writable } from 'stream' +import tmp from 'tmp' import fs from 'fs' import http from 'http' import https from 'https' -import { pipeline, Transform, Writable } from 'stream' -import tmp from 'tmp' - import { doesHaveValue } from '../value_checker' type HttpMethod = 'GET' | 'POST' | 'PUT' diff --git a/src/formatter/http_stream_spec.ts b/src/formatter/http_stream_spec.ts index 6f113dfac..a49ccfba1 100644 --- a/src/formatter/http_stream_spec.ts +++ b/src/formatter/http_stream_spec.ts @@ -1,8 +1,7 @@ import assert from 'assert' -import { Writable } from 'stream' - -import FakeReportServer from '../../test/fake_report_server' import HttpStream from './http_stream' +import FakeReportServer from '../../test/fake_report_server' +import { Writable } from 'stream' type Callback = (err?: Error | null) => void diff --git a/src/formatter/index.ts b/src/formatter/index.ts index 75149dc36..16ff0ad28 100644 --- a/src/formatter/index.ts +++ b/src/formatter/index.ts @@ -1,14 +1,13 @@ -import { EventEmitter } from 'events' -import { WriteStream as FsWriteStream } from 'fs' +import { IColorFns } from './get_color_fns' +import { EventDataCollector } from './helpers' +import StepDefinitionSnippetBuilder from './step_definition_snippet_builder' import { PassThrough, Writable as WritableStream } from 'stream' +import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import { WriteStream as FsWriteStream } from 'fs' import { WriteStream as TtyWriteStream } from 'tty' - +import { EventEmitter } from 'events' import { IParsedArgvFormatOptions } from '../cli/argv_parser' -import { ISupportCodeLibrary } from '../support_code_library_builder/types' -import { IColorFns } from './get_color_fns' -import { EventDataCollector } from './helpers' import HttpStream from './http_stream' -import StepDefinitionSnippetBuilder from './step_definition_snippet_builder' export type IFormatterStream = | FsWriteStream diff --git a/src/formatter/json_formatter.ts b/src/formatter/json_formatter.ts index 89b9d4db3..cb1396f1a 100644 --- a/src/formatter/json_formatter.ts +++ b/src/formatter/json_formatter.ts @@ -1,14 +1,13 @@ -import * as messages from '@cucumber/messages' - -import { parseStepArgument } from '../step_arguments' -import { doesHaveValue, doesNotHaveValue } from '../value_checker' import Formatter, { IFormatterOptions } from './' import { formatLocation, GherkinDocumentParser, PickleParser } from './helpers' -import { ITestCaseAttempt } from './helpers/event_data_collector' +import * as messages from '@cucumber/messages' import { getGherkinExampleRuleMap, getGherkinScenarioLocationMap, } from './helpers/gherkin_document_parser' +import { ITestCaseAttempt } from './helpers/event_data_collector' +import { doesHaveValue, doesNotHaveValue } from '../value_checker' +import { parseStepArgument } from '../step_arguments' const { getGherkinStepMap, getGherkinScenarioMap } = GherkinDocumentParser diff --git a/src/formatter/json_formatter_spec.ts b/src/formatter/json_formatter_spec.ts index bb54fee18..de84daedc 100644 --- a/src/formatter/json_formatter_spec.ts +++ b/src/formatter/json_formatter_spec.ts @@ -1,14 +1,13 @@ -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import { expect } from 'chai' import { afterEach, beforeEach, describe, it } from 'mocha' - -import { IJsonFeature, IJsonScenario } from '../../lib/formatter/json_formatter' +import { expect } from 'chai' +import { testFormatter } from '../../test/formatter_helpers' import { getJsonFormatterSupportCodeLibrary, getJsonFormatterSupportCodeLibraryWithHooks, } from '../../test/fixtures/json_formatter_steps' -import { testFormatter } from '../../test/formatter_helpers' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' import timeMethods from '../time' +import { IJsonFeature, IJsonScenario } from '../../lib/formatter/json_formatter' describe('JsonFormatter', () => { let clock: InstalledClock diff --git a/src/formatter/message_formatter.ts b/src/formatter/message_formatter.ts index 2771cfe90..15f47b0e0 100644 --- a/src/formatter/message_formatter.ts +++ b/src/formatter/message_formatter.ts @@ -1,6 +1,5 @@ -import * as messages from '@cucumber/messages' - import Formatter, { IFormatterOptions } from '.' +import * as messages from '@cucumber/messages' export default class MessageFormatter extends Formatter { public static readonly documentation: string = 'Outputs protobuf messages' diff --git a/src/formatter/progress_bar_formatter.ts b/src/formatter/progress_bar_formatter.ts index f05d12ca4..660b3994f 100644 --- a/src/formatter/progress_bar_formatter.ts +++ b/src/formatter/progress_bar_formatter.ts @@ -1,12 +1,11 @@ -import * as messages from '@cucumber/messages' +import { formatIssue, formatSummary, isIssue } from './helpers' +import Formatter, { IFormatterOptions } from './' import ProgressBar from 'progress' import { WriteStream as TtyWriteStream } from 'tty' - -import { durationBetweenTimestamps } from '../time' +import * as messages from '@cucumber/messages' import { doesHaveValue, valueOrDefault } from '../value_checker' -import Formatter, { IFormatterOptions } from './' -import { formatIssue, formatSummary, isIssue } from './helpers' import { formatUndefinedParameterType } from './helpers/issue_helpers' +import { durationBetweenTimestamps } from '../time' // Inspired by https://github.com/thekompanee/fuubar and https://github.com/martinciu/fuubar-cucumber export default class ProgressBarFormatter extends Formatter { diff --git a/src/formatter/progress_bar_formatter_spec.ts b/src/formatter/progress_bar_formatter_spec.ts index c4aabf3a1..c0709331a 100644 --- a/src/formatter/progress_bar_formatter_spec.ts +++ b/src/formatter/progress_bar_formatter_spec.ts @@ -1,27 +1,26 @@ -import * as messages from '@cucumber/messages' -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import { expect } from 'chai' -import { EventEmitter } from 'events' import { afterEach, beforeEach, describe, it } from 'mocha' -import ProgressBar from 'progress' +import { expect } from 'chai' import sinon from 'sinon' -import { PassThrough } from 'stream' -import { promisify } from 'util' - -import { getBaseSupportCodeLibrary } from '../../test/fixtures/steps' +import { EventEmitter } from 'events' +import { EventDataCollector } from './helpers' import { getEnvelopesAndEventDataCollector, ITestSource, normalizeSummaryDuration, } from '../../test/formatter_helpers' import { buildSupportCodeLibrary } from '../../test/runtime_helpers' +import FormatterBuilder from './builder' +import { getBaseSupportCodeLibrary } from '../../test/fixtures/steps' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' +import timeMethods from '../time' import { IRuntimeOptions } from '../runtime' +import * as messages from '@cucumber/messages' import { ISupportCodeLibrary } from '../support_code_library_builder/types' -import timeMethods from '../time' -import { doesHaveValue, doesNotHaveValue } from '../value_checker' -import FormatterBuilder from './builder' -import { EventDataCollector } from './helpers' import ProgressBarFormatter from './progress_bar_formatter' +import { doesHaveValue, doesNotHaveValue } from '../value_checker' +import { PassThrough } from 'stream' +import ProgressBar from 'progress' +import { promisify } from 'util' interface ITestProgressBarFormatterOptions { runtimeOptions?: Partial diff --git a/src/formatter/progress_formatter.ts b/src/formatter/progress_formatter.ts index 64677e054..cc6198c6c 100644 --- a/src/formatter/progress_formatter.ts +++ b/src/formatter/progress_formatter.ts @@ -1,8 +1,7 @@ -import * as messages from '@cucumber/messages' - +import SummaryFormatter from './summary_formatter' import { doesHaveValue } from '../value_checker' import { IFormatterOptions } from './index' -import SummaryFormatter from './summary_formatter' +import * as messages from '@cucumber/messages' import IEnvelope = messages.Envelope import ITestStepFinished = messages.TestStepFinished diff --git a/src/formatter/progress_formatter_spec.ts b/src/formatter/progress_formatter_spec.ts index d6e797438..b7581f2cd 100644 --- a/src/formatter/progress_formatter_spec.ts +++ b/src/formatter/progress_formatter_spec.ts @@ -1,11 +1,10 @@ -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import { expect } from 'chai' -import figures from 'figures' import { afterEach, beforeEach, describe, it } from 'mocha' -import { reindent } from 'reindent-template-literals' - +import { expect } from 'chai' import { getBaseSupportCodeLibrary } from '../../test/fixtures/steps' import { testFormatter } from '../../test/formatter_helpers' +import { reindent } from 'reindent-template-literals' +import figures from 'figures' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' import timeMethods from '../time' describe('ProgressFormatter', () => { diff --git a/src/formatter/rerun_formatter.ts b/src/formatter/rerun_formatter.ts index ade9eecb5..ad840e14d 100644 --- a/src/formatter/rerun_formatter.ts +++ b/src/formatter/rerun_formatter.ts @@ -1,12 +1,11 @@ -import * as messages from '@cucumber/messages' - +import Formatter, { IFormatterOptions } from './' +import { getGherkinScenarioLocationMap } from './helpers/gherkin_document_parser' import { doesHaveValue, doesNotHaveValue, valueOrDefault, } from '../value_checker' -import Formatter, { IFormatterOptions } from './' -import { getGherkinScenarioLocationMap } from './helpers/gherkin_document_parser' +import * as messages from '@cucumber/messages' const DEFAULT_SEPARATOR = '\n' diff --git a/src/formatter/rerun_formatter_spec.ts b/src/formatter/rerun_formatter_spec.ts index 536aaa80e..fd9e1c5bf 100644 --- a/src/formatter/rerun_formatter_spec.ts +++ b/src/formatter/rerun_formatter_spec.ts @@ -1,8 +1,7 @@ -import { expect } from 'chai' import { describe, it } from 'mocha' - -import { testFormatter } from '../../test/formatter_helpers' +import { expect } from 'chai' import { buildSupportCodeLibrary } from '../../test/runtime_helpers' +import { testFormatter } from '../../test/formatter_helpers' const onePickleSources = [ { diff --git a/src/formatter/snippets_formatter.ts b/src/formatter/snippets_formatter.ts index 38ca00a17..bbc936d37 100644 --- a/src/formatter/snippets_formatter.ts +++ b/src/formatter/snippets_formatter.ts @@ -1,8 +1,7 @@ -import * as messages from '@cucumber/messages' - -import { doesHaveValue } from '../value_checker' import Formatter, { IFormatterOptions } from './' import { parseTestCaseAttempt } from './helpers' +import { doesHaveValue } from '../value_checker' +import * as messages from '@cucumber/messages' import IEnvelope = messages.Envelope export default class SnippetsFormatter extends Formatter { diff --git a/src/formatter/step_definition_snippet_builder/index.ts b/src/formatter/step_definition_snippet_builder/index.ts index afb5c2502..ce7065d1e 100644 --- a/src/formatter/step_definition_snippet_builder/index.ts +++ b/src/formatter/step_definition_snippet_builder/index.ts @@ -1,13 +1,12 @@ +import { KeywordType } from '../helpers' +import { parseStepArgument } from '../../step_arguments' +import { ISnippetSnytax } from './snippet_syntax' import { CucumberExpressionGenerator, ParameterTypeRegistry, } from '@cucumber/cucumber-expressions' import * as messages from '@cucumber/messages' - -import { parseStepArgument } from '../../step_arguments' import { doesHaveValue } from '../../value_checker' -import { KeywordType } from '../helpers' -import { ISnippetSnytax } from './snippet_syntax' export interface INewStepDefinitionSnippetBuilderOptions { snippetSyntax: ISnippetSnytax diff --git a/src/formatter/step_definition_snippet_builder/index_spec.ts b/src/formatter/step_definition_snippet_builder/index_spec.ts index 805b6afac..b7d22a798 100644 --- a/src/formatter/step_definition_snippet_builder/index_spec.ts +++ b/src/formatter/step_definition_snippet_builder/index_spec.ts @@ -1,12 +1,11 @@ -import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' -import { expect } from 'chai' import { describe, it } from 'mocha' -import sinon from 'sinon' - -import { getPickleStepWithText } from '../../../test/gherkin_helpers' +import { expect } from 'chai' import { KeywordType } from '../helpers' import StepDefinitionSnippetBuilder, { IBuildRequest } from './' +import sinon from 'sinon' +import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' import { ISnippetSyntaxBuildOptions } from './snippet_syntax' +import { getPickleStepWithText } from '../../../test/gherkin_helpers' function testStepDefinitionBuilder( request: IBuildRequest diff --git a/src/formatter/step_definition_snippet_builder/javascript_snippet_syntax_spec.ts b/src/formatter/step_definition_snippet_builder/javascript_snippet_syntax_spec.ts index 8ce19e64a..7d76edb94 100644 --- a/src/formatter/step_definition_snippet_builder/javascript_snippet_syntax_spec.ts +++ b/src/formatter/step_definition_snippet_builder/javascript_snippet_syntax_spec.ts @@ -1,16 +1,15 @@ +import { describe, it } from 'mocha' +import { expect } from 'chai' +import JavascriptSnippetSyntax from './javascript_snippet_syntax' +import { SnippetInterface } from './snippet_syntax' +import { ISnippetSyntaxBuildOptions } from '../../../lib/formatter/step_definition_snippet_builder/snippet_syntax' import { CucumberExpressionGenerator, GeneratedExpression, ParameterTypeRegistry, } from '@cucumber/cucumber-expressions' -import { expect } from 'chai' -import { describe, it } from 'mocha' import { reindent } from 'reindent-template-literals' -import { ISnippetSyntaxBuildOptions } from '../../../lib/formatter/step_definition_snippet_builder/snippet_syntax' -import JavascriptSnippetSyntax from './javascript_snippet_syntax' -import { SnippetInterface } from './snippet_syntax' - function generateExpressions(text: string): readonly GeneratedExpression[] { const parameterTypeRegistry = new ParameterTypeRegistry() const cucumberExpressionGenerator = new CucumberExpressionGenerator( diff --git a/src/formatter/summary_formatter.ts b/src/formatter/summary_formatter.ts index 0bc39e618..f91034a3d 100644 --- a/src/formatter/summary_formatter.ts +++ b/src/formatter/summary_formatter.ts @@ -1,11 +1,10 @@ -import * as messages from '@cucumber/messages' - -import { durationBetweenTimestamps } from '../time' -import { doesHaveValue } from '../value_checker' -import Formatter, { IFormatterOptions } from './' import { formatIssue, formatSummary, isFailure, isWarning } from './helpers' +import Formatter, { IFormatterOptions } from './' +import { doesHaveValue } from '../value_checker' +import * as messages from '@cucumber/messages' import { ITestCaseAttempt } from './helpers/event_data_collector' import { formatUndefinedParameterTypes } from './helpers/issue_helpers' +import { durationBetweenTimestamps } from '../time' interface ILogIssuesRequest { issues: ITestCaseAttempt[] diff --git a/src/formatter/summary_formatter_spec.ts b/src/formatter/summary_formatter_spec.ts index 59c8ab1c2..20acb60ef 100644 --- a/src/formatter/summary_formatter_spec.ts +++ b/src/formatter/summary_formatter_spec.ts @@ -1,12 +1,11 @@ -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' +import { afterEach, beforeEach, describe, it } from 'mocha' import { expect } from 'chai' import figures from 'figures' -import { afterEach, beforeEach, describe, it } from 'mocha' - -import { getBaseSupportCodeLibrary } from '../../test/fixtures/steps' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' +import timeMethods from '../time' import { testFormatter } from '../../test/formatter_helpers' +import { getBaseSupportCodeLibrary } from '../../test/fixtures/steps' import { buildSupportCodeLibrary } from '../../test/runtime_helpers' -import timeMethods from '../time' describe('SummaryFormatter', () => { let clock: InstalledClock diff --git a/src/formatter/usage_formatter.ts b/src/formatter/usage_formatter.ts index 8861eea61..0776d3656 100644 --- a/src/formatter/usage_formatter.ts +++ b/src/formatter/usage_formatter.ts @@ -1,9 +1,8 @@ -import * as messages from '@cucumber/messages' +import { formatLocation, getUsage } from './helpers' +import Formatter, { IFormatterOptions } from './' import Table from 'cli-table3' - import { doesHaveValue } from '../value_checker' -import Formatter, { IFormatterOptions } from './' -import { formatLocation, getUsage } from './helpers' +import * as messages from '@cucumber/messages' import IEnvelope = messages.Envelope export default class UsageFormatter extends Formatter { diff --git a/src/formatter/usage_formatter_spec.ts b/src/formatter/usage_formatter_spec.ts index c7d110db8..5c8545124 100644 --- a/src/formatter/usage_formatter_spec.ts +++ b/src/formatter/usage_formatter_spec.ts @@ -1,11 +1,10 @@ -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import { expect } from 'chai' import { afterEach, beforeEach, describe, it } from 'mocha' -import { reindent } from 'reindent-template-literals' - +import { expect } from 'chai' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' +import timeMethods from '../time' import { getUsageSupportCodeLibrary } from '../../test/fixtures/usage_steps' import { testFormatter } from '../../test/formatter_helpers' -import timeMethods from '../time' +import { reindent } from 'reindent-template-literals' describe('UsageFormatter', () => { let clock: InstalledClock diff --git a/src/formatter/usage_json_formatter.ts b/src/formatter/usage_json_formatter.ts index 606a44c15..c2b522429 100644 --- a/src/formatter/usage_json_formatter.ts +++ b/src/formatter/usage_json_formatter.ts @@ -1,8 +1,7 @@ -import * as messages from '@cucumber/messages' - -import { doesHaveValue } from '../value_checker' -import Formatter, { IFormatterOptions } from './' import { getUsage } from './helpers' +import Formatter, { IFormatterOptions } from './' +import { doesHaveValue } from '../value_checker' +import * as messages from '@cucumber/messages' import IEnvelope = messages.Envelope export default class UsageJsonFormatter extends Formatter { diff --git a/src/formatter/usage_json_formatter_spec.ts b/src/formatter/usage_json_formatter_spec.ts index 86367dc3a..128049324 100644 --- a/src/formatter/usage_json_formatter_spec.ts +++ b/src/formatter/usage_json_formatter_spec.ts @@ -1,10 +1,9 @@ -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import { expect } from 'chai' import { afterEach, beforeEach, describe, it } from 'mocha' - +import { expect } from 'chai' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' +import timeMethods from '../time' import { getUsageSupportCodeLibrary } from '../../test/fixtures/usage_steps' import { testFormatter } from '../../test/formatter_helpers' -import timeMethods from '../time' describe('UsageJsonFormatter', () => { let clock: InstalledClock diff --git a/src/index.ts b/src/index.ts index c4621c4c7..3272703ac 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,19 +1,18 @@ -import * as messages from '@cucumber/messages' - import * as formatterHelpers from './formatter/helpers' import supportCodeLibraryBuilder from './support_code_library_builder' +import * as messages from '@cucumber/messages' // Top level export { default as Cli } from './cli' export { parseGherkinMessageStream } from './cli/helpers' -export { default as DataTable } from './models/data_table' export { default as PickleFilter } from './pickle_filter' export { + default as Runtime, INewRuntimeOptions, IRuntimeOptions, - default as Runtime, } from './runtime' export { default as supportCodeLibraryBuilder } from './support_code_library_builder' +export { default as DataTable } from './models/data_table' // Formatters export { default as Formatter, IFormatterOptions } from './formatter' @@ -44,14 +43,15 @@ export const setWorldConstructor = methods.setWorldConstructor export const Then = methods.Then export const When = methods.When export { - ITestCaseHookParameter, - ITestStepHookParameter, -} from './support_code_library_builder/types' -export { + default as World, IWorld, IWorldOptions, - default as World, } from './support_code_library_builder/world' + +export { + ITestCaseHookParameter, + ITestStepHookParameter, +} from './support_code_library_builder/types' export const Status = messages.TestStepResultStatus // Time helpers diff --git a/src/models/data_table_spec.ts b/src/models/data_table_spec.ts index a9eabf3e9..8be0c3ee7 100644 --- a/src/models/data_table_spec.ts +++ b/src/models/data_table_spec.ts @@ -1,8 +1,7 @@ -import * as messages from '@cucumber/messages' -import { expect } from 'chai' import { describe, it } from 'mocha' - +import { expect } from 'chai' import DataTable from './data_table' +import * as messages from '@cucumber/messages' const id = 'id' const location: messages.Location = { line: 0 } diff --git a/src/models/definition.ts b/src/models/definition.ts index 88ef8df5c..171e89648 100644 --- a/src/models/definition.ts +++ b/src/models/definition.ts @@ -1,7 +1,6 @@ -import { Expression } from '@cucumber/cucumber-expressions' import * as messages from '@cucumber/messages' - import { ITestCaseHookParameter } from '../support_code_library_builder/types' +import { Expression } from '@cucumber/cucumber-expressions' export interface IGetInvocationDataRequest { hookParameter: ITestCaseHookParameter diff --git a/src/models/step_definition.ts b/src/models/step_definition.ts index 928110d88..42b7ae111 100644 --- a/src/models/step_definition.ts +++ b/src/models/step_definition.ts @@ -1,7 +1,3 @@ -import { Expression } from '@cucumber/cucumber-expressions' - -import { parseStepArgument } from '../step_arguments' -import { doesHaveValue } from '../value_checker' import DataTable from './data_table' import Definition, { IDefinition, @@ -9,6 +5,9 @@ import Definition, { IGetInvocationDataResponse, IStepDefinitionParameters, } from './definition' +import { parseStepArgument } from '../step_arguments' +import { Expression } from '@cucumber/cucumber-expressions' +import { doesHaveValue } from '../value_checker' export default class StepDefinition extends Definition implements IDefinition { public readonly pattern: string | RegExp diff --git a/src/models/test_case_hook_definition.ts b/src/models/test_case_hook_definition.ts index 65a274522..21d8b47e7 100644 --- a/src/models/test_case_hook_definition.ts +++ b/src/models/test_case_hook_definition.ts @@ -1,5 +1,3 @@ -import * as messages from '@cucumber/messages' - import { PickleTagFilter } from '../pickle_filter' import Definition, { IDefinition, @@ -8,6 +6,7 @@ import Definition, { IGetInvocationDataResponse, IHookDefinitionOptions, } from './definition' +import * as messages from '@cucumber/messages' export default class TestCaseHookDefinition extends Definition diff --git a/src/models/test_case_hook_definition_spec.ts b/src/models/test_case_hook_definition_spec.ts index 6b63c9cb0..bb502c551 100644 --- a/src/models/test_case_hook_definition_spec.ts +++ b/src/models/test_case_hook_definition_spec.ts @@ -1,8 +1,7 @@ -import { expect } from 'chai' import { describe, it } from 'mocha' - -import { getPickleWithTags } from '../../test/gherkin_helpers' +import { expect } from 'chai' import TestCaseHookDefinition from './test_case_hook_definition' +import { getPickleWithTags } from '../../test/gherkin_helpers' describe('TestCaseHookDefinition', () => { describe('appliesToTestCase', () => { diff --git a/src/models/test_step_hook_definition.ts b/src/models/test_step_hook_definition.ts index c5a7e3c48..32aa03367 100644 --- a/src/models/test_step_hook_definition.ts +++ b/src/models/test_step_hook_definition.ts @@ -1,13 +1,12 @@ -import * as messages from '@cucumber/messages' - import { PickleTagFilter } from '../pickle_filter' import Definition, { IDefinition, - IDefinitionParameters, - IGetInvocationDataRequest, IGetInvocationDataResponse, + IGetInvocationDataRequest, + IDefinitionParameters, IHookDefinitionOptions, } from './definition' +import * as messages from '@cucumber/messages' export default class TestStepHookDefinition extends Definition diff --git a/src/models/test_step_hook_definition_spec.ts b/src/models/test_step_hook_definition_spec.ts index ad000e3a8..a885050a3 100644 --- a/src/models/test_step_hook_definition_spec.ts +++ b/src/models/test_step_hook_definition_spec.ts @@ -1,8 +1,7 @@ -import { expect } from 'chai' import { describe, it } from 'mocha' - -import { getPickleWithTags } from '../../test/gherkin_helpers' +import { expect } from 'chai' import TestStepHookDefinition from './test_step_hook_definition' +import { getPickleWithTags } from '../../test/gherkin_helpers' describe('TestStepHookDefinition', () => { describe('appliesToTestCase', () => { diff --git a/src/pickle_filter.ts b/src/pickle_filter.ts index 0db9eedef..0b7bc24cd 100644 --- a/src/pickle_filter.ts +++ b/src/pickle_filter.ts @@ -1,9 +1,8 @@ -import * as messages from '@cucumber/messages' -import parse from '@cucumber/tag-expressions' import path from 'path' - +import parse from '@cucumber/tag-expressions' import { getGherkinScenarioLocationMap } from './formatter/helpers/gherkin_document_parser' import { doesHaveValue, doesNotHaveValue } from './value_checker' +import * as messages from '@cucumber/messages' import IGherkinDocument = messages.GherkinDocument import IPickle = messages.Pickle diff --git a/src/pickle_filter_spec.ts b/src/pickle_filter_spec.ts index 02b47aeea..23529cd7a 100644 --- a/src/pickle_filter_spec.ts +++ b/src/pickle_filter_spec.ts @@ -1,8 +1,7 @@ -import { expect } from 'chai' import { beforeEach, describe, it } from 'mocha' - -import { parse } from '../test/gherkin_helpers' +import { expect } from 'chai' import PickleFilter from './pickle_filter' +import { parse } from '../test/gherkin_helpers' describe('PickleFilter', () => { const cwd = '/project' diff --git a/src/runtime/assemble_test_cases.ts b/src/runtime/assemble_test_cases.ts index 880c799e6..a07921309 100644 --- a/src/runtime/assemble_test_cases.ts +++ b/src/runtime/assemble_test_cases.ts @@ -1,9 +1,8 @@ -import { Group } from '@cucumber/cucumber-expressions' +import { EventEmitter } from 'events' import * as messages from '@cucumber/messages' import { IdGenerator } from '@cucumber/messages' -import { EventEmitter } from 'events' - import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import { Group } from '@cucumber/cucumber-expressions' import { doesHaveValue } from '../value_checker' export declare type IAssembledTestCases = Record diff --git a/src/runtime/assemble_test_cases_spec.ts b/src/runtime/assemble_test_cases_spec.ts index f204cc062..1e72bfe22 100644 --- a/src/runtime/assemble_test_cases_spec.ts +++ b/src/runtime/assemble_test_cases_spec.ts @@ -1,15 +1,14 @@ import { IdGenerator } from '@cucumber/messages' import * as messages from '@cucumber/messages' -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import { expect } from 'chai' +import { ISupportCodeLibrary } from '../support_code_library_builder/types' import { EventEmitter } from 'events' +import { assembleTestCases, IAssembledTestCases } from './assemble_test_cases' import { afterEach, beforeEach, describe, it } from 'mocha' - -import { parse } from '../../test/gherkin_helpers' -import { buildSupportCodeLibrary } from '../../test/runtime_helpers' -import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' import timeMethods from '../time' -import { assembleTestCases, IAssembledTestCases } from './assemble_test_cases' +import { buildSupportCodeLibrary } from '../../test/runtime_helpers' +import { parse } from '../../test/gherkin_helpers' +import { expect } from 'chai' interface IRequest { gherkinDocument: messages.GherkinDocument diff --git a/src/runtime/attachment_manager/index.ts b/src/runtime/attachment_manager/index.ts index 668be81b3..d3ea34255 100644 --- a/src/runtime/attachment_manager/index.ts +++ b/src/runtime/attachment_manager/index.ts @@ -1,7 +1,6 @@ -import * as messages from '@cucumber/messages' import isStream from 'is-stream' import { Readable } from 'stream' - +import * as messages from '@cucumber/messages' import { doesHaveValue, doesNotHaveValue } from '../../value_checker' export interface IAttachmentMedia { diff --git a/src/runtime/attachment_manager/index_spec.ts b/src/runtime/attachment_manager/index_spec.ts index bf0fd5b59..ecf2c45f3 100644 --- a/src/runtime/attachment_manager/index_spec.ts +++ b/src/runtime/attachment_manager/index_spec.ts @@ -1,8 +1,7 @@ -import { expect } from 'chai' import { describe, it } from 'mocha' -import stream, { Readable } from 'stream' - +import { expect } from 'chai' import AttachmentManager, { IAttachment } from './' +import stream, { Readable } from 'stream' describe('AttachmentManager', () => { describe('create()', () => { diff --git a/src/runtime/helpers.ts b/src/runtime/helpers.ts index 2f1e2f9ad..5ecc031cb 100644 --- a/src/runtime/helpers.ts +++ b/src/runtime/helpers.ts @@ -1,10 +1,9 @@ -import * as messages from '@cucumber/messages' +import { formatLocation } from '../formatter/helpers/location_helpers' import Table from 'cli-table3' import indentString from 'indent-string' - -import { formatLocation } from '../formatter/helpers/location_helpers' -import StepDefinition from '../models/step_definition' import { PickleTagFilter } from '../pickle_filter' +import StepDefinition from '../models/step_definition' +import * as messages from '@cucumber/messages' import { IRuntimeOptions } from '.' export function getAmbiguousStepException( diff --git a/src/runtime/helpers_spec.ts b/src/runtime/helpers_spec.ts index a9874aed0..484342138 100644 --- a/src/runtime/helpers_spec.ts +++ b/src/runtime/helpers_spec.ts @@ -1,10 +1,9 @@ -import { expect } from 'chai' import { describe, it } from 'mocha' - +import { expect } from 'chai' +import { getAmbiguousStepException, retriesForPickle } from './helpers' import { getPickleWithTags } from '../../test/gherkin_helpers' -import { buildOptions } from '../../test/runtime_helpers' import StepDefinition from '../models/step_definition' -import { getAmbiguousStepException, retriesForPickle } from './helpers' +import { buildOptions } from '../../test/runtime_helpers' describe('Helpers', () => { describe('getAmbiguousStepException', () => { diff --git a/src/runtime/index.ts b/src/runtime/index.ts index 3d672e887..5efced4ca 100644 --- a/src/runtime/index.ts +++ b/src/runtime/index.ts @@ -1,18 +1,17 @@ +import { EventDataCollector, formatLocation } from '../formatter/helpers' +import StackTraceFilter from '../stack_trace_filter' +import UserCodeRunner from '../user_code_runner' +import VError from 'verror' +import { retriesForPickle, shouldCauseFailure } from './helpers' import { IdGenerator } from '@cucumber/messages' import * as messages from '@cucumber/messages' +import TestCaseRunner from './test_case_runner' import { EventEmitter } from 'events' -import VError from 'verror' - -import { EventDataCollector, formatLocation } from '../formatter/helpers' -import TestRunHookDefinition from '../models/test_run_hook_definition' -import StackTraceFilter from '../stack_trace_filter' import { ISupportCodeLibrary } from '../support_code_library_builder/types' -import UserCodeRunner from '../user_code_runner' +import TestRunHookDefinition from '../models/test_run_hook_definition' import { doesHaveValue, valueOrDefault } from '../value_checker' -import { assembleTestCases } from './assemble_test_cases' -import { retriesForPickle, shouldCauseFailure } from './helpers' import { ITestRunStopwatch, RealTestRunStopwatch } from './stopwatch' -import TestCaseRunner from './test_case_runner' +import { assembleTestCases } from './assemble_test_cases' export interface INewRuntimeOptions { eventBroadcaster: EventEmitter diff --git a/src/runtime/parallel/command_types.ts b/src/runtime/parallel/command_types.ts index 06fc29d7f..3a884550d 100644 --- a/src/runtime/parallel/command_types.ts +++ b/src/runtime/parallel/command_types.ts @@ -1,5 +1,4 @@ import * as messages from '@cucumber/messages' - import { IRuntimeOptions } from '../index' // Messages from Coordinator to Worker diff --git a/src/runtime/parallel/coordinator.ts b/src/runtime/parallel/coordinator.ts index c527bc708..73e840f63 100644 --- a/src/runtime/parallel/coordinator.ts +++ b/src/runtime/parallel/coordinator.ts @@ -1,17 +1,16 @@ -import * as messages from '@cucumber/messages' -import { IdGenerator } from '@cucumber/messages' import { ChildProcess, fork } from 'child_process' -import { EventEmitter } from 'events' import path from 'path' - +import { retriesForPickle, shouldCauseFailure } from '../helpers' +import * as messages from '@cucumber/messages' +import { EventEmitter } from 'events' import { EventDataCollector } from '../../formatter/helpers' +import { IRuntimeOptions } from '..' import { ISupportCodeLibrary } from '../../support_code_library_builder/types' +import { ICoordinatorReport, IWorkerCommand } from './command_types' import { doesHaveValue } from '../../value_checker' -import { IRuntimeOptions } from '..' -import { assembleTestCases, IAssembledTestCases } from '../assemble_test_cases' -import { retriesForPickle, shouldCauseFailure } from '../helpers' import { ITestRunStopwatch, RealTestRunStopwatch } from '../stopwatch' -import { ICoordinatorReport, IWorkerCommand } from './command_types' +import { assembleTestCases, IAssembledTestCases } from '../assemble_test_cases' +import { IdGenerator } from '@cucumber/messages' const runWorkerPath = path.resolve(__dirname, 'run_worker.js') diff --git a/src/runtime/parallel/run_worker.ts b/src/runtime/parallel/run_worker.ts index 72870c94c..e311d9412 100644 --- a/src/runtime/parallel/run_worker.ts +++ b/src/runtime/parallel/run_worker.ts @@ -1,7 +1,6 @@ +import Worker from './worker' import VError from 'verror' - import { doesHaveValue } from '../../value_checker' -import Worker from './worker' function run(): void { const exit = (exitCode: number, error?: Error, message?: string): void => { diff --git a/src/runtime/parallel/worker.ts b/src/runtime/parallel/worker.ts index 175c11a6a..6fd1db60c 100644 --- a/src/runtime/parallel/worker.ts +++ b/src/runtime/parallel/worker.ts @@ -1,26 +1,25 @@ -import { IdGenerator } from '@cucumber/messages' -import * as messages from '@cucumber/messages' -import { duration } from 'durations' -import { EventEmitter } from 'events' -import { pathToFileURL } from 'url' - -import { isJavaScript } from '../../cli/helpers' import { formatLocation } from '../../formatter/helpers' -import TestRunHookDefinition from '../../models/test_run_hook_definition' -import StackTraceFilter from '../../stack_trace_filter' -import supportCodeLibraryBuilder from '../../support_code_library_builder' -import { ISupportCodeLibrary } from '../../support_code_library_builder/types' -import UserCodeRunner from '../../user_code_runner' -import { doesHaveValue, valueOrDefault } from '../../value_checker' -import { IRuntimeOptions } from '../index' -import { RealTestRunStopwatch } from '../stopwatch' -import TestCaseRunner from '../test_case_runner' import { ICoordinatorReport, IWorkerCommand, IWorkerCommandInitialize, IWorkerCommandRun, } from './command_types' +import { EventEmitter } from 'events' +import StackTraceFilter from '../../stack_trace_filter' +import supportCodeLibraryBuilder from '../../support_code_library_builder' +import TestCaseRunner from '../test_case_runner' +import UserCodeRunner from '../../user_code_runner' +import { IdGenerator } from '@cucumber/messages' +import * as messages from '@cucumber/messages' +import TestRunHookDefinition from '../../models/test_run_hook_definition' +import { ISupportCodeLibrary } from '../../support_code_library_builder/types' +import { doesHaveValue, valueOrDefault } from '../../value_checker' +import { IRuntimeOptions } from '../index' +import { RealTestRunStopwatch } from '../stopwatch' +import { duration } from 'durations' +import { pathToFileURL } from 'url' +import { isJavaScript } from '../../cli/helpers' // eslint-disable-next-line @typescript-eslint/no-var-requires const { importer } = require('../../importer') diff --git a/src/runtime/step_runner.ts b/src/runtime/step_runner.ts index b1ce08f2f..14e765bfd 100644 --- a/src/runtime/step_runner.ts +++ b/src/runtime/step_runner.ts @@ -1,10 +1,9 @@ +import Time from '../time' +import UserCodeRunner from '../user_code_runner' import * as messages from '@cucumber/messages' import { format } from 'assertion-error-formatter' - -import { IDefinition, IGetInvocationDataResponse } from '../models/definition' import { ITestCaseHookParameter } from '../support_code_library_builder/types' -import Time from '../time' -import UserCodeRunner from '../user_code_runner' +import { IDefinition, IGetInvocationDataResponse } from '../models/definition' import { doesHaveValue, doesNotHaveValue, diff --git a/src/runtime/stopwatch.ts b/src/runtime/stopwatch.ts index dda8cc7a0..592e20e04 100644 --- a/src/runtime/stopwatch.ts +++ b/src/runtime/stopwatch.ts @@ -1,5 +1,5 @@ import * as messages from '@cucumber/messages' -import { Duration, duration, Stopwatch, stopwatch } from 'durations' +import { stopwatch, Stopwatch, duration, Duration } from 'durations' export interface ITestRunStopwatch { from: (duration: Duration) => ITestRunStopwatch diff --git a/src/runtime/stopwatch_spec.ts b/src/runtime/stopwatch_spec.ts index 48b70c107..5516f0cf6 100644 --- a/src/runtime/stopwatch_spec.ts +++ b/src/runtime/stopwatch_spec.ts @@ -1,8 +1,7 @@ -import { TimeConversion } from '@cucumber/messages' -import { expect } from 'chai' import { describe, it } from 'mocha' - import { RealTestRunStopwatch } from './stopwatch' +import { expect } from 'chai' +import { TimeConversion } from '@cucumber/messages' describe('stopwatch', () => { it('returns a timestamp close to now', () => { diff --git a/src/runtime/test_case_runner.ts b/src/runtime/test_case_runner.ts index 2b472dfaa..9b77ce904 100644 --- a/src/runtime/test_case_runner.ts +++ b/src/runtime/test_case_runner.ts @@ -1,21 +1,20 @@ +import { getAmbiguousStepException } from './helpers' +import AttachmentManager from './attachment_manager' +import StepRunner from './step_runner' import * as messages from '@cucumber/messages' import { getWorstTestStepResult, IdGenerator } from '@cucumber/messages' import { EventEmitter } from 'events' - -import { IDefinition } from '../models/definition' -import StepDefinition from '../models/step_definition' -import TestCaseHookDefinition from '../models/test_case_hook_definition' -import TestStepHookDefinition from '../models/test_step_hook_definition' import { ISupportCodeLibrary, ITestCaseHookParameter, ITestStepHookParameter, } from '../support_code_library_builder/types' +import TestCaseHookDefinition from '../models/test_case_hook_definition' +import TestStepHookDefinition from '../models/test_step_hook_definition' +import { IDefinition } from '../models/definition' import { doesHaveValue, doesNotHaveValue } from '../value_checker' -import AttachmentManager from './attachment_manager' -import { getAmbiguousStepException } from './helpers' -import StepRunner from './step_runner' import { ITestRunStopwatch } from './stopwatch' +import StepDefinition from '../models/step_definition' export interface INewTestCaseRunnerOptions { eventBroadcaster: EventEmitter diff --git a/src/runtime/test_case_runner_spec.ts b/src/runtime/test_case_runner_spec.ts index 78164ea36..1d5b1594d 100644 --- a/src/runtime/test_case_runner_spec.ts +++ b/src/runtime/test_case_runner_spec.ts @@ -1,20 +1,19 @@ -import { IdGenerator } from '@cucumber/messages' -import * as messages from '@cucumber/messages' -import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' -import { expect } from 'chai' -import { EventEmitter } from 'events' import { afterEach, beforeEach, describe, it } from 'mocha' +import { expect } from 'chai' import sinon from 'sinon' - -import { getBaseSupportCodeLibrary } from '../../test/fixtures/steps' +import TestCaseRunner from './test_case_runner' +import { EventEmitter } from 'events' +import { IdGenerator } from '@cucumber/messages' +import * as messages from '@cucumber/messages' import { parse } from '../../test/gherkin_helpers' import { buildSupportCodeLibrary } from '../../test/runtime_helpers' -import { ISupportCodeLibrary } from '../support_code_library_builder/types' +import FakeTimers, { InstalledClock } from '@sinonjs/fake-timers' import timeMethods from '../time' +import { getBaseSupportCodeLibrary } from '../../test/fixtures/steps' +import { ISupportCodeLibrary } from '../support_code_library_builder/types' import { valueOrDefault } from '../value_checker' -import { assembleTestCases } from './assemble_test_cases' import { PredictableTestRunStopwatch } from './stopwatch' -import TestCaseRunner from './test_case_runner' +import { assembleTestCases } from './assemble_test_cases' import IEnvelope = messages.Envelope interface ITestRunnerRequest { diff --git a/src/stack_trace_filter.ts b/src/stack_trace_filter.ts index 219dbabf4..2275d4685 100644 --- a/src/stack_trace_filter.ts +++ b/src/stack_trace_filter.ts @@ -1,6 +1,5 @@ -import path from 'path' import stackChain from 'stack-chain' - +import path from 'path' import { valueOrDefault } from './value_checker' import CallSite = NodeJS.CallSite diff --git a/src/step_arguments.ts b/src/step_arguments.ts index 47e8c3a2e..18fa0ee54 100644 --- a/src/step_arguments.ts +++ b/src/step_arguments.ts @@ -1,6 +1,5 @@ -import * as messages from '@cucumber/messages' import util from 'util' - +import * as messages from '@cucumber/messages' import { doesHaveValue } from './value_checker' export interface IPickleStepArgumentFunctionMap { diff --git a/src/support_code_library_builder/build_parameter_type.ts b/src/support_code_library_builder/build_parameter_type.ts index dd2eb2ced..a05258370 100644 --- a/src/support_code_library_builder/build_parameter_type.ts +++ b/src/support_code_library_builder/build_parameter_type.ts @@ -1,5 +1,4 @@ import { ParameterType } from '@cucumber/cucumber-expressions' - import { IParameterTypeDefinition } from './types' export function buildParameterType({ diff --git a/src/support_code_library_builder/get_definition_line_and_uri.ts b/src/support_code_library_builder/get_definition_line_and_uri.ts index 1db4c8a91..583319e6a 100644 --- a/src/support_code_library_builder/get_definition_line_and_uri.ts +++ b/src/support_code_library_builder/get_definition_line_and_uri.ts @@ -1,10 +1,9 @@ -import { wrapCallSite } from '@cspotcode/source-map-support' import path from 'path' +import { wrapCallSite } from '@cspotcode/source-map-support' import stackChain from 'stack-chain' - import { isFileNameInCucumber } from '../stack_trace_filter' -import { ILineAndUri } from '../types' import { doesHaveValue, valueOrDefault } from '../value_checker' +import { ILineAndUri } from '../types' import CallSite = NodeJS.CallSite export function getDefinitionLineAndUri( diff --git a/src/support_code_library_builder/get_definition_line_and_uri_spec.ts b/src/support_code_library_builder/get_definition_line_and_uri_spec.ts index 084be40ae..81956f255 100644 --- a/src/support_code_library_builder/get_definition_line_and_uri_spec.ts +++ b/src/support_code_library_builder/get_definition_line_and_uri_spec.ts @@ -1,7 +1,6 @@ import assert from 'assert' -import path from 'path' - import { getDefinitionLineAndUri } from './get_definition_line_and_uri' +import path from 'path' describe(getDefinitionLineAndUri.name, () => { it('correctly gets the filename of the caller', () => { diff --git a/src/support_code_library_builder/index.ts b/src/support_code_library_builder/index.ts index 4b2923ea4..a409df609 100644 --- a/src/support_code_library_builder/index.ts +++ b/src/support_code_library_builder/index.ts @@ -1,35 +1,35 @@ +import { buildParameterType } from './build_parameter_type' +import { getDefinitionLineAndUri } from './get_definition_line_and_uri' +import { IdGenerator } from '@cucumber/messages' +import * as messages from '@cucumber/messages' +import TestCaseHookDefinition from '../models/test_case_hook_definition' +import TestStepHookDefinition from '../models/test_step_hook_definition' +import TestRunHookDefinition from '../models/test_run_hook_definition' +import StepDefinition from '../models/step_definition' +import { formatLocation } from '../formatter/helpers' +import validateArguments from './validate_arguments' +import arity from 'util-arity' + import { CucumberExpression, ParameterTypeRegistry, RegularExpression, } from '@cucumber/cucumber-expressions' -import { IdGenerator } from '@cucumber/messages' -import * as messages from '@cucumber/messages' -import arity from 'util-arity' - -import { formatLocation } from '../formatter/helpers' -import StepDefinition from '../models/step_definition' -import TestCaseHookDefinition from '../models/test_case_hook_definition' -import TestRunHookDefinition from '../models/test_run_hook_definition' -import TestStepHookDefinition from '../models/test_step_hook_definition' -import { ICanonicalSupportCodeIds } from '../runtime/parallel/command_types' import { doesHaveValue } from '../value_checker' -import { buildParameterType } from './build_parameter_type' -import { getDefinitionLineAndUri } from './get_definition_line_and_uri' import { DefineStepPattern, IDefineStepOptions, IDefineSupportCodeMethods, IDefineTestCaseHookOptions, - IDefineTestRunHookOptions, IDefineTestStepHookOptions, + IDefineTestRunHookOptions, IParameterTypeDefinition, ISupportCodeLibrary, TestCaseHookFunction, TestStepHookFunction, } from './types' -import validateArguments from './validate_arguments' import World from './world' +import { ICanonicalSupportCodeIds } from '../runtime/parallel/command_types' interface IStepDefinitionConfig { code: any diff --git a/src/support_code_library_builder/index_spec.ts b/src/support_code_library_builder/index_spec.ts index 15048952f..6485741a5 100644 --- a/src/support_code_library_builder/index_spec.ts +++ b/src/support_code_library_builder/index_spec.ts @@ -1,11 +1,10 @@ -import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' -import { IdGenerator } from '@cucumber/messages' -import { expect } from 'chai' import { describe, it } from 'mocha' +import { expect } from 'chai' import sinon from 'sinon' - -import { getPickleWithTags } from '../../test/gherkin_helpers' +import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' import supportCodeLibraryBuilder from './' +import { IdGenerator } from '@cucumber/messages' +import { getPickleWithTags } from '../../test/gherkin_helpers' const { uuid } = IdGenerator diff --git a/src/support_code_library_builder/types.ts b/src/support_code_library_builder/types.ts index d979e0070..9f24f0ccb 100644 --- a/src/support_code_library_builder/types.ts +++ b/src/support_code_library_builder/types.ts @@ -1,10 +1,9 @@ -import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' import * as messages from '@cucumber/messages' - -import StepDefinition from '../models/step_definition' import TestCaseHookDefinition from '../models/test_case_hook_definition' -import TestRunHookDefinition from '../models/test_run_hook_definition' import TestStepHookDefinition from '../models/test_step_hook_definition' +import TestRunHookDefinition from '../models/test_run_hook_definition' +import StepDefinition from '../models/step_definition' +import { ParameterTypeRegistry } from '@cucumber/cucumber-expressions' import { IWorld } from './world' export type DefineStepPattern = string | RegExp diff --git a/src/time.ts b/src/time.ts index c29d2f530..32ec1c9ed 100644 --- a/src/time.ts +++ b/src/time.ts @@ -1,5 +1,5 @@ -import * as messages from '@cucumber/messages' import { performance } from 'perf_hooks' +import * as messages from '@cucumber/messages' let previousTimestamp: number diff --git a/src/time_spec.ts b/src/time_spec.ts index 61e9695b8..2fe66e793 100644 --- a/src/time_spec.ts +++ b/src/time_spec.ts @@ -1,6 +1,5 @@ -import { expect } from 'chai' import { describe, it } from 'mocha' - +import { expect } from 'chai' import { wrapPromiseWithTimeout } from './time' describe('wrapPromiseWithTimeout()', () => { diff --git a/src/user_code_runner.ts b/src/user_code_runner.ts index d585cf830..99d05ab93 100644 --- a/src/user_code_runner.ts +++ b/src/user_code_runner.ts @@ -1,7 +1,6 @@ -import util from 'util' - import { wrapPromiseWithTimeout } from './time' import UncaughtExceptionManager from './uncaught_exception_manager' +import util from 'util' import { doesHaveValue } from './value_checker' export interface IRunRequest { diff --git a/src/user_code_runner_spec.ts b/src/user_code_runner_spec.ts index 27b7a8671..fe028ddee 100644 --- a/src/user_code_runner_spec.ts +++ b/src/user_code_runner_spec.ts @@ -1,8 +1,7 @@ -import { expect } from 'chai' import { describe, it } from 'mocha' -import semver from 'semver' - +import { expect } from 'chai' import UserCodeRunner, { IRunRequest, IRunResponse } from './user_code_runner' +import semver from 'semver' async function testUserCodeRunner( opts: Partial diff --git a/test/fake_report_server.ts b/test/fake_report_server.ts index 91fa741ea..9fc459e85 100644 --- a/test/fake_report_server.ts +++ b/test/fake_report_server.ts @@ -1,9 +1,8 @@ -import express from 'express' -import http from 'http' import { AddressInfo, Server, Socket } from 'net' +import express from 'express' import { pipeline, Writable } from 'stream' +import http from 'http' import { promisify } from 'util' - import { doesHaveValue } from '../src/value_checker' type Callback = (err?: Error | null) => void diff --git a/test/fixtures/json_formatter_steps.ts b/test/fixtures/json_formatter_steps.ts index 6aca86f36..cbef54b22 100644 --- a/test/fixtures/json_formatter_steps.ts +++ b/test/fixtures/json_formatter_steps.ts @@ -1,10 +1,9 @@ // Tests depend on the lines the steps are defined on +import { buildSupportCodeLibrary } from '../runtime_helpers' +import { ISupportCodeLibrary } from '../../src/support_code_library_builder/types' import { InstalledClock } from '@sinonjs/fake-timers' - import { World } from '../../src' -import { ISupportCodeLibrary } from '../../src/support_code_library_builder/types' -import { buildSupportCodeLibrary } from '../runtime_helpers' export function getJsonFormatterSupportCodeLibrary( clock: InstalledClock diff --git a/test/fixtures/steps.ts b/test/fixtures/steps.ts index 7ed6c01f0..8a09cc5a5 100644 --- a/test/fixtures/steps.ts +++ b/test/fixtures/steps.ts @@ -1,8 +1,8 @@ // Tests depend on the lines the steps are defined on +import { buildSupportCodeLibrary } from '../runtime_helpers' import { ISupportCodeLibrary } from '../../src/support_code_library_builder/types' import World from '../../src/support_code_library_builder/world' -import { buildSupportCodeLibrary } from '../runtime_helpers' export function getBaseSupportCodeLibrary(): ISupportCodeLibrary { return buildSupportCodeLibrary(__dirname, ({ Given }) => { diff --git a/test/fixtures/usage_steps.ts b/test/fixtures/usage_steps.ts index 80cc11db4..7d37e91d2 100644 --- a/test/fixtures/usage_steps.ts +++ b/test/fixtures/usage_steps.ts @@ -1,9 +1,8 @@ // Tests depend on the lines the steps are defined on -import { InstalledClock } from '@sinonjs/fake-timers' - -import { ISupportCodeLibrary } from '../../src/support_code_library_builder/types' import { buildSupportCodeLibrary } from '../runtime_helpers' +import { ISupportCodeLibrary } from '../../src/support_code_library_builder/types' +import { InstalledClock } from '@sinonjs/fake-timers' export function getUsageSupportCodeLibrary( clock: InstalledClock diff --git a/test/formatter_helpers.ts b/test/formatter_helpers.ts index 951bf5b1d..8e2825529 100644 --- a/test/formatter_helpers.ts +++ b/test/formatter_helpers.ts @@ -1,19 +1,18 @@ -import { IdGenerator } from '@cucumber/messages' -import * as messages from '@cucumber/messages' +import { buildOptions, buildSupportCodeLibrary } from './runtime_helpers' +import { generateEvents } from './gherkin_helpers' +import Runtime, { IRuntimeOptions } from '../src/runtime' import { EventEmitter } from 'events' -import { PassThrough } from 'stream' -import { promisify } from 'util' - -import { IParsedArgvFormatOptions } from '../src/cli/argv_parser' -import { emitSupportCodeMessages } from '../src/cli/helpers' -import FormatterBuilder from '../src/formatter/builder' import { EventDataCollector } from '../src/formatter/helpers' -import { ITestCaseAttempt } from '../src/formatter/helpers/event_data_collector' -import Runtime, { IRuntimeOptions } from '../src/runtime' +import FormatterBuilder from '../src/formatter/builder' +import { IdGenerator } from '@cucumber/messages' +import * as messages from '@cucumber/messages' import { ISupportCodeLibrary } from '../src/support_code_library_builder/types' +import { ITestCaseAttempt } from '../src/formatter/helpers/event_data_collector' import { doesNotHaveValue } from '../src/value_checker' -import { generateEvents } from './gherkin_helpers' -import { buildOptions, buildSupportCodeLibrary } from './runtime_helpers' +import { IParsedArgvFormatOptions } from '../src/cli/argv_parser' +import { PassThrough } from 'stream' +import { emitSupportCodeMessages } from '../src/cli/helpers' +import { promisify } from 'util' const { uuid } = IdGenerator diff --git a/test/gherkin_helpers.ts b/test/gherkin_helpers.ts index cf0da550e..a0b94e187 100644 --- a/test/gherkin_helpers.ts +++ b/test/gherkin_helpers.ts @@ -1,10 +1,9 @@ -import { IGherkinOptions } from '@cucumber/gherkin' -import { GherkinStreams } from '@cucumber/gherkin-streams' import * as messages from '@cucumber/messages' import { SourceMediaType } from '@cucumber/messages' -import { EventEmitter } from 'events' - import { doesHaveValue } from '../src/value_checker' +import { IGherkinOptions } from '@cucumber/gherkin' +import { GherkinStreams } from '@cucumber/gherkin-streams' +import { EventEmitter } from 'events' export interface IParsedSource { pickles: messages.Pickle[] diff --git a/test/runtime_helpers.ts b/test/runtime_helpers.ts index 760fce8d0..90ba04816 100644 --- a/test/runtime_helpers.ts +++ b/test/runtime_helpers.ts @@ -1,7 +1,6 @@ +import { SupportCodeLibraryBuilder } from '../src/support_code_library_builder' import { IdGenerator } from '@cucumber/messages' - import { IRuntimeOptions } from '../src/runtime' -import { SupportCodeLibraryBuilder } from '../src/support_code_library_builder' import { IDefineSupportCodeMethods, ISupportCodeLibrary, diff --git a/test/test_helper.ts b/test/test_helper.ts index 0f0e38e19..bbe85dea2 100644 --- a/test/test_helper.ts +++ b/test/test_helper.ts @@ -1,6 +1,6 @@ import chai from 'chai' -import dirtyChai from 'dirty-chai' import sinonChai from 'sinon-chai' +import dirtyChai from 'dirty-chai' chai.use(sinonChai) chai.use(dirtyChai) From e2a0a602c5f1d70c5e379affc373e9c26cadc1ed Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Tue, 7 Dec 2021 09:39:31 +0100 Subject: [PATCH 7/7] Remove eslint-plugin-simple-import-sort --- .eslintrc.yml | 1 - package-lock.json | 17 ----------------- package.json | 1 - 3 files changed, 19 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 669fe0987..eeab7767b 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -9,7 +9,6 @@ parserOptions: project: './tsconfig.json' plugins: - import - - simple-import-sort - node - "@typescript-eslint" rules: diff --git a/package-lock.json b/package-lock.json index c8a06a5c8..52c8e0092 100644 --- a/package-lock.json +++ b/package-lock.json @@ -76,7 +76,6 @@ "eslint-plugin-import": "2.25.3", "eslint-plugin-node": "11.1.0", "eslint-plugin-prettier": "4.0.0", - "eslint-plugin-simple-import-sort": "7.0.0", "eslint-plugin-standard": "4.1.0", "express": "4.17.1", "fs-extra": "10.0.0", @@ -2888,15 +2887,6 @@ } } }, - "node_modules/eslint-plugin-simple-import-sort": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", - "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", - "dev": true, - "peerDependencies": { - "eslint": ">=5.0.0" - } - }, "node_modules/eslint-plugin-standard": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", @@ -9479,13 +9469,6 @@ "prettier-linter-helpers": "^1.0.0" } }, - "eslint-plugin-simple-import-sort": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz", - "integrity": "sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw==", - "dev": true, - "requires": {} - }, "eslint-plugin-standard": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", diff --git a/package.json b/package.json index 803f95255..f20337dc4 100644 --- a/package.json +++ b/package.json @@ -247,7 +247,6 @@ "eslint-plugin-node": "11.1.0", "eslint-plugin-prettier": "4.0.0", "eslint-plugin-standard": "4.1.0", - "eslint-plugin-simple-import-sort": "7.0.0", "express": "4.17.1", "fs-extra": "10.0.0", "mocha": "9.1.3",