diff --git a/package.json b/package.json index 04c946c54..2f053eaea 100644 --- a/package.json +++ b/package.json @@ -20,19 +20,21 @@ "test": "jest --projects packages/integration packages/eslint-plugin-swissquote packages/stylelint-config-swissquote packages/crafty-runner-webpack packages/crafty && cd packages/rollup-plugin-eslint && yarn test", "test:ci": "sh test_ci.sh", "publish:canary": "oao publish --no-git-commit --no-check-uncommitted --no-changelog --publish-tag canary --bump-dependent-reqs=exact", - "publish:all": "oao publish --no-changelog --bump-dependent-reqs=exact" + "publish:all": "oao publish --no-changelog --bump-dependent-reqs=exact", + "postinstall": "patch-package" }, "dependencies": { "@vercel/ncc": "0.31.1", "jest": "27.2.2", "markdown-spellcheck": "1.3.1", "oao": "2.0.2", + "patch-package": "^6.4.7", "write-good": "1.0.8" }, "engines": { "node": ">=12" }, "resolutions": { - "**/eslint": "8.0.0-beta.1" + "**/eslint": "8.0.0-rc.0" } } diff --git a/packages/crafty-preset-babel/src/gulp.js b/packages/crafty-preset-babel/src/gulp.js index ead7f81d6..aa483ce05 100644 --- a/packages/crafty-preset-babel/src/gulp.js +++ b/packages/crafty-preset-babel/src/gulp.js @@ -19,7 +19,12 @@ module.exports = function createTask(crafty, bundle, StreamHandler) { toTempFile } = require("@swissquote/crafty-preset-eslint/src/eslintConfigurator"); const eslint = require("gulp-eslint7"); - stream.add(eslint(toTempFile(crafty.config.eslint))).add(eslint.format()); + stream.add(eslint( + { + resolver: require.resolve("@swissquote/crafty-preset-eslint/src/resolver.js"), + overrideConfigFile: toTempFile(crafty.config.eslint) + } + )).add(eslint.format()); // Fail the build if we have linting // errors and we build directly diff --git a/packages/crafty-preset-eslint/package.json b/packages/crafty-preset-eslint/package.json index 0ffdc0386..7a76d3f20 100644 --- a/packages/crafty-preset-eslint/package.json +++ b/packages/crafty-preset-eslint/package.json @@ -17,7 +17,7 @@ "@swissquote/rollup-plugin-eslint": "1.15.0", "copy-anything": "2.0.3", "debug": "^4.1.0", - "eslint": "8.0.0-beta.1", + "eslint": "8.0.0-rc.0", "eslint-webpack-plugin": "2.5.4", "merge-anything": "4.0.1", "resolve-from": "5.0.0", diff --git a/packages/crafty-preset-eslint/src/commands/jsLint.js b/packages/crafty-preset-eslint/src/commands/jsLint.js index f27e33434..01a6e457a 100755 --- a/packages/crafty-preset-eslint/src/commands/jsLint.js +++ b/packages/crafty-preset-eslint/src/commands/jsLint.js @@ -20,4 +20,4 @@ process.argv.push(require.resolve("../resolver.js")) process.argv.push("--config"); process.argv.push(tmpfile); -require("eslint/bin/eslint"); +require(".bin/eslint"); diff --git a/packages/crafty-preset-eslint/src/index.js b/packages/crafty-preset-eslint/src/index.js index 81ba683ec..bb592e330 100644 --- a/packages/crafty-preset-eslint/src/index.js +++ b/packages/crafty-preset-eslint/src/index.js @@ -80,6 +80,7 @@ module.exports = { weight: -20, options: { overrideConfigFile: toTempFile(crafty.config.eslint), + resolver: require.resolve("@swissquote/crafty-preset-eslint/src/resolver.js"), throwOnError: crafty.getEnvironment() === "production", exclude: [/node_modules/], include: crafty.config.eslintExtensions.map( diff --git a/packages/crafty-preset-eslint/src/resolver.js b/packages/crafty-preset-eslint/src/resolver.js index 4096536bb..08f593a49 100644 --- a/packages/crafty-preset-eslint/src/resolver.js +++ b/packages/crafty-preset-eslint/src/resolver.js @@ -3,7 +3,7 @@ const { } = require("@eslint/eslintrc"); function resolve(moduleName, relativeToPath) { - console.log("resolving", { moduleName, relativeToPath }); + //console.log({moduleName, relativeToPath}); try { // First check for the module relative to the current location return ModuleResolver.resolve(moduleName, __filename); diff --git a/packages/crafty-preset-swc/src/gulp.js b/packages/crafty-preset-swc/src/gulp.js index 1f8b238ba..39a588d3c 100644 --- a/packages/crafty-preset-swc/src/gulp.js +++ b/packages/crafty-preset-swc/src/gulp.js @@ -19,7 +19,12 @@ module.exports = function createTask(crafty, bundle, StreamHandler) { toTempFile } = require("@swissquote/crafty-preset-eslint/src/eslintConfigurator"); const eslint = require("gulp-eslint7"); - stream.add(eslint(toTempFile(crafty.config.eslint))).add(eslint.format()); + stream.add(eslint( + { + resolver: require.resolve("@swissquote/crafty-preset-eslint/src/resolver.js"), + overrideConfigFile: toTempFile(crafty.config.eslint) + } + )).add(eslint.format()); // Fail the build if we have linting // errors and we build directly diff --git a/packages/crafty-preset-typescript/src/gulp.js b/packages/crafty-preset-typescript/src/gulp.js index 26351d10d..f075ac57e 100644 --- a/packages/crafty-preset-typescript/src/gulp.js +++ b/packages/crafty-preset-typescript/src/gulp.js @@ -20,7 +20,12 @@ module.exports = function createTask(crafty, bundle, StreamHandler) { } = require("@swissquote/crafty-preset-eslint/src/eslintConfigurator"); const eslint = require("gulp-eslint7"); stream - .add(eslint({ configFile: toTempFile(crafty.config.eslint) })) + .add(eslint( + { + resolver: require.resolve("@swissquote/crafty-preset-eslint/src/resolver.js"), + overrideConfigFile: toTempFile(crafty.config.eslint) + } + )) .add(eslint.format()); // Fail the build if we have linting diff --git a/packages/eslint-plugin-swissquote/package.json b/packages/eslint-plugin-swissquote/package.json index b2954cb28..ea707c9e0 100644 --- a/packages/eslint-plugin-swissquote/package.json +++ b/packages/eslint-plugin-swissquote/package.json @@ -37,7 +37,7 @@ "eslint": "^6.0.0 | ^7.0.0 | ^8.0.0" }, "devDependencies": { - "eslint": "8.0.0-beta.1", + "eslint": "8.0.0-rc.0", "jest": "27.2.2" }, "engines": { diff --git a/packages/integration/__tests__/__snapshots__/crafty-preset-babel.js.snap b/packages/integration/__tests__/__snapshots__/crafty-preset-babel.js.snap index 83513e187..9186d913a 100644 --- a/packages/integration/__tests__/__snapshots__/crafty-preset-babel.js.snap +++ b/packages/integration/__tests__/__snapshots__/crafty-preset-babel.js.snap @@ -17,9 +17,6 @@ exports[`Generates IDE Helper 2`] = ` // This file is generated to improve IDE Integration // You don't need to commit this file, nor need it to run \`crafty build\` -// Fix module resolution -require(\\"__PATH__/packages/crafty-preset-eslint/src/patchModuleResolver.js\\"); - module.exports = { \\"plugins\\": [ \\"@swissquote/swissquote\\" diff --git a/packages/integration/__tests__/__snapshots__/crafty-preset-swc.js.snap b/packages/integration/__tests__/__snapshots__/crafty-preset-swc.js.snap index 7b8451fbd..05c3dc89d 100644 --- a/packages/integration/__tests__/__snapshots__/crafty-preset-swc.js.snap +++ b/packages/integration/__tests__/__snapshots__/crafty-preset-swc.js.snap @@ -17,9 +17,6 @@ exports[`Generates IDE Helper 2`] = ` // This file is generated to improve IDE Integration // You don't need to commit this file, nor need it to run \`crafty build\` -// Fix module resolution -require(\\"__PATH__/packages/crafty-preset-eslint/src/patchModuleResolver.js\\"); - module.exports = { \\"plugins\\": [ \\"@swissquote/swissquote\\" diff --git a/packages/rollup-plugin-eslint/package.json b/packages/rollup-plugin-eslint/package.json index f662d4cf8..39f06581e 100644 --- a/packages/rollup-plugin-eslint/package.json +++ b/packages/rollup-plugin-eslint/package.json @@ -35,6 +35,6 @@ }, "dependencies": { "@rollup/pluginutils": "4.1.1", - "eslint": "8.0.0-beta.1" + "eslint": "8.0.0-rc.0" } } diff --git a/patches/eslint+8.0.0-rc.0.patch b/patches/eslint+8.0.0-rc.0.patch new file mode 100644 index 000000000..2303dede5 --- /dev/null +++ b/patches/eslint+8.0.0-rc.0.patch @@ -0,0 +1,68 @@ +diff --git a/node_modules/eslint/lib/cli-engine/cli-engine.js b/node_modules/eslint/lib/cli-engine/cli-engine.js +index aae7160..45c7156 100644 +--- a/node_modules/eslint/lib/cli-engine/cli-engine.js ++++ b/node_modules/eslint/lib/cli-engine/cli-engine.js +@@ -595,6 +595,7 @@ class CLIEngine { + cwd: options.cwd, + ignorePath: options.ignorePath, + resolvePluginsRelativeTo: options.resolvePluginsRelativeTo, ++ resolver: options.resolver, + rulePaths: options.rulePaths, + specificConfigPath: options.configFile, + useEslintrc: options.useEslintrc, +diff --git a/node_modules/eslint/lib/cli.js b/node_modules/eslint/lib/cli.js +index 477310d..af6a75a 100644 +--- a/node_modules/eslint/lib/cli.js ++++ b/node_modules/eslint/lib/cli.js +@@ -83,6 +83,7 @@ function translateOptions({ + quiet, + reportUnusedDisableDirectives, + resolvePluginsRelativeTo, ++ resolver, + rule, + rulesdir + }) { +@@ -119,6 +120,7 @@ function translateOptions({ + overrideConfigFile: config, + reportUnusedDisableDirectives: reportUnusedDisableDirectives ? "error" : void 0, + resolvePluginsRelativeTo, ++ resolver, + rulePaths: rulesdir, + useEslintrc: eslintrc + }; +diff --git a/node_modules/eslint/lib/eslint/eslint.js b/node_modules/eslint/lib/eslint/eslint.js +index b4a1d02..89213d0 100644 +--- a/node_modules/eslint/lib/eslint/eslint.js ++++ b/node_modules/eslint/lib/eslint/eslint.js +@@ -173,6 +173,7 @@ function processOptions({ + plugins = {}, + reportUnusedDisableDirectives = null, // ← should be null by default because if it's a string then it overrides the 'reportUnusedDisableDirectives' setting in config files. And we cannot use `overrideConfig.reportUnusedDisableDirectives` instead because we cannot configure the `error` severity with that. + resolvePluginsRelativeTo = null, // ← should be null by default because if it's a string then it suppresses RFC47 feature. ++ resolver = null, + rulePaths = [], + useEslintrc = true, + ...unknownOptions +@@ -305,6 +306,7 @@ function processOptions({ + ignorePath, + reportUnusedDisableDirectives, + resolvePluginsRelativeTo, ++ resolver: resolver ? require(resolver) : undefined, + rulePaths, + useEslintrc + }; +diff --git a/node_modules/eslint/lib/options.js b/node_modules/eslint/lib/options.js +index 2dd186d..dfe32c1 100644 +--- a/node_modules/eslint/lib/options.js ++++ b/node_modules/eslint/lib/options.js +@@ -115,6 +115,11 @@ module.exports = optionator({ + type: "path::String", + description: "A folder where plugins should be resolved from, CWD by default" + }, ++ { ++ option: "resolver", ++ type: "path::String", ++ description: "Absolute path to a resolver module" ++ }, + { + heading: "Specifying rules and plugins" + }, diff --git a/patches/eslint-plugin-import+2.24.2.patch b/patches/eslint-plugin-import+2.24.2.patch new file mode 100644 index 000000000..f5b221131 --- /dev/null +++ b/patches/eslint-plugin-import+2.24.2.patch @@ -0,0 +1,13 @@ +diff --git a/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js b/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js +index bda956c..29be68e 100644 +--- a/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js ++++ b/node_modules/eslint-plugin-import/lib/rules/no-unused-modules.js +@@ -17,7 +17,7 @@ var _arrayIncludes = require('array-includes');var _arrayIncludes2 = _interopReq + * @author René Fermann + */ // eslint/lib/util/glob-util has been moved to eslint/lib/util/glob-utils with version 5.3 + // and has been moved to eslint/lib/cli-engine/file-enumerator in version 6 +-var listFilesToProcess = void 0;try {var FileEnumerator = require('eslint/lib/cli-engine/file-enumerator').FileEnumerator; ++var listFilesToProcess = void 0;try {var FileEnumerator = require('eslint/use-at-your-own-risk').FileEnumerator; + listFilesToProcess = function listFilesToProcess(src, extensions) { + var e = new FileEnumerator({ + extensions: extensions }); diff --git a/yarn.lock b/yarn.lock index b64f65afe..1f2f355f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -977,14 +977,14 @@ resolved "https://registry.yarnpkg.com/@csstools/sass-import-resolve/-/sass-import-resolve-1.0.0.tgz#32c3cdb2f7af3cd8f0dca357b592e7271f3831b5" integrity sha512-pH4KCsbtBLLe7eqUrw8brcuFO8IZlN36JjdKlOublibVdAIPHCzEnpBWOVUXK5sCf+DpBi8ZtuWtjF0srybdeA== -"@eslint/eslintrc@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.0.tgz#08309b915051dbfcfea8c3cdfc832375303396c9" - integrity sha512-FPnE4y+crrKBF0c9PckDHFuPDQl+wRX6S9jeSw2WwM2YNmrdRch3gx3DOTWpqpQu0G9yoJaeSSrJLiV/29tGyQ== +"@eslint/eslintrc@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.1.tgz#13a610699a1c5b2d03eddb8cca3d84275aa833aa" + integrity sha512-bkZOM1byYEdqFpWUzivekkhxD0diJ5NUQ7a2ReCP5+zvRu9T5R4t0cxVGqI1knerw3KzyuuMvGTHRihon0m3ng== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^8.0.0" + espree "^9.0.0" globals "^13.9.0" ignore "^4.0.6" import-fresh "^3.2.1" @@ -1466,10 +1466,10 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@trysound/sax@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" - integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": version "7.1.16" @@ -1591,9 +1591,9 @@ integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/node@*": - version "16.7.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.8.tgz#2448be5f24fe6b77114632b6350fcd219334651e" - integrity sha512-8upnoQU0OPzbIkm+ZMM0zCeFCkw2s3mS0IWdx0+AAaWqm4fkBb0UJp8Edl7FVKRamYbpJC/aVsHpKWBIbiC7Zg== + version "16.10.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.1.tgz#f3647623199ca920960006b3dccf633ea905f243" + integrity sha512-4/Z9DMPKFexZj/Gn3LylFgamNKHm4K3QDi0gz9B26Uk0c8izYf97B5fxfpspMNkWlFupblKM/nV8+NA9Ffvr+w== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -1892,6 +1892,11 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + "@zeit/schemas@2.6.0": version "2.6.0" resolved "https://registry.yarnpkg.com/@zeit/schemas/-/schemas-2.6.0.tgz#004e8e553b4cd53d538bd38eac7bcbf58a867fe3" @@ -1943,10 +1948,10 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.2.4, acorn@^8.4.1: - version "8.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" - integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== +acorn@^8.0.4, acorn@^8.2.4, acorn@^8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" + integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== adverb-where@^0.2.2: version "0.2.5" @@ -2438,7 +2443,7 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@9.8.6, autoprefixer@^9.8.6: +autoprefixer@9.8.6: version "9.8.6" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== @@ -2451,6 +2456,19 @@ autoprefixer@9.8.6, autoprefixer@^9.8.6: postcss "^7.0.32" postcss-value-parser "^4.1.0" +autoprefixer@^9.8.6: + version "9.8.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.7.tgz#e3c12de18a800af1a1a8155fbc01dc7de29ea184" + integrity sha512-7Hg99B1eTH5+LgmUBUSmov1Z3bsggQJS7v3IMGo6wcScnbRuvtMc871J9J+4bSbIqa9LSX/zypFXJ8sXHpMJeQ== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + nanocolors "^0.2.8" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + babel-jest@^27.2.2: version "27.2.2" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.2.2.tgz#d7e96f3f6f56be692de948092697e1bfea7f1184" @@ -2801,7 +2819,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.17.1, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.1, browserslist@^4.16.6, browserslist@^4.17.0, browserslist@^4.3.6: +browserslist@4.17.1, browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.1, browserslist@^4.16.6, browserslist@^4.17.1, browserslist@^4.3.6: version "4.17.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.1.tgz#a98d104f54af441290b7d592626dd541fa642eb9" integrity sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ== @@ -3199,6 +3217,11 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + ci-info@^3.1.1: version "3.2.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" @@ -3436,9 +3459,9 @@ colorette@^1.2.1: integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== colorette@^2.0.10: - version "2.0.10" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.10.tgz#0cc871faead8b07227c9ad784f27a0d71f3794e2" - integrity sha512-tQ7Prvd+zU6EUsQVXJNqxJUZdZ4btI34jlp/W1N/bNyWsY55dxe2oSg+ss3COV4vKbWLVlwLJt5xMSCuZ3R4og== + version "2.0.12" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.12.tgz#7938ab254e7bb1bba29b0fd1b4cc168889ca4d74" + integrity sha512-lHID0PU+NtFzeNCwTL6JzUKdb6kDpyEjrwTD1H0cDZswTbsjLh2wTV2Eo2sNZLc0oSg0a5W1AI4Nj7bX4iIdjA== combined-stream@^1.0.8: version "1.0.8" @@ -3462,7 +3485,7 @@ commander@^6.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^7.1.0: +commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== @@ -3611,11 +3634,11 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.16.0, core-js-compat@^3.16.2: - version "3.18.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.18.0.tgz#fb360652201e8ac8da812718c008cd0482ed9b42" - integrity sha512-tRVjOJu4PxdXjRMEgbP7lqWy1TWJu9a01oBkn8d+dNrhgmBwdTkzhHZpVJnEmhISLdoJI1lX08rcBcHi3TZIWg== + version "3.18.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.18.1.tgz#01942a0877caf9c6e5007c027183cf0bdae6a191" + integrity sha512-XJMYx58zo4W0kLPmIingVZA10+7TuKrMLPt83+EzDmxFJQUMcTVVmQ+n5JP4r6Z14qSzhQBRi3NSWoeVyKKXUg== dependencies: - browserslist "^4.17.0" + browserslist "^4.17.1" semver "7.0.0" core-util-is@~1.0.0: @@ -3703,7 +3726,7 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0: +cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -3795,7 +3818,7 @@ css-tokenize@^1.0.1: inherits "^2.0.1" readable-stream "^1.0.33" -css-tree@^1.1.2: +css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== @@ -4603,12 +4626,12 @@ eslint-webpack-plugin@2.5.4: normalize-path "^3.0.0" schema-utils "^3.0.0" -eslint@8.0.0-beta.1, eslint@^7.32.0: - version "8.0.0-beta.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.0.0-beta.1.tgz#5cd74684dbcfd8abee08cc10de578294124539b5" - integrity sha512-+3EHhCIJHUXuksq6dUSe1Nv9+sdFaLfct6ZiWdFYrHU8u9tX6QQWGdKJQuQXUlUdhMMh6cchRFIQ7OqSAcyq7A== +eslint@8.0.0-rc.0, eslint@^7.32.0: + version "8.0.0-rc.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.0.0-rc.0.tgz#a7f93b06cc2f9ff454b9520c821aeed38a691dca" + integrity sha512-lIEcKtIhPmFAPvkX0DMaXYPhCpUgW4yrauE1y/VheEhkVlpe33N9v3KwMFLKiWMyCEBsf/LjZc1Mc790b96SCw== dependencies: - "@eslint/eslintrc" "^1.0.0" + "@eslint/eslintrc" "^1.0.1" "@humanwhocodes/config-array" "^0.6.0" ajv "^6.10.0" chalk "^4.0.0" @@ -4620,7 +4643,7 @@ eslint@8.0.0-beta.1, eslint@^7.32.0: eslint-scope "^6.0.0" eslint-utils "^3.0.0" eslint-visitor-keys "^3.0.0" - espree "^8.0.0" + espree "^9.0.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -4647,12 +4670,12 @@ eslint@8.0.0-beta.1, eslint@^7.32.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-8.0.0.tgz#08c92c31814c96c96c54d3a35cc80f1cdb420275" - integrity sha512-y/+i23dwTjIDJrYCcjcAMr3c3UGbPIjC6THMQKjWmhP97fW0FPiI89kmpKfmgV/5jrkIi6toQP+CMm3qBE1Hig== +espree@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.0.0.tgz#e90a2965698228502e771c7a58489b1a9d107090" + integrity sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ== dependencies: - acorn "^8.4.1" + acorn "^8.5.0" acorn-jsx "^5.3.1" eslint-visitor-keys "^3.0.0" @@ -5125,6 +5148,13 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-yarn-workspace-root@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" + integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== + dependencies: + micromatch "^4.0.2" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -5217,9 +5247,9 @@ forwarded@0.2.0: integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fp-ts@^2.6.1: - version "2.11.3" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.11.3.tgz#e19444da75252e24f40766d1316dc6600f3499df" - integrity sha512-qHI5iaVSFNFmdl6yDensWfFMk32iafAINCnqx8m486DV1+Jht/bTnA9CyahL+Xm7h2y3erinviVBIAWvv5bPYw== + version "2.11.4" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.11.4.tgz#ad78a0d8eafb0dcfc835a0fb200f6da6422c27f0" + integrity sha512-lhV7tGEbs2qoVw4vmqOovChS7CAoIYU0gdiPEF8Vc4bLZct+PAMMeXrCqRyBNEo33XOvwvAmFDEDIrHPWH2/fg== fragment-cache@^0.2.1: version "0.2.1" @@ -5250,6 +5280,15 @@ fs-extra@8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^9.0.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -6260,6 +6299,13 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + is-ci@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" @@ -6268,9 +6314,9 @@ is-ci@^3.0.0: ci-info "^3.1.1" is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" - integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== + version "2.7.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3" + integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ== dependencies: has "^1.0.3" @@ -6367,7 +6413,7 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@4.0.1, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -6381,6 +6427,13 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.2.tgz#859fc2e731e58c902f99fcabccb75a7dd07d29d8" + integrity sha512-ZZTOjRcDjuAAAv2cTBQP/lL59ZTArx77+7UzHdWW/XB1mrfp7DEaVpKmZ0XIzx+M7AxfhKcqV+nMetUQmFifwg== + dependencies: + is-extglob "^2.1.1" + is-hexadecimal@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" @@ -7259,6 +7312,13 @@ kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +klaw-sync@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" + integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== + dependencies: + graceful-fs "^4.1.11" + kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -8002,20 +8062,20 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== -nanocolors@^0.1.0, nanocolors@^0.1.5: +nanocolors@^0.1.0, nanocolors@^0.1.12, nanocolors@^0.1.5: version "0.1.12" resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6" integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ== -nanocolors@^0.2.2: - version "0.2.6" - resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.2.6.tgz#2e7815d25c04aaa43e54b9f0d6d21060172e5831" - integrity sha512-lP8hjPSXTQ7qpYl5hFPVTBXGdd7+Rn3oi8GqIPNZP63L09tewRzWYFxAy26B1BYOOYaPWgmVF/BFIhDAHihwUQ== +nanocolors@^0.2.2, nanocolors@^0.2.8: + version "0.2.11" + resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.2.11.tgz#f2573e6872f1b70067423fc68bbc9d0de2f3bbee" + integrity sha512-83ttyvfJj66dKMadWfBkEUOEDFfRc8FpzTJvh1MySR/pzWFmFikTQZGOV6kHZRz7yR/heiQ1y/MHBBN5P/e7WQ== nanoid@^3.1.25: - version "3.1.25" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" - integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== + version "3.1.28" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.28.tgz#3c01bac14cb6c5680569014cc65a2f26424c6bd4" + integrity sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw== nanomatch@^1.2.9: version "1.2.13" @@ -8404,6 +8464,14 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +open@^7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + open@^8.0.9: version "8.2.1" resolved "https://registry.yarnpkg.com/open/-/open-8.2.1.tgz#82de42da0ccbf429bc12d099dad2e0975e14e8af" @@ -8649,6 +8717,25 @@ passive-voice@^0.1.0: resolved "https://registry.yarnpkg.com/passive-voice/-/passive-voice-0.1.0.tgz#16ff91ae40ba0e92c43e671763fdc842a70270b1" integrity sha1-Fv+RrkC6DpLEPmcXY/3IQqcCcLE= +patch-package@^6.4.7: + version "6.4.7" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.4.7.tgz#2282d53c397909a0d9ef92dae3fdeb558382b148" + integrity sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^2.4.2" + cross-spawn "^6.0.5" + find-yarn-workspace-root "^2.0.0" + fs-extra "^7.0.1" + is-ci "^2.0.0" + klaw-sync "^6.0.0" + minimist "^1.2.0" + open "^7.4.2" + rimraf "^2.6.3" + semver "^5.6.0" + slash "^2.0.0" + tmp "^0.0.33" + path-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" @@ -10517,6 +10604,11 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -11927,9 +12019,9 @@ v8-compile-cache@^2.0.3, v8-compile-cache@^2.3.0: integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== v8-to-istanbul@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" - integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== + version "8.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz#0aeb763894f1a0a1676adf8a8b7612a38902446c" + integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0"