diff --git a/.release-please-manifest.json b/.release-please-manifest.json index c911da1026..7fa5148265 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,7 +1,7 @@ { - "packages/build": "18.2.5", - "packages/cache-utils": "2.0.1", - "packages/config": "15.1.4", + "packages/build": "18.2.10", + "packages/cache-utils": "2.0.2", + "packages/config": "15.3.4", "packages/functions-utils": "2.0.4", "packages/git-utils": "2.0.1", "packages/run-utils": "2.0.1" diff --git a/package-lock.json b/package-lock.json index b90c6c02cb..f76b74fcc1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "devDependencies": { "@commitlint/cli": "^13.0.0", "@commitlint/config-conventional": "^13.0.0", - "@netlify/eslint-config-node": "^3.2.1", + "@netlify/eslint-config-node": "^3.2.2", "ava": "^3.15.0", "lerna": "^4.0.0", "nyc": "^15.0.0" @@ -71,6 +71,14 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/eslint-parser": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.0.tgz", @@ -89,6 +97,15 @@ "eslint": ">=7.5.0" } }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/generator": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", @@ -142,6 +159,14 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.0.tgz", @@ -206,6 +231,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-explode-assignable-expression": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", @@ -1472,6 +1505,14 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/preset-modules": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", @@ -1677,21 +1718,6 @@ "node": ">=v12" } }, - "node_modules/@commitlint/is-ignored/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@commitlint/lint": { "version": "13.1.0", "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-13.1.0.tgz", @@ -1815,67 +1841,6 @@ "node": ">=v12" } }, - "node_modules/@commitlint/top-level/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@commitlint/top-level/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/@commitlint/top-level/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/@commitlint/top-level/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/@commitlint/types": { "version": "13.1.0", "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-13.1.0.tgz", @@ -1939,9 +1904,9 @@ } }, "node_modules/@eslint/eslintrc/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.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2041,6 +2006,19 @@ "node": ">=6" } }, + "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/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -2100,21 +2078,6 @@ "node": ">= 10.18.0" } }, - "node_modules/@lerna/add/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/bootstrap": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-4.0.0.tgz", @@ -2148,21 +2111,6 @@ "node": ">= 10.18.0" } }, - "node_modules/@lerna/bootstrap/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/changed": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-4.0.0.tgz", @@ -2358,33 +2306,6 @@ "node": ">=10" } }, - "node_modules/@lerna/conventional-commits/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@lerna/conventional-commits/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/create": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/create/-/create-4.0.0.tgz", @@ -2487,21 +2408,6 @@ "node": ">= 4" } }, - "node_modules/@lerna/create/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/describe-ref": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-4.0.0.tgz", @@ -2670,21 +2576,6 @@ "node": ">= 10.18.0" } }, - "node_modules/@lerna/has-npm-version/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/import": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/import/-/import-4.0.0.tgz", @@ -3005,21 +2896,6 @@ "node": ">= 10.18.0" } }, - "node_modules/@lerna/package-graph/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/prerelease-id-from-version": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-4.0.0.tgz", @@ -3032,21 +2908,6 @@ "node": ">= 10.18.0" } }, - "node_modules/@lerna/prerelease-id-from-version/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/profiler": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-4.0.0.tgz", @@ -3210,21 +3071,6 @@ "node": ">=10" } }, - "node_modules/@lerna/publish/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/pulse-till-done": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-4.0.0.tgz", @@ -3460,21 +3306,6 @@ "node": ">= 10.18.0" } }, - "node_modules/@lerna/version/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/write-log-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-4.0.0.tgz", @@ -3522,9 +3353,9 @@ } }, "node_modules/@netlify/eslint-config-node": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@netlify/eslint-config-node/-/eslint-config-node-3.2.1.tgz", - "integrity": "sha512-z7Oh8EqJCyde7QFJArDpaDlLt8K98+7skGQ6MpvqAb4YRStLAynzC/1/KPacNvqjmzR6sxbTw2eXOclWH+9A+w==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@netlify/eslint-config-node/-/eslint-config-node-3.2.2.tgz", + "integrity": "sha512-6t6pp9TokY+LAFsPWdBTp/bParQxdk1YBm9s1Mhvo8D2YXoiIILVN5zwfr2CRlxt7XFZzdv/RUl9y6tqt4KF+g==", "dev": true, "dependencies": { "@babel/core": "^7.13.8", @@ -3671,21 +3502,6 @@ "node": ">=10.18.0" } }, - "node_modules/@netlify/zip-it-and-ship-it/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@netlify/zip-it-and-ship-it/node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -3739,20 +3555,6 @@ "node": ">=10" } }, - "node_modules/@netlify/zip-it-and-ship-it/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@netlify/zip-it-and-ship-it/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -3824,21 +3626,6 @@ "which": "^2.0.2" } }, - "node_modules/@npmcli/git/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@npmcli/installed-package-contents": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", @@ -3935,21 +3722,6 @@ "node": ">=6" } }, - "node_modules/@npmcli/run-script/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@octokit/auth-token": { "version": "2.4.5", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz", @@ -4525,20 +4297,6 @@ "node": ">= 4" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/visitor-keys": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.1.tgz", @@ -4753,6 +4511,21 @@ "node": ">=8" } }, + "node_modules/all-node-versions/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/all-node-versions/node_modules/jest-get-type": { "version": "25.2.6", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", @@ -4800,19 +4573,16 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, - "node_modules/all-node-versions/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/all-node-versions/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": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, "node_modules/ansi-align": { @@ -5347,43 +5117,6 @@ "node": ">=10.18.0 <11 || >=12.14.0 <12.17.0 || >=12.17.0 <13 || >=14.0.0 <15 || >=15" } }, - "node_modules/ava/node_modules/boxen": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", - "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.0", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ava/node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ava/node_modules/globby": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", @@ -5413,125 +5146,6 @@ "node": ">= 4" } }, - "node_modules/ava/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ava/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/ava/node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ava/node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ava/node_modules/pretty-ms": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", - "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "dev": true, - "dependencies": { - "parse-ms": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ava/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ava/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/ava/node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, "node_modules/ava/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -5586,6 +5200,14 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", @@ -5702,66 +5324,35 @@ "dev": true }, "node_modules/boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", + "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==", "dependencies": { "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.0", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, + "node_modules/boxen/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==", "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/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==", - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/brace-expansion": { @@ -5981,6 +5572,20 @@ "node": ">=8" } }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cacheable-request/node_modules/lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -6043,7 +5648,6 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, "engines": { "node": ">=10" }, @@ -6121,6 +5725,17 @@ "url": "https://github.com/chalk/ansi-styles?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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/character-entities": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", @@ -6671,21 +6286,6 @@ "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" } }, - "node_modules/concordance/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", @@ -6994,6 +6594,15 @@ "node": ">=10" } }, + "node_modules/conventional-changelog-writer/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/conventional-commits-filter": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", @@ -8074,9 +7683,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.803", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.803.tgz", - "integrity": "sha512-tmRK9qB8Zs8eLMtTBp+w2zVS9MUe62gQQQHjYdAc5Zljam3ZIokNb+vZLPRz9RCREp6EFRwyhOFwbt1fEriQ2Q==" + "version": "1.3.806", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.806.tgz", + "integrity": "sha512-AH/otJLAAecgyrYp0XK1DPiGVWcOgwPeJBOLeuFQ5l//vhQhwC9u6d+GijClqJAmsHG4XDue81ndSQPohUu0xA==" }, "node_modules/elf-cam": { "version": "0.1.1", @@ -8491,9 +8100,9 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.5.tgz", - "integrity": "sha512-XMoPKjSpXbkeJ7ZZ9icLnJMTY5Mc1kZbCakHquaFsXPpyWOwK0TK6CODO+0ca54UoM9LKOxyUNnoVZRl8TeaAg==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "dependencies": { "debug": "^3.2.7", @@ -8646,67 +8255,6 @@ "eslint": ">=7.22.0" } }, - "node_modules/eslint-plugin-ava/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-plugin-ava/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/eslint-plugin-ava/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/eslint-plugin-ava/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/eslint-plugin-ava/node_modules/pkg-dir": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", @@ -9107,6 +8655,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/eslint-plugin-node/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/eslint-plugin-promise": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.1.0.tgz", @@ -9210,21 +8767,6 @@ "eslint": ">=5" } }, - "node_modules/eslint-plugin-unicorn/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-you-dont-need-lodash-underscore": { "version": "6.12.0", "resolved": "https://registry.npmjs.org/eslint-plugin-you-dont-need-lodash-underscore/-/eslint-plugin-you-dont-need-lodash-underscore-6.12.0.tgz", @@ -9317,9 +8859,9 @@ } }, "node_modules/eslint/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.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -9344,21 +8886,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -9516,17 +9043,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/exit-on-epipe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", @@ -9961,6 +9477,21 @@ "node": ">=10" } }, + "node_modules/fetch-node-website/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/fetch-node-website/node_modules/got": { "version": "10.7.0", "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz", @@ -10116,6 +9647,18 @@ "lowercase-keys": "^2.0.0" } }, + "node_modules/fetch-node-website/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/fetch-node-website/node_modules/to-readable-stream": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", @@ -10208,15 +9751,60 @@ } }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dependencies": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up/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==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up/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==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up/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==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/find-versions": { @@ -10256,7 +9844,8 @@ "node_modules/flatten": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash." }, "node_modules/for-in": { "version": "1.0.2", @@ -10545,48 +10134,6 @@ "node": ">=10.17.0" } }, - "node_modules/get-node/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-node/node_modules/move-file": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.1.0.tgz", - "integrity": "sha512-i9qLW6gqboJ5Ht8bauZi7KlTnQ3QFpBCvMvFfEcHADKgHGeJ9BZMO7SFCTwHPV9Qa0du9DYY1Yx3oqlGt30nXA==", - "dev": true, - "dependencies": { - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10.17" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-node/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -10766,14 +10313,11 @@ } }, "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10853,6 +10397,15 @@ "node": ">=10" } }, + "node_modules/git-semver-tags/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/git-up": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.5.tgz", @@ -11404,67 +10957,6 @@ "url": "https://opencollective.com/husky" } }, - "node_modules/husky/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/husky/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/husky/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/husky/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/husky/node_modules/pkg-dir": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", @@ -11666,21 +11158,6 @@ "node": ">=10" } }, - "node_modules/init-package-json/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/inquirer": { "version": "7.3.3", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", @@ -11987,38 +11464,41 @@ } }, "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-installed-globally/node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "dependencies": { - "ini": "1.3.7" + "ini": "2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-installed-globally/node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } }, "node_modules/is-interactive": { "version": "1.0.0", @@ -12053,11 +11533,14 @@ } }, "node_modules/is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-number": { @@ -12317,6 +11800,15 @@ "node": ">=8" } }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/istanbul-lib-processinfo": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", @@ -12371,6 +11863,18 @@ "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", @@ -12446,6 +11950,17 @@ "node": ">= 10.13.0" } }, + "node_modules/jest-worker/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/js-string-escape": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", @@ -12917,21 +12432,6 @@ "node": ">=10" } }, - "node_modules/libnpmpublish/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", @@ -13193,14 +12693,6 @@ "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-1.6.3.tgz", "integrity": "sha512-4WKW0AL5+WEqO0zWavAfYGY1qwLsBgE//DN4TTcVEN2UlINgkv9b3vm2iHicoenWKSX9mKWmGOsU/iI5IST7pQ==" }, - "node_modules/log-process-errors/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, "node_modules/log-process-errors/node_modules/jest-get-type": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", @@ -13257,6 +12749,14 @@ "color-name": "1.1.3" } }, + "node_modules/log-process-errors/node_modules/jest-validate/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, "node_modules/log-process-errors/node_modules/jest-validate/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -13321,6 +12821,17 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "node_modules/log-process-errors/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -13401,6 +12912,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/make-fetch-happen": { "version": "8.0.14", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", @@ -13931,67 +13450,17 @@ } }, "node_modules/move-file": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/move-file/-/move-file-1.2.0.tgz", - "integrity": "sha512-USHrRmxzGowUWAGBbJPdFjHzEqtxDU03pLHY0Rfqgtnq+q8FOIs8wvkkf+Udmg77SJKs47y9sI0jJvQeYsmiCA==", - "dependencies": { - "cp-file": "^6.1.0", - "make-dir": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/move-file/node_modules/cp-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", - "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", - "dependencies": { - "graceful-fs": "^4.1.2", - "make-dir": "^2.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^4.0.1", - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/move-file/node_modules/cp-file/node_modules/make-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.1.0.tgz", + "integrity": "sha512-i9qLW6gqboJ5Ht8bauZi7KlTnQ3QFpBCvMvFfEcHADKgHGeJ9BZMO7SFCTwHPV9Qa0du9DYY1Yx3oqlGt30nXA==", "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/move-file/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=", - "engines": { - "node": ">=4" - } - }, - "node_modules/move-file/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/move-file/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" + "node": ">=10.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ms": { @@ -14032,9 +13501,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.1.24", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.24.tgz", - "integrity": "sha512-WNhqqgD4qH7TQdU9ujXfFa/hQI5rOGGnZq+JRmz4JwMZFCgSZVquTq3ORUSv6IC+Y41ACBYV8a8J1kPkqGIiQg==", + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -14107,9 +13576,9 @@ } }, "node_modules/netlify-headers-parser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/netlify-headers-parser/-/netlify-headers-parser-2.0.0.tgz", - "integrity": "sha512-Iam/dmx/R0pxRohIBLmNOz0chRm/7UzPmdrzE/zbK3WpycclkMMtDD8uRuo4IE+NDjXcjX/DfK7KtKZsAwjI4A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/netlify-headers-parser/-/netlify-headers-parser-3.0.1.tgz", + "integrity": "sha512-32oDkPa7+JdTFOp0M4H31AZDQ8YVJWgNlPkPuilb1C1dgvmAFXa8k4x+ADpgCbQfTMP3exO3vobvlfj8SUHxnA==", "dependencies": { "is-plain-obj": "^3.0.0", "map-obj": "^4.2.1", @@ -14132,12 +13601,12 @@ } }, "node_modules/netlify-redirect-parser": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-9.1.0.tgz", - "integrity": "sha512-YORCj4Qeimv7VixnNHtTt3i0EfyWYG0rYb68EcQpwJ+nG1mRWmybW2WwYcKI5jRIaKTNZeDwsWS+yuGpRfcu0A==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-11.0.2.tgz", + "integrity": "sha512-ngGSxRUv8dsao586J0MsfQFpi66TnIlYND1KRl1vCgjuuMBzvO9WbV8maqJA9d0G6f9NVKb+LqufmOQj4AkkFw==", "dependencies": { "filter-obj": "^2.0.2", - "is-plain-obj": "^2.1.0", + "is-plain-obj": "^3.0.0", "path-exists": "^4.0.0", "toml": "^3.0.0" }, @@ -14145,6 +13614,17 @@ "node": ">=10.18.0" } }, + "node_modules/netlify-redirect-parser/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -14482,19 +13962,16 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, - "node_modules/node-version-alias/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/node-version-alias/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": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, "node_modules/nopt": { @@ -14643,19 +14120,16 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, - "node_modules/normalize-node-version/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "node_modules/normalize-node-version/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": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, "node_modules/normalize-package-data": { @@ -14686,21 +14160,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -14738,21 +14197,6 @@ "node": ">=10" } }, - "node_modules/npm-install-checks/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/npm-lifecycle": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz", @@ -14809,21 +14253,6 @@ "node": ">=10" } }, - "node_modules/npm-package-arg/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/npm-packlist": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", @@ -14854,21 +14283,6 @@ "semver": "^7.3.4" } }, - "node_modules/npm-pick-manifest/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/npm-registry-fetch": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", @@ -15262,6 +14676,19 @@ "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/p-map": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", @@ -15758,6 +15185,14 @@ "node": ">=6" } }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -15853,14 +15288,6 @@ "node": ">=8" } }, - "node_modules/p-timeout/node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -15927,6 +15354,14 @@ "node": ">=8" } }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/pacote": { "version": "11.3.5", "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", @@ -16320,6 +15755,7 @@ "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" }, @@ -16327,6 +15763,19 @@ "node": ">=8" } }, + "node_modules/pkg-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==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/pkg-up": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", @@ -16638,6 +16087,18 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, + "node_modules/preferred-node-version/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/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -16707,14 +16168,14 @@ } }, "node_modules/pretty-ms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-5.1.0.tgz", - "integrity": "sha512-4gaK1skD2gwscCfkswYQRmddUb2GJZtzDGRjHWadVHtK/DIKFufa12MvES6/xu1tVbUYeia5bmLcwJtZJQUqnw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", "dependencies": { "parse-ms": "^2.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16751,6 +16212,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/process-exists/node_modules/ps-list": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz", + "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -16835,11 +16305,14 @@ "dev": true }, "node_modules/ps-list": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz", - "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-7.2.0.tgz", + "integrity": "sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/psl": { @@ -17130,6 +16603,18 @@ "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==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "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", @@ -17758,11 +17243,17 @@ "dev": true }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/semver-compare": { @@ -17782,6 +17273,14 @@ "node": ">=8" } }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/semver-regex": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", @@ -17960,6 +17459,18 @@ "url": "https://opencollective.com/sinon" } }, + "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", @@ -18799,14 +18310,17 @@ } }, "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==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/table": { @@ -18974,17 +18488,6 @@ "uuid": "bin/uuid" } }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/terser": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", @@ -19577,57 +19080,32 @@ } }, "node_modules/update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", "dependencies": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", + "boxen": "^5.0.0", + "chalk": "^4.1.0", "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, - "node_modules/update-notifier/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/update-notifier/node_modules/is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", @@ -19953,14 +19431,6 @@ "node": ">=4" } }, - "node_modules/windows-release/node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, "node_modules/windows-release/node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -20239,9 +19709,9 @@ } }, "node_modules/yargs": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.0.tgz", - "integrity": "sha512-SQr7qqmQ2sNijjJGHL4u7t8vyDZdZ3Ahkmo4sc1w5xI9TBX0QDdG/g4SFnxtWOsGLjwHQue57eFALfwFCnixgg==", + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", "dev": true, "dependencies": { "cliui": "^7.0.2", @@ -20304,7 +19774,7 @@ }, "packages/build": { "name": "@netlify/build", - "version": "18.2.4", + "version": "18.2.9", "license": "MIT", "dependencies": { "@bugsnag/js": "^7.0.0", @@ -20327,10 +19797,10 @@ "filter-obj": "^2.0.1", "got": "^9.6.0", "indent-string": "^4.0.0", - "is-plain-obj": "^2.1.0", + "is-plain-obj": "^3.0.0", "js-yaml": "^4.0.0", "keep-func-props": "^3.0.0", - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "log-process-errors": "^5.1.2", "make-dir": "^3.0.2", "map-obj": "^4.0.0", @@ -20339,13 +19809,13 @@ "p-event": "^4.1.0", "p-every": "^2.0.0", "p-filter": "^2.1.0", - "p-locate": "^4.1.0", + "p-locate": "^5.0.0", "p-reduce": "^2.1.0", "path-exists": "^4.0.0", "path-type": "^4.0.0", - "pkg-dir": "^4.2.0", - "pretty-ms": "^5.1.0", - "ps-list": "^6.3.0", + "pkg-dir": "^5.0.0", + "pretty-ms": "^7.0.0", + "ps-list": "^7.0.0", "read-pkg-up": "^7.0.1", "readdirp": "^3.4.0", "resolve": "^2.0.0-next.1", @@ -20355,9 +19825,9 @@ "statsd-client": "0.4.7", "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "supports-color": "^7.1.0", + "supports-color": "^8.0.0", "tmp-promise": "^3.0.2", - "update-notifier": "^4.1.0", + "update-notifier": "^5.0.0", "uuid": "^8.0.0", "yargs": "^15.3.1" }, @@ -20368,7 +19838,6 @@ "@netlify/nock-udp": "^1.0.0", "atob": "^2.1.2", "ava": "^3.15.0", - "cp-file": "^9.1.0", "cpy": "^8.1.0", "del": "^6.0.0", "get-bin-path": "^5.1.0", @@ -20419,11 +19888,58 @@ "wrap-ansi": "^6.2.0" } }, - "packages/build/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, + "packages/build/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==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/build/node_modules/find-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==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/build/node_modules/find-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==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/build/node_modules/find-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==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "packages/build/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "engines": { "node": ">=10" }, @@ -20431,20 +19947,88 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/build/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "packages/build/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==", "dependencies": { - "lru-cache": "^6.0.0" + "p-locate": "^5.0.0" }, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/build/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==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/build/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==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/build/node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dependencies": { + "find-up": "^5.0.0" }, "engines": { "node": ">=10" } }, + "packages/build/node_modules/pkg-dir/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/build/node_modules/pkg-dir/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==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "packages/build/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -20498,7 +20082,7 @@ }, "packages/cache-utils": { "name": "@netlify/cache-utils", - "version": "2.0.0", + "version": "2.0.1", "license": "MIT", "dependencies": { "array-flat-polyfill": "^1.0.1", @@ -20506,9 +20090,9 @@ "del": "^5.1.0", "get-stream": "^6.0.0", "globby": "^10.0.2", - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "make-dir": "^3.1.0", - "move-file": "^1.2.0", + "move-file": "^2.0.0", "path-exists": "^4.0.0", "readdirp": "^3.4.0" }, @@ -20538,10 +20122,41 @@ "node": ">=8" } }, - "packages/cache-utils/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "packages/cache-utils/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==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/cache-utils/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==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/cache-utils/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==", + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { "node": ">=10" }, @@ -20562,13 +20177,12 @@ }, "packages/config": { "name": "@netlify/config", - "version": "15.1.4", + "version": "15.3.3", "license": "MIT", "dependencies": { "@ungap/from-entries": "^0.2.1", "array-flat-polyfill": "^1.0.1", "chalk": "^4.1.2", - "cp-file": "^7.0.0", "deepmerge": "^4.2.2", "dot-prop": "^5.3.0", "execa": "^5.1.1", @@ -20577,15 +20191,15 @@ "filter-obj": "^2.0.1", "find-up": "^5.0.0", "indent-string": "^4.0.0", - "is-plain-obj": "^2.1.0", + "is-plain-obj": "^3.0.0", "js-yaml": "^4.0.0", "make-dir": "^3.1.0", "map-obj": "^4.0.0", "netlify": "^8.0.0", - "netlify-headers-parser": "^2.0.0", - "netlify-redirect-parser": "^9.1.0", + "netlify-headers-parser": "^3.0.1", + "netlify-redirect-parser": "^11.0.2", "omit.js": "^2.0.2", - "p-locate": "^4.1.0", + "p-locate": "^5.0.0", "path-exists": "^4.0.0", "path-type": "^4.0.0", "toml": "^3.0.0", @@ -20640,20 +20254,6 @@ "wrap-ansi": "^6.2.0" } }, - "packages/config/node_modules/cp-file": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", - "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", - "dependencies": { - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "nested-error-stacks": "^2.0.0", - "p-event": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, "packages/config/node_modules/del": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", @@ -20673,14 +20273,10 @@ "node": ">=8" } }, - "packages/config/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, + "packages/config/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "engines": { "node": ">=10" }, @@ -20688,12 +20284,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/config/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==", + "packages/config/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==", "dependencies": { - "p-locate": "^5.0.0" + "yocto-queue": "^0.1.0" }, "engines": { "node": ">=10" @@ -20702,7 +20298,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/config/node_modules/locate-path/node_modules/p-locate": { + "packages/config/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==", @@ -20716,20 +20312,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/config/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==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/config/node_modules/p-map": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", @@ -20805,17 +20387,6 @@ "node": ">=8" } }, - "packages/config/node_modules/yargs/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==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, "packages/functions-utils": { "name": "@netlify/functions-utils", "version": "2.0.4", @@ -20899,21 +20470,6 @@ "engines": { "node": ">=10.18.0" } - }, - "packages/run-utils/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } } }, "dependencies": { @@ -20950,6 +20506,13 @@ "json5": "^2.1.2", "semver": "^6.3.0", "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "@babel/eslint-parser": { @@ -20961,6 +20524,14 @@ "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "@babel/generator": { @@ -20999,6 +20570,13 @@ "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "@babel/helper-create-class-features-plugin": { @@ -21046,6 +20624,11 @@ "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -21892,6 +21475,13 @@ "babel-plugin-polyfill-regenerator": "^0.2.2", "core-js-compat": "^3.16.0", "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "@babel/preset-modules": { @@ -22061,17 +21651,6 @@ "requires": { "@commitlint/types": "^13.1.0", "semver": "7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@commitlint/lint": { @@ -22168,45 +21747,6 @@ "dev": true, "requires": { "find-up": "^5.0.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "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" - } - }, - "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" - } - } } }, "@commitlint/types": { @@ -22262,9 +21802,9 @@ } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -22339,6 +21879,16 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, + "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" + } + }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -22386,17 +21936,6 @@ "p-map": "^4.0.0", "pacote": "^11.2.6", "semver": "^7.3.4" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@lerna/bootstrap": { @@ -22427,17 +21966,6 @@ "p-waterfall": "^2.1.1", "read-package-tree": "^5.3.1", "semver": "^7.3.4" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@lerna/changed": { @@ -22602,21 +22130,6 @@ "jsonfile": "^6.0.1", "universalify": "^2.0.0" } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, @@ -22677,15 +22190,6 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, @@ -22846,17 +22350,6 @@ "requires": { "@lerna/child-process": "4.0.0", "semver": "^7.3.4" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@lerna/import": { @@ -23122,17 +22615,6 @@ "npm-package-arg": "^8.1.0", "npmlog": "^4.1.2", "semver": "^7.3.4" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@lerna/prerelease-id-from-version": { @@ -23142,17 +22624,6 @@ "dev": true, "requires": { "semver": "^7.3.4" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@lerna/profiler": { @@ -23288,15 +22759,6 @@ "jsonfile": "^6.0.1", "universalify": "^2.0.0" } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, @@ -23494,17 +22956,6 @@ "slash": "^3.0.0", "temp-write": "^4.0.0", "write-json-file": "^4.3.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@lerna/write-log-file": { @@ -23547,7 +22998,6 @@ "ava": "^3.15.0", "chalk": "^4.1.2", "clean-stack": "^3.0.1", - "cp-file": "^9.1.0", "cpy": "^8.1.0", "del": "^6.0.0", "execa": "^5.1.1", @@ -23561,10 +23011,10 @@ "has-ansi": "^4.0.0", "indent-string": "^4.0.0", "is-ci": "^3.0.0", - "is-plain-obj": "^2.1.0", + "is-plain-obj": "^3.0.0", "js-yaml": "^4.0.0", "keep-func-props": "^3.0.0", - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "log-process-errors": "^5.1.2", "make-dir": "^3.0.2", "map-obj": "^4.0.0", @@ -23574,15 +23024,15 @@ "p-event": "^4.1.0", "p-every": "^2.0.0", "p-filter": "^2.1.0", - "p-locate": "^4.1.0", + "p-locate": "^5.0.0", "p-reduce": "^2.1.0", "path-exists": "^4.0.0", "path-key": "^3.1.1", "path-type": "^4.0.0", - "pkg-dir": "^4.2.0", - "pretty-ms": "^5.1.0", + "pkg-dir": "^5.0.0", + "pretty-ms": "^7.0.0", "process-exists": "^4.0.0", - "ps-list": "^6.3.0", + "ps-list": "^7.0.0", "read-pkg-up": "^7.0.1", "readdirp": "^3.4.0", "resolve": "^2.0.0-next.1", @@ -23593,9 +23043,9 @@ "statsd-client": "0.4.7", "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "supports-color": "^7.1.0", + "supports-color": "^8.0.0", "tmp-promise": "^3.0.2", - "update-notifier": "^4.1.0", + "update-notifier": "^5.0.0", "uuid": "^8.0.0", "yargs": "^15.3.1", "yarn": "^1.22.4" @@ -23624,18 +23074,95 @@ "wrap-ansi": "^6.2.0" } }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "dependencies": { + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "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==", + "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==", + "requires": { + "p-limit": "^2.2.0" + } + } + } }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + }, + "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==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "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==", "requires": { - "lru-cache": "^6.0.0" + "p-limit": "^3.0.2" + } + }, + "pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "requires": { + "find-up": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "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==", + "requires": { + "p-locate": "^5.0.0" + } + } } }, "wrap-ansi": { @@ -23691,9 +23218,9 @@ "del": "^5.1.0", "get-stream": "^6.0.0", "globby": "^10.0.2", - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "make-dir": "^3.1.0", - "move-file": "^1.2.0", + "move-file": "^2.0.0", "path-exists": "^4.0.0", "readdirp": "^3.4.0", "tmp-promise": "^3.0.0" @@ -23714,10 +23241,29 @@ "slash": "^3.0.0" } }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "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==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "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==", + "requires": { + "p-limit": "^3.0.2" + } }, "p-map": { "version": "3.0.0", @@ -23736,7 +23282,6 @@ "array-flat-polyfill": "^1.0.1", "ava": "^3.15.0", "chalk": "^4.1.2", - "cp-file": "^7.0.0", "deepmerge": "^4.2.2", "del": "^5.1.0", "dot-prop": "^5.3.0", @@ -23749,15 +23294,15 @@ "has-ansi": "^4.0.0", "indent-string": "^4.0.0", "is-ci": "^3.0.0", - "is-plain-obj": "^2.1.0", + "is-plain-obj": "^3.0.0", "js-yaml": "^4.0.0", "make-dir": "^3.1.0", "map-obj": "^4.0.0", "netlify": "^8.0.0", - "netlify-headers-parser": "^2.0.0", - "netlify-redirect-parser": "^9.1.0", + "netlify-headers-parser": "^3.0.1", + "netlify-redirect-parser": "^11.0.2", "omit.js": "^2.0.2", - "p-locate": "^4.1.0", + "p-locate": "^5.0.0", "path-exists": "^4.0.0", "path-type": "^4.0.0", "tmp-promise": "^3.0.2", @@ -23790,17 +23335,6 @@ "wrap-ansi": "^6.2.0" } }, - "cp-file": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", - "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", - "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "nested-error-stacks": "^2.0.0", - "p-event": "^4.1.0" - } - }, "del": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", @@ -23817,32 +23351,10 @@ "slash": "^3.0.0" } }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "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==", - "requires": { - "p-locate": "^5.0.0" - }, - "dependencies": { - "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==", - "requires": { - "p-limit": "^3.0.2" - } - } - } + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" }, "p-limit": { "version": "3.1.0", @@ -23852,6 +23364,14 @@ "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==", + "requires": { + "p-limit": "^3.0.2" + } + }, "p-map": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", @@ -23902,14 +23422,6 @@ "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==", - "requires": { - "p-locate": "^4.1.0" - } } } }, @@ -23930,9 +23442,9 @@ "integrity": "sha512-tiKmDcHM2riSVN79c0mJY/67EBDafXQAMitHuLiCDAMdtz3kfv+NqdVG5krgf5lWR8Uf8AeZrUW5Q9RP25REvw==" }, "@netlify/eslint-config-node": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@netlify/eslint-config-node/-/eslint-config-node-3.2.1.tgz", - "integrity": "sha512-z7Oh8EqJCyde7QFJArDpaDlLt8K98+7skGQ6MpvqAb4YRStLAynzC/1/KPacNvqjmzR6sxbTw2eXOclWH+9A+w==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@netlify/eslint-config-node/-/eslint-config-node-3.2.2.tgz", + "integrity": "sha512-6t6pp9TokY+LAFsPWdBTp/bParQxdk1YBm9s1Mhvo8D2YXoiIILVN5zwfr2CRlxt7XFZzdv/RUl9y6tqt4KF+g==", "dev": true, "requires": { "@babel/core": "^7.13.8", @@ -24061,17 +23573,6 @@ "ava": "^3.15.0", "execa": "^5.1.1", "semver": "^7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@netlify/zip-it-and-ship-it": { @@ -24111,15 +23612,6 @@ "yargs": "^16.0.0" }, "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -24152,14 +23644,6 @@ "find-up": "^5.0.0" } }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -24219,17 +23703,6 @@ "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^2.0.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@npmcli/installed-package-contents": { @@ -24306,15 +23779,6 @@ "requires": { "abbrev": "1" } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, @@ -24799,14 +24263,6 @@ "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } } } }, @@ -24971,6 +24427,15 @@ "supports-color": "^7.1.0" } }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, "jest-get-type": { "version": "25.2.6", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", @@ -25009,13 +24474,13 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "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": { - "lru-cache": "^6.0.0" + "has-flag": "^4.0.0" } } } @@ -25444,31 +24909,6 @@ "yargs": "^16.2.0" }, "dependencies": { - "boxen": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", - "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.0", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - } - }, - "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dev": true, - "requires": { - "ini": "2.0.0" - } - }, "globby": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", @@ -25489,83 +24929,6 @@ "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true }, - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dev": true, - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, - "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true - }, - "pretty-ms": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", - "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "dev": true, - "requires": { - "parse-ms": "^2.1.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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 - }, - "update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dev": true, - "requires": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - } - }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -25611,6 +24974,13 @@ "@babel/compat-data": "^7.13.11", "@babel/helper-define-polyfill-provider": "^0.2.2", "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "babel-plugin-polyfill-corejs3": { @@ -25702,46 +25072,24 @@ "dev": true }, "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", + "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==", "requires": { "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.0", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "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==" } } }, @@ -25907,6 +25255,14 @@ "responselike": "^1.0.2" }, "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -25955,8 +25311,7 @@ "camelcase": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" }, "camelcase-keys": { "version": "6.2.2", @@ -26004,6 +25359,14 @@ "requires": { "color-convert": "^2.0.1" } + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -26436,17 +25799,6 @@ "md5-hex": "^3.0.1", "semver": "^7.3.2", "well-known-symbols": "^2.0.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "config-chain": { @@ -26693,6 +26045,14 @@ "semver": "^6.0.0", "split": "^1.0.0", "through2": "^4.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "conventional-commits-filter": { @@ -27514,9 +26874,9 @@ } }, "electron-to-chromium": { - "version": "1.3.803", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.803.tgz", - "integrity": "sha512-tmRK9qB8Zs8eLMtTBp+w2zVS9MUe62gQQQHjYdAc5Zljam3ZIokNb+vZLPRz9RCREp6EFRwyhOFwbt1fEriQ2Q==" + "version": "1.3.806", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.806.tgz", + "integrity": "sha512-AH/otJLAAecgyrYp0XK1DPiGVWcOgwPeJBOLeuFQ5l//vhQhwC9u6d+GijClqJAmsHG4XDue81ndSQPohUu0xA==" }, "elf-cam": { "version": "0.1.1", @@ -27812,9 +27172,9 @@ } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -27830,15 +27190,6 @@ "esprima": "^4.0.0" } }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -27872,9 +27223,9 @@ "requires": {} }, "eslint-import-resolver-node": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.5.tgz", - "integrity": "sha512-XMoPKjSpXbkeJ7ZZ9icLnJMTY5Mc1kZbCakHquaFsXPpyWOwK0TK6CODO+0ca54UoM9LKOxyUNnoVZRl8TeaAg==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { "debug": "^3.2.7", @@ -27998,43 +27349,6 @@ "resolve-from": "^5.0.0" }, "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "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" - } - }, - "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" - } - }, "pkg-dir": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", @@ -28335,6 +27649,12 @@ "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, @@ -28410,15 +27730,6 @@ "requires": { "eslint-visitor-keys": "^2.0.0" } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, @@ -28582,13 +27893,6 @@ "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - } } }, "exit-on-epipe": { @@ -28939,6 +28243,15 @@ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "dev": true }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, "got": { "version": "10.7.0", "resolved": "https://registry.npmjs.org/got/-/got-10.7.0.tgz", @@ -29060,6 +28373,15 @@ "lowercase-keys": "^2.0.0" } }, + "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" + } + }, "to-readable-stream": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", @@ -29123,12 +28445,38 @@ } }, "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "requires": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" + }, + "dependencies": { + "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==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "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==", + "requires": { + "p-limit": "^3.0.2" + } + } } }, "find-versions": { @@ -29376,32 +28724,6 @@ "semver": "^7.3.4", "tar-fs": "^2.1.1", "tmp-promise": "^3.0.2" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "move-file": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.1.0.tgz", - "integrity": "sha512-i9qLW6gqboJ5Ht8bauZi7KlTnQ3QFpBCvMvFfEcHADKgHGeJ9BZMO7SFCTwHPV9Qa0du9DYY1Yx3oqlGt30nXA==", - "dev": true, - "requires": { - "path-exists": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "get-package-type": { @@ -29548,12 +28870,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, "get-value": { "version": "2.0.6", @@ -29608,6 +28927,14 @@ "requires": { "meow": "^8.0.0", "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "git-up": { @@ -30026,43 +29353,6 @@ "which-pm-runs": "^1.0.0" }, "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "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" - } - }, - "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" - } - }, "pkg-dir": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", @@ -30207,17 +29497,6 @@ "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "inquirer": { @@ -30448,26 +29727,26 @@ "dev": true }, "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" }, "dependencies": { "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "requires": { - "ini": "1.3.7" + "ini": "2.0.0" } }, "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" } } }, @@ -30495,9 +29774,9 @@ "dev": true }, "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==" }, "is-number": { "version": "7.0.0", @@ -30682,6 +29961,14 @@ "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.0.0", "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "istanbul-lib-processinfo": { @@ -30725,6 +30012,17 @@ "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": { @@ -30784,6 +30082,16 @@ "@types/node": "*", "merge-stream": "^2.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==", + "requires": { + "has-flag": "^4.0.0" + } + } } }, "js-string-escape": { @@ -31182,15 +30490,6 @@ "minizlib": "^2.0.0", "npm-package-arg": "^8.0.0" } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, @@ -31427,11 +30726,6 @@ "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-1.6.3.tgz", "integrity": "sha512-4WKW0AL5+WEqO0zWavAfYGY1qwLsBgE//DN4TTcVEN2UlINgkv9b3vm2iHicoenWKSX9mKWmGOsU/iI5IST7pQ==" }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, "jest-get-type": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", @@ -31476,6 +30770,11 @@ "color-name": "1.1.3" } }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -31534,6 +30833,14 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -31588,6 +30895,13 @@ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "requires": { "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "make-fetch-happen": { @@ -31981,53 +31295,11 @@ } }, "move-file": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/move-file/-/move-file-1.2.0.tgz", - "integrity": "sha512-USHrRmxzGowUWAGBbJPdFjHzEqtxDU03pLHY0Rfqgtnq+q8FOIs8wvkkf+Udmg77SJKs47y9sI0jJvQeYsmiCA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.1.0.tgz", + "integrity": "sha512-i9qLW6gqboJ5Ht8bauZi7KlTnQ3QFpBCvMvFfEcHADKgHGeJ9BZMO7SFCTwHPV9Qa0du9DYY1Yx3oqlGt30nXA==", "requires": { - "cp-file": "^6.1.0", - "make-dir": "^3.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "cp-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", - "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", - "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^2.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^4.0.1", - "safe-buffer": "^5.0.1" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - } - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } + "path-exists": "^4.0.0" } }, "ms": { @@ -32062,9 +31334,9 @@ "dev": true }, "nanoid": { - "version": "3.1.24", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.24.tgz", - "integrity": "sha512-WNhqqgD4qH7TQdU9ujXfFa/hQI5rOGGnZq+JRmz4JwMZFCgSZVquTq3ORUSv6IC+Y41ACBYV8a8J1kPkqGIiQg==" + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" }, "nanomatch": { "version": "1.2.13", @@ -32122,9 +31394,9 @@ } }, "netlify-headers-parser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/netlify-headers-parser/-/netlify-headers-parser-2.0.0.tgz", - "integrity": "sha512-Iam/dmx/R0pxRohIBLmNOz0chRm/7UzPmdrzE/zbK3WpycclkMMtDD8uRuo4IE+NDjXcjX/DfK7KtKZsAwjI4A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/netlify-headers-parser/-/netlify-headers-parser-3.0.1.tgz", + "integrity": "sha512-32oDkPa7+JdTFOp0M4H31AZDQ8YVJWgNlPkPuilb1C1dgvmAFXa8k4x+ADpgCbQfTMP3exO3vobvlfj8SUHxnA==", "requires": { "is-plain-obj": "^3.0.0", "map-obj": "^4.2.1", @@ -32140,14 +31412,21 @@ } }, "netlify-redirect-parser": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-9.1.0.tgz", - "integrity": "sha512-YORCj4Qeimv7VixnNHtTt3i0EfyWYG0rYb68EcQpwJ+nG1mRWmybW2WwYcKI5jRIaKTNZeDwsWS+yuGpRfcu0A==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-11.0.2.tgz", + "integrity": "sha512-ngGSxRUv8dsao586J0MsfQFpi66TnIlYND1KRl1vCgjuuMBzvO9WbV8maqJA9d0G6f9NVKb+LqufmOQj4AkkFw==", "requires": { "filter-obj": "^2.0.2", - "is-plain-obj": "^2.1.0", + "is-plain-obj": "^3.0.0", "path-exists": "^4.0.0", "toml": "^3.0.0" + }, + "dependencies": { + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + } } }, "nice-try": { @@ -32415,13 +31694,13 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "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": { - "lru-cache": "^6.0.0" + "has-flag": "^4.0.0" } } } @@ -32539,13 +31818,13 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "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": { - "lru-cache": "^6.0.0" + "has-flag": "^4.0.0" } } } @@ -32571,15 +31850,6 @@ "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, @@ -32609,17 +31879,6 @@ "dev": true, "requires": { "semver": "^7.1.1" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "npm-lifecycle": { @@ -32669,17 +31928,6 @@ "hosted-git-info": "^4.0.1", "semver": "^7.3.4", "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "npm-packlist": { @@ -32704,17 +31952,6 @@ "npm-normalize-package-bin": "^1.0.1", "npm-package-arg": "^8.1.2", "semver": "^7.3.4" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "npm-registry-fetch": { @@ -33026,6 +32263,16 @@ "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" + } + }, "p-map": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", @@ -33398,6 +32645,11 @@ } } }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -33455,13 +32707,6 @@ "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "requires": { "p-finally": "^1.0.0" - }, - "dependencies": { - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - } } }, "p-try": { @@ -33507,6 +32752,13 @@ "registry-auth-token": "^4.0.0", "registry-url": "^5.0.0", "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "pacote": { @@ -33811,8 +33063,21 @@ "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" + }, + "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" + } + } } }, "pkg-up": { @@ -34048,6 +33313,15 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "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" + } } } }, @@ -34098,9 +33372,9 @@ } }, "pretty-ms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-5.1.0.tgz", - "integrity": "sha512-4gaK1skD2gwscCfkswYQRmddUb2GJZtzDGRjHWadVHtK/DIKFufa12MvES6/xu1tVbUYeia5bmLcwJtZJQUqnw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", "requires": { "parse-ms": "^2.1.0" } @@ -34122,6 +33396,14 @@ "dev": true, "requires": { "ps-list": "^6.3.0" + }, + "dependencies": { + "ps-list": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz", + "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==", + "dev": true + } } }, "process-nextick-args": { @@ -34201,9 +33483,9 @@ "dev": true }, "ps-list": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz", - "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-7.2.0.tgz", + "integrity": "sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==" }, "psl": { "version": "1.8.0", @@ -34464,6 +33746,15 @@ "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==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -34921,9 +34212,12 @@ "dev": true }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } }, "semver-compare": { "version": "1.0.0", @@ -34937,6 +34231,13 @@ "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "requires": { "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "semver-regex": { @@ -35070,6 +34371,17 @@ "diff": "^5.0.0", "nise": "^5.1.0", "supports-color": "^7.2.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" + } + } } }, "slash": { @@ -35726,9 +35038,9 @@ } }, "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==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "requires": { "has-flag": "^4.0.0" } @@ -35866,11 +35178,6 @@ } } }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" - }, "terser": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", @@ -36334,42 +35641,26 @@ "dev": true }, "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", + "boxen": "^5.0.0", + "chalk": "^4.1.0", "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", @@ -36629,11 +35920,6 @@ "path-key": "^2.0.0" } }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -36843,9 +36129,9 @@ "dev": true }, "yargs": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.0.tgz", - "integrity": "sha512-SQr7qqmQ2sNijjJGHL4u7t8vyDZdZ3Ahkmo4sc1w5xI9TBX0QDdG/g4SFnxtWOsGLjwHQue57eFALfwFCnixgg==", + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", "dev": true, "requires": { "cliui": "^7.0.2", diff --git a/package.json b/package.json index e4b874b1a4..81af0bbd95 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "devDependencies": { "@commitlint/cli": "^13.0.0", "@commitlint/config-conventional": "^13.0.0", - "@netlify/eslint-config-node": "^3.2.1", + "@netlify/eslint-config-node": "^3.2.2", "ava": "^3.15.0", "lerna": "^4.0.0", "nyc": "^15.0.0" diff --git a/packages/build/CHANGELOG.md b/packages/build/CHANGELOG.md index 26f318e9b2..6f307f6fe4 100644 --- a/packages/build/CHANGELOG.md +++ b/packages/build/CHANGELOG.md @@ -1,5 +1,46 @@ # Changelog +### [18.2.10](https://www.github.com/netlify/build/compare/build-v18.2.9...build-v18.2.10) (2021-08-16) + + +### Bug Fixes + +* **deps:** update dependency is-plain-obj to v3 ([#3489](https://www.github.com/netlify/build/issues/3489)) ([b353eec](https://www.github.com/netlify/build/commit/b353eece861296ef18de8e19855a6b2e30ac4fba)) +* **deps:** update dependency locate-path to v6 ([#3490](https://www.github.com/netlify/build/issues/3490)) ([523b049](https://www.github.com/netlify/build/commit/523b0496c90e4c80fcabd406022a2423b12d0a90)) +* **deps:** update dependency pkg-dir to v5 ([#3497](https://www.github.com/netlify/build/issues/3497)) ([7a0ec32](https://www.github.com/netlify/build/commit/7a0ec3273e486956fae3be63c8808062569cee50)) + +### [18.2.9](https://www.github.com/netlify/build/compare/build-v18.2.8...build-v18.2.9) (2021-08-16) + + +### Bug Fixes + +* **deps:** update dependency p-locate to v5 ([#3495](https://www.github.com/netlify/build/issues/3495)) ([ce07fbc](https://www.github.com/netlify/build/commit/ce07fbccc5e93224e7adab5dc039f9534a49f06b)) +* **deps:** update dependency pretty-ms to v7 ([#3498](https://www.github.com/netlify/build/issues/3498)) ([435629a](https://www.github.com/netlify/build/commit/435629a8f2368582cc1b01b12298911ccb548a70)) + +### [18.2.8](https://www.github.com/netlify/build/compare/build-v18.2.7...build-v18.2.8) (2021-08-13) + + +### Bug Fixes + +* **deps:** update dependency supports-color to v8 ([#3466](https://www.github.com/netlify/build/issues/3466)) ([2cdf370](https://www.github.com/netlify/build/commit/2cdf370a5347772ec6437b41679bec5eceb3311f)) +* **deps:** update dependency update-notifier to v5 ([#3467](https://www.github.com/netlify/build/issues/3467)) ([d34a0d7](https://www.github.com/netlify/build/commit/d34a0d76721d551d1a3bf6dc8a77ea123c92b3e5)) +* rely on `package.engines.node` for plugin version support instead of a hardcoded var ([#3474](https://www.github.com/netlify/build/issues/3474)) ([3c8c7b2](https://www.github.com/netlify/build/commit/3c8c7b2714f65755ec14ca2d19396a7f6836ca66)) +* **utils:** remove condition around `require.resolve` invocation ([#3480](https://www.github.com/netlify/build/issues/3480)) ([f29d7c1](https://www.github.com/netlify/build/commit/f29d7c1badd2467fef8d13920d1199e7988abde2)) + +### [18.2.7](https://www.github.com/netlify/build/compare/build-v18.2.6...build-v18.2.7) (2021-08-13) + + +### Bug Fixes + +* **deps:** update dependency ps-list to v7 ([#3465](https://www.github.com/netlify/build/issues/3465)) ([05398cc](https://www.github.com/netlify/build/commit/05398ccb97c986e4c7ec88df4ac108c8ec17142c)) + +### [18.2.6](https://www.github.com/netlify/build/compare/build-v18.2.5...build-v18.2.6) (2021-08-13) + + +### Bug Fixes + +* **deps:** remove cp-file usage ([#3470](https://www.github.com/netlify/build/issues/3470)) ([5b98fb4](https://www.github.com/netlify/build/commit/5b98fb494478cc0e7676856ce38f980b406306b9)) + ### [18.2.5](https://www.github.com/netlify/build/compare/build-v18.2.4...build-v18.2.5) (2021-08-13) diff --git a/packages/build/package.json b/packages/build/package.json index 4be3fbd4eb..071d7e5ffb 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -1,6 +1,6 @@ { "name": "@netlify/build", - "version": "18.2.5", + "version": "18.2.10", "description": "Netlify build module", "main": "src/core/main.js", "bin": { @@ -71,10 +71,10 @@ "filter-obj": "^2.0.1", "got": "^9.6.0", "indent-string": "^4.0.0", - "is-plain-obj": "^2.1.0", + "is-plain-obj": "^3.0.0", "js-yaml": "^4.0.0", "keep-func-props": "^3.0.0", - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "log-process-errors": "^5.1.2", "make-dir": "^3.0.2", "map-obj": "^4.0.0", @@ -83,13 +83,13 @@ "p-event": "^4.1.0", "p-every": "^2.0.0", "p-filter": "^2.1.0", - "p-locate": "^4.1.0", + "p-locate": "^5.0.0", "p-reduce": "^2.1.0", "path-exists": "^4.0.0", "path-type": "^4.0.0", - "pkg-dir": "^4.2.0", - "pretty-ms": "^5.1.0", - "ps-list": "^6.3.0", + "pkg-dir": "^5.0.0", + "pretty-ms": "^7.0.0", + "ps-list": "^7.0.0", "read-pkg-up": "^7.0.1", "readdirp": "^3.4.0", "resolve": "^2.0.0-next.1", @@ -99,9 +99,9 @@ "statsd-client": "0.4.7", "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "supports-color": "^7.1.0", + "supports-color": "^8.0.0", "tmp-promise": "^3.0.2", - "update-notifier": "^4.1.0", + "update-notifier": "^5.0.0", "uuid": "^8.0.0", "yargs": "^15.3.1" }, @@ -109,7 +109,6 @@ "@netlify/nock-udp": "^1.0.0", "atob": "^2.1.2", "ava": "^3.15.0", - "cp-file": "^9.1.0", "cpy": "^8.1.0", "del": "^6.0.0", "get-bin-path": "^5.1.0", diff --git a/packages/build/src/plugins/node_version.js b/packages/build/src/plugins/node_version.js index 9d58bf90cc..0ec8af2d6c 100644 --- a/packages/build/src/plugins/node_version.js +++ b/packages/build/src/plugins/node_version.js @@ -4,11 +4,11 @@ const { version: currentVersion, execPath } = require('process') const { satisfies, clean: cleanVersion } = require('semver') +const { + engines: { node: nodeVersionSupportedRange }, +} = require('../../package.json') const { addErrorInfo } = require('../error/info') -// TODO rely on package.json.engines entry once the rollout is complete -const MINIMUM_NODE_VERSION_SUPPORTED = '10.18.0' - // Local plugins and `package.json`-installed plugins use user's preferred Node.js version if higher than our minimum // supported version (Node v10). Else default to the system Node version. // Local builds use user's preferred Node.js version. @@ -39,7 +39,8 @@ const addPluginNodeVersion = function ({ } const nonUIPluginNodeVersion = function ({ pluginOptions, currentNodeVersion, userNodeVersion, nodePath }) { - if (satisfies(userNodeVersion, `<${MINIMUM_NODE_VERSION_SUPPORTED}`)) { + // If the user Node version does not satisfy our supported engine range use our own system Node version + if (!satisfies(userNodeVersion, nodeVersionSupportedRange)) { return { ...pluginOptions, nodePath: execPath, nodeVersion: currentNodeVersion } } return { ...pluginOptions, nodePath, nodeVersion: userNodeVersion } diff --git a/packages/build/src/plugins_core/functions/index.js b/packages/build/src/plugins_core/functions/index.js index d6bd22c381..8772ec49f4 100644 --- a/packages/build/src/plugins_core/functions/index.js +++ b/packages/build/src/plugins_core/functions/index.js @@ -2,6 +2,8 @@ const { join, resolve } = require('path') +// We can't use destructuring for zisi as we rely on spies for the `zipFunctions` method within our tests +const zipItAndShipIt = require('@netlify/zip-it-and-ship-it') const mapObject = require('map-obj') const pathExists = require('path-exists') @@ -75,13 +77,8 @@ const zipFunctionsAndLogResults = async ({ // Printing an empty line before bundling output. log(logs, '') - // This package currently supports Node 8 but not zip-it-and-ship-it - // @todo put the `require()` to the top-level scope again once Node 8 support - // is removed - // eslint-disable-next-line node/global-require - const { zipFunctions } = require('@netlify/zip-it-and-ship-it') const sourceDirectories = [internalFunctionsSrc, functionsSrc].filter(Boolean) - const results = await zipFunctions(sourceDirectories, functionsDist, zisiParameters) + const results = await zipItAndShipIt.zipFunctions(sourceDirectories, functionsDist, zisiParameters) logBundleResults({ logs, results }) diff --git a/packages/build/src/plugins_core/functions/utils.js b/packages/build/src/plugins_core/functions/utils.js index 8ab9b02b3a..95e7a6c77c 100644 --- a/packages/build/src/plugins_core/functions/utils.js +++ b/packages/build/src/plugins_core/functions/utils.js @@ -4,6 +4,8 @@ const { stat } = require('fs') const { relative } = require('path') const { promisify } = require('util') +const { listFunctions } = require('@netlify/zip-it-and-ship-it') + const pStat = promisify(stat) const { addErrorInfo } = require('../../error/info') @@ -13,11 +15,6 @@ const getFunctionPaths = async function (functionsSrc) { return [] } - // This package currently supports Node 8 but not zip-it-and-ship-it - // @todo put the `require()` to the top-level scope again once Node 8 support - // is removed - // eslint-disable-next-line node/global-require - const { listFunctions } = require('@netlify/zip-it-and-ship-it') const functions = await listFunctions(functionsSrc) return functions.map(({ mainFile }) => relative(functionsSrc, mainFile)) } diff --git a/packages/build/src/utils/resolve.js b/packages/build/src/utils/resolve.js index eff47920c1..bcf38df670 100644 --- a/packages/build/src/utils/resolve.js +++ b/packages/build/src/utils/resolve.js @@ -1,9 +1,6 @@ 'use strict' -const { version: nodeVersion } = require('process') - const resolveLib = require('resolve') -const { gte: gteVersion } = require('semver') // Like `resolvePath()` but does not throw const tryResolvePath = async function (path, basedir) { @@ -23,17 +20,10 @@ const resolvePath = async function (path, basedir) { // `resolve` sometimes gives unhelpful error messages. // https://github.com/browserify/resolve/issues/223 } catch (error) { - if (gteVersion(nodeVersion, REQUEST_RESOLVE_MIN_VERSION)) { - return require.resolve(path, { paths: [basedir] }) - } - - throw error + return require.resolve(path, { paths: [basedir] }) } } -// `require.resolve()` option `paths` was introduced in Node 8.9.0 -const REQUEST_RESOLVE_MIN_VERSION = '8.9.0' - // Like `require.resolve()` but as an external library. // We need to use `new Promise()` due to a bug with `utils.promisify()` on // `resolve`: diff --git a/packages/build/tests/error/snapshots/tests.js.md b/packages/build/tests/error/snapshots/tests.js.md index 9bba2b322d..3d0d0f6cf1 100644 --- a/packages/build/tests/error/snapshots/tests.js.md +++ b/packages/build/tests/error/snapshots/tests.js.md @@ -2,9 +2,9 @@ The actual snapshot is saved in `tests.js.snap`. -Generated by [AVA](https://ava.li). +Generated by [AVA](https://avajs.dev). -## Do not log secret values on build errors +## build.failBuild() > Snapshot 1 @@ -18,71 +18,64 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/log_secret␊ + repositoryRoot: packages/build/tests/error/fixtures/fail_build␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/log_secret␊ + packages/build/tests/error/fixtures/fail_build␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/log_secret/netlify.toml␊ + packages/build/tests/error/fixtures/fail_build/netlify.toml␊ ␊ > Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - environment:␊ - - SECRET␊ - publish: packages/build/tests/error/fixtures/log_secret␊ + publish: packages/build/tests/error/fixtures/fail_build␊ publishOrigin: default␊ plugins:␊ - - inputs:␊ - notSecret: true␊ + - inputs: {}␊ origin: config␊ - package: ./plugin.js␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin.js@1.0.0 from netlify.toml␊ + - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. build.command from netlify.toml ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - "build.command" failed ␊ + Plugin "./plugin" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Command failed with exit code 9: node --invalid␊ + Error: test␊ + ␊ + Plugin details␊ + Package: ./plugin␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In build.command from netlify.toml:␊ - node --invalid␊ + In "onPreBuild" event in "./plugin" from netlify.toml␊ + STACK TRACE␊ ␊ Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - environment:␊ - - SECRET␊ - publish: packages/build/tests/error/fixtures/log_secret␊ + publish: packages/build/tests/error/fixtures/fail_build␊ publishOrigin: default␊ plugins:␊ - - inputs:␊ - notSecret: true␊ + - inputs: {}␊ origin: config␊ - package: ./plugin.js␊ - ␊ - node: bad option: --invalid` + package: ./plugin` -## Exits in plugins +## build.failBuild() error option > Snapshot 1 @@ -96,20 +89,20 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/plugin_exit␊ + repositoryRoot: packages/build/tests/error/fixtures/fail_build_error_option␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/plugin_exit␊ + packages/build/tests/error/fixtures/fail_build_error_option␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/plugin_exit/netlify.toml␊ + packages/build/tests/error/fixtures/fail_build_error_option/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_exit␊ + publish: packages/build/tests/error/fixtures/fail_build_error_option␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -128,16 +121,12 @@ Generated by [AVA](https://ava.li). ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" internal error ␊ + Plugin "./plugin" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Plugin exited with exit code 1 and signal null.␊ - The plugin might have exited due to a bug terminating the process, such as an infinite loop.␊ - The plugin might also have explicitly terminated the process, for example with process.exit().␊ - Plugin methods should instead:␊ - - on success: return␊ - - on failure: call utils.build.failPlugin() or utils.build.failBuild()␊ + Error: test␊ + innerTest␊ ␊ Plugin details␊ Package: ./plugin␊ @@ -147,17 +136,18 @@ Generated by [AVA](https://ava.li). ␊ Error location␊ In "onPreBuild" event in "./plugin" from netlify.toml␊ + STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_exit␊ + publish: packages/build/tests/error/fixtures/fail_build_error_option␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ package: ./plugin` -## No repository root +## build.failBuild() inside a callback > Snapshot 1 @@ -171,58 +161,64 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: /tmp-dir␊ + repositoryRoot: packages/build/tests/error/fixtures/fail_build_callback␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - /tmp-dir␊ + packages/build/tests/error/fixtures/fail_build_callback␊ ␊ > Config file␊ - /tmp-dir/netlify.toml␊ + packages/build/tests/error/fixtures/fail_build_callback/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: /tmp-dir␊ + publish: packages/build/tests/error/fixtures/fail_build_callback␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin.js␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin.js from netlify.toml␊ + - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin.js ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin.js" internal error ␊ + Plugin "./plugin" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ Error: test␊ + ␊ + Plugin details␊ + Package: ./plugin␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin.js" from netlify.toml␊ + In "onPreBuild" event in "./plugin" from netlify.toml␊ STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: /tmp-dir␊ + publish: packages/build/tests/error/fixtures/fail_build_callback␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin.js` + package: ./plugin` -## Node module all fields +## build.failBuild() is not available within post-deploy events > Snapshot 1 @@ -236,65 +232,73 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/full␊ + repositoryRoot: packages/build/tests/error/fixtures/fail_build_post_deploy␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/full␊ + packages/build/tests/error/fixtures/fail_build_post_deploy␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/full/netlify.toml␊ + packages/build/tests/error/fixtures/fail_build_post_deploy/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/full␊ + publish: packages/build/tests/error/fixtures/fail_build_post_deploy␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: netlify-plugin-test␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - netlify-plugin-test@1.0.0 from netlify.toml and package.json␊ + - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from netlify-plugin-test ␊ + 1. onEnd command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ + Plugin error: since "onEnd" happens after deploy, the build has already succeeded and cannot fail anymore. This plugin should either:␊ + - use utils.build.failPlugin() instead of utils.build.failBuild() to clarify that the plugin failed, but not the build.␊ + - use "onPostBuild" instead of "onEnd" if the plugin failure should make the build fail too. Please note that "onPostBuild" (unlike "onEnd") happens before deploy.␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "netlify-plugin-test" failed ␊ + Plugin "./plugin" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ Error: test␊ ␊ Plugin details␊ - Package: netlify-plugin-test␊ + Package: ./plugin␊ Version: 1.0.0␊ - Repository: git+https://github.com/test/test.git␊ - npm link: https://www.npmjs.com/package/netlify-plugin-test␊ - Report issues: https://test.com/test␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In "onPreBuild" event in "netlify-plugin-test" from netlify.toml and package.json␊ + In "onEnd" event in "./plugin" from netlify.toml␊ STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/full␊ + publish: packages/build/tests/error/fixtures/fail_build_post_deploy␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: netlify-plugin-test` + package: ./plugin␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + Netlify Build Complete ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + (Netlify Build completed in 1ms)` -## Node module partial fields +## build.failPlugin() > Snapshot 1 @@ -308,61 +312,93 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/partial␊ + repositoryRoot: packages/build/tests/error/fixtures/fail_plugin␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/partial␊ + packages/build/tests/error/fixtures/fail_plugin␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/partial/netlify.toml␊ + packages/build/tests/error/fixtures/fail_plugin/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/partial␊ + publish: packages/build/tests/error/fixtures/fail_plugin␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: netlify-plugin-test␊ + package: ./plugin_two␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - netlify-plugin-test from netlify.toml and package.json␊ + - ./plugin_two@1.0.0 from netlify.toml␊ + - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from netlify-plugin-test ␊ + 1. onPreBuild command from ./plugin_two ␊ ────────────────────────────────────────────────────────────────␊ ␊ + onPreBuild␊ + ␊ + (./plugin_two onPreBuild completed in 1ms)␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "netlify-plugin-test" failed ␊ + 2. onPreBuild command from ./plugin ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + Plugin "./plugin" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ Error: test␊ ␊ Plugin details␊ - Package: netlify-plugin-test␊ + Package: ./plugin␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In "onPreBuild" event in "netlify-plugin-test" from netlify.toml and package.json␊ + In "onPreBuild" event in "./plugin" from netlify.toml␊ STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/partial␊ + publish: packages/build/tests/error/fixtures/fail_plugin␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: netlify-plugin-test` + package: ./plugin_two␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + 3. onBuild command from ./plugin_two ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + onBuild␊ + ␊ + (./plugin_two onBuild completed in 1ms)␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + Netlify Build Complete ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + (Netlify Build completed in 1ms)` -## Plugin errors can have a toJSON() method +## build.failPlugin() inside a callback > Snapshot 1 @@ -376,20 +412,20 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/plugin_error_to_json␊ + repositoryRoot: packages/build/tests/error/fixtures/fail_plugin_callback␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/plugin_error_to_json␊ + packages/build/tests/error/fixtures/fail_plugin_callback␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/plugin_error_to_json/netlify.toml␊ + packages/build/tests/error/fixtures/fail_plugin_callback/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_error_to_json␊ + publish: packages/build/tests/error/fixtures/fail_plugin_callback␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -412,8 +448,7 @@ Generated by [AVA](https://ava.li). ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: message␊ - test␊ + Error: test␊ ␊ Plugin details␊ Package: ./plugin␊ @@ -427,14 +462,20 @@ Generated by [AVA](https://ava.li). ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_error_to_json␊ + publish: packages/build/tests/error/fixtures/fail_plugin_callback␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin` + package: ./plugin␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + Netlify Build Complete ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + (Netlify Build completed in 1ms)` -## Print stack trace of Build command UI settings +## build.failPlugin() error option > Snapshot 1 @@ -448,54 +489,94 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/none␊ + repositoryRoot: packages/build/tests/error/fixtures/fail_plugin_error_option␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/none␊ + packages/build/tests/error/fixtures/fail_plugin_error_option␊ ␊ > Config file␊ - No config file was defined: using default values.␊ + packages/build/tests/error/fixtures/fail_plugin_error_option/netlify.toml␊ ␊ > Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: ui␊ - publish: packages/build/tests/error/fixtures/none␊ + publish: packages/build/tests/error/fixtures/fail_plugin_error_option␊ publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin_two␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ + > Loading plugins␊ + - ./plugin_two@1.0.0 from netlify.toml␊ + - ./plugin@1.0.0 from netlify.toml␊ + ␊ ────────────────────────────────────────────────────────────────␊ - 1. Build command from Netlify app ␊ + 1. onPreBuild command from ./plugin_two ␊ ────────────────────────────────────────────────────────────────␊ ␊ - $ node --invalid␊ + onPreBuild␊ + ␊ + (./plugin_two onPreBuild completed in 1ms)␊ ␊ ────────────────────────────────────────────────────────────────␊ - "build.command" failed ␊ + 2. onPreBuild command from ./plugin ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + Plugin "./plugin" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Command failed with exit code 9: node --invalid␊ + Error: test␊ + innerTest␊ + ␊ + Plugin details␊ + Package: ./plugin␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In Build command from Netlify app:␊ - node --invalid␊ + In "onPreBuild" event in "./plugin" from netlify.toml␊ + STACK TRACE␊ ␊ Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: ui␊ - publish: packages/build/tests/error/fixtures/none␊ + publish: packages/build/tests/error/fixtures/fail_plugin_error_option␊ publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin_two␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin␊ ␊ - node: bad option: --invalid` + ────────────────────────────────────────────────────────────────␊ + 3. onBuild command from ./plugin_two ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + onBuild␊ + ␊ + (./plugin_two onBuild completed in 1ms)␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + Netlify Build Complete ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + (Netlify Build completed in 1ms)` -## Print stack trace of build.command errors +## build.cancelBuild() > Snapshot 1 @@ -509,54 +590,45 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/command_stack␊ + repositoryRoot: packages/build/tests/error/fixtures/cancel␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/command_stack␊ + packages/build/tests/error/fixtures/cancel␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/command_stack/netlify.toml␊ + packages/build/tests/error/fixtures/cancel/netlify.toml␊ ␊ > Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command_stack␊ + publish: packages/build/tests/error/fixtures/cancel␊ publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ + > Loading plugins␊ + - ./plugin@1.0.0 from netlify.toml␊ + ␊ ────────────────────────────────────────────────────────────────␊ - 1. build.command from netlify.toml ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - "build.command" failed ␊ + Build canceled by ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - Error message␊ - Command failed with exit code 9: node --invalid␊ - ␊ - Error location␊ - In build.command from netlify.toml:␊ - node --invalid␊ - ␊ - Resolved config␊ - build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command_stack␊ - publishOrigin: default␊ - ␊ - node: bad option: --invalid` + test␊ + ` -## Print stack trace of build.command errors with stack traces +## build.cancelBuild() inside a callback > Snapshot 1 @@ -570,54 +642,45 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/command_full_stack␊ + repositoryRoot: packages/build/tests/error/fixtures/cancel_callback␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/command_full_stack␊ + packages/build/tests/error/fixtures/cancel_callback␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/command_full_stack/netlify.toml␊ + packages/build/tests/error/fixtures/cancel_callback/netlify.toml␊ ␊ > Resolved config␊ build:␊ - command: node command.js␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command_full_stack␊ + publish: packages/build/tests/error/fixtures/cancel_callback␊ publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ + > Loading plugins␊ + - ./plugin@1.0.0 from netlify.toml␊ + ␊ ────────────────────────────────────────────────────────────────␊ - 1. build.command from netlify.toml ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - $ node command.js␊ - Error: test␊ - STACK TRACE␊ ␊ ────────────────────────────────────────────────────────────────␊ - "build.command" failed ␊ + Build canceled by ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - Error message␊ - Command failed with exit code 2: node command.js␊ - ␊ - Error location␊ - In build.command from netlify.toml:␊ - node command.js␊ - ␊ - Resolved config␊ - build:␊ - command: node command.js␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command_full_stack␊ - publishOrigin: default` + test␊ + ` -## Print stack trace of plugin errors +## build.cancelBuild() error option > Snapshot 1 @@ -631,20 +694,20 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/plugin_stack␊ + repositoryRoot: packages/build/tests/error/fixtures/cancel_error_option␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/plugin_stack␊ + packages/build/tests/error/fixtures/cancel_error_option␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/plugin_stack/netlify.toml␊ + packages/build/tests/error/fixtures/cancel_error_option/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_stack␊ + publish: packages/build/tests/error/fixtures/cancel_error_option␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -663,32 +726,14 @@ Generated by [AVA](https://ava.li). ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" internal error ␊ + Build canceled by ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - Error message␊ - Error: test␊ - ␊ - Plugin details␊ - Package: ./plugin␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ - ␊ - Error location␊ - In "onPreBuild" event in "./plugin" from netlify.toml␊ - STACK TRACE␊ - ␊ - Resolved config␊ - build:␊ - publish: packages/build/tests/error/fixtures/plugin_stack␊ - publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin` + test␊ + innerTest␊ + ` -## Print stack trace of plugin errors during load +## build.cancelBuild() API call > Snapshot 1 @@ -702,20 +747,23 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/plugin_load␊ + deployId: test␊ + repositoryRoot: packages/build/tests/error/fixtures/cancel␊ testOpts:␊ + host: /test/socket␊ pluginsListUrl: test␊ + scheme: http␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/plugin_load␊ + packages/build/tests/error/fixtures/cancel␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/plugin_load/netlify.toml␊ + packages/build/tests/error/fixtures/cancel/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_load␊ + publish: packages/build/tests/error/fixtures/cancel␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -729,61 +777,29 @@ Generated by [AVA](https://ava.li). - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" internal error ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - Error message␊ - Error: Could not import plugin:␊ - test␊ - ␊ - Plugin details␊ - Package: ./plugin␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ - ␊ - Error location␊ - While loading "./plugin" from netlify.toml␊ - STACK TRACE␊ - ␊ - Resolved config␊ - build:␊ - publish: packages/build/tests/error/fixtures/plugin_load␊ - publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin` - -## Print stack trace of validation errors - -> Snapshot 1 - - `␊ - ────────────────────────────────────────────────────────────────␊ - Netlify Build ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - > Version␊ - @netlify/build 1.0.0␊ - ␊ - > Flags␊ - config: /external/path␊ - debug: true␊ - testOpts:␊ - pluginsListUrl: test␊ - silentLingeringProcesses: true␊ ␊ ────────────────────────────────────────────────────────────────␊ - Configuration error ␊ + Build canceled by ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - Error message␊ - When resolving config file /external/path␊ - Configuration file does not exist␊ + test␊ ` -## Process warnings +> Snapshot 2 + + [ + { + body: '', + headers: 'accept accept-encoding authorization connection content-length host user-agent', + method: 'POST', + url: '/api/v1/deploys/test/cancel', + }, + ] + +## build.cancelBuild() API call no DEPLOY_ID > Snapshot 1 @@ -797,20 +813,22 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/warning␊ + repositoryRoot: packages/build/tests/error/fixtures/cancel␊ testOpts:␊ + host: /test/socket␊ pluginsListUrl: test␊ + scheme: http␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/warning␊ + packages/build/tests/error/fixtures/cancel␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/warning/netlify.toml␊ + packages/build/tests/error/fixtures/cancel/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/warning␊ + publish: packages/build/tests/error/fixtures/cancel␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -827,21 +845,15 @@ Generated by [AVA](https://ava.li). 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - onPreBuild␊ - ␊ - (./plugin onPreBuild completed in 1ms)␊ ␊ ────────────────────────────────────────────────────────────────␊ - Netlify Build Complete ␊ + Build canceled by ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - (Netlify Build completed in 1ms)␊ - ␊ - ‼ warning (Warning) test␊ - STACK TRACE␊ - STACK TRACE` + test␊ + ` -## Redact API token on errors +## build.cancelBuild() API call no token > Snapshot 1 @@ -856,95 +868,47 @@ Generated by [AVA](https://ava.li). > Flags␊ debug: true␊ deployId: test␊ - mode: buildbot␊ - repositoryRoot: packages/build/tests/error/fixtures/api_token_redact␊ + repositoryRoot: packages/build/tests/error/fixtures/cancel␊ testOpts:␊ - host: ...␊ + host: /test/socket␊ pluginsListUrl: test␊ + scheme: http␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/api_token_redact␊ + packages/build/tests/error/fixtures/cancel␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/api_token_redact/netlify.toml␊ + packages/build/tests/error/fixtures/cancel/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/api_token_redact␊ + publish: packages/build/tests/error/fixtures/cancel␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin.js␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin.js@1.0.0 from netlify.toml␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin.js ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - ␊ - (./plugin.js onPreBuild completed in 1ms)␊ + - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - API error on "createPluginRun" ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - Error message␊ - request to https://.../api/v1.0.0/deploys/test/plugin_runs failed, reason: getaddrinfo ENOTFOUND ...␊ - ␊ - Error location␊ - While calling the Netlify API endpoint 'createPluginRun' with:␊ - {␊ - "deploy_id": "test",␊ - "body": {␊ - "package": "./plugin.js",␊ - "version": "1.0.0",␊ - "state": "success",␊ - "reporting_event": "onPreBuild"␊ - }␊ - }␊ - ␊ - Error properties␊ - {␊ - type: 'system',␊ - errno: 'ENOTFOUND',␊ - code: 'ENOTFOUND',␊ - name: 'FetchError',␊ - url: 'https://.../api/v1.0.0/deploys/test/plugin_runs',␊ - data: {␊ - method: 'POST',␊ - headers: {␊ - 'Content-Type': 'application/json',␊ - 'User-agent': 'netlify/js-client',␊ - accept: 'application/json',␊ - Authorization: 'Bearer HEX'␊ - },␊ - body: '{"package":"./plugin.js","version":"1.0.0","state":"success","reporting_event":"onPreBuild"}'␊ - }␊ - }␊ - ␊ - Resolved config␊ - build:␊ - publish: packages/build/tests/error/fixtures/api_token_redact␊ - publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin.js␊ ␊ ────────────────────────────────────────────────────────────────␊ - Netlify Build Complete ␊ + Build canceled by ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - (Netlify Build completed in 1ms)` + test␊ + ` -## Report API error +## build.cancelBuild() API call failure > Snapshot 1 @@ -959,36 +923,36 @@ Generated by [AVA](https://ava.li). > Flags␊ debug: true␊ deployId: test␊ - repositoryRoot: packages/build/tests/error/fixtures/cancel_build␊ + repositoryRoot: packages/build/tests/error/fixtures/cancel␊ testOpts:␊ env: false␊ - errorMonitor: true␊ + host: ...␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/cancel_build␊ + packages/build/tests/error/fixtures/cancel␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/cancel_build/netlify.toml␊ + packages/build/tests/error/fixtures/cancel/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel_build␊ + publish: packages/build/tests/error/fixtures/cancel␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin.js␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin.js@1.0.0 from netlify.toml␊ + - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin.js ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ ␊ @@ -997,7 +961,7 @@ Generated by [AVA](https://ava.li). ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Unauthorized␊ + request to https://.../api/v1.0.0/deploys/test/cancel failed, reason: getaddrinfo ENOTFOUND ...␊ ␊ Error location␊ While calling the Netlify API endpoint 'cancelSiteDeploy' with:␊ @@ -1006,38 +970,32 @@ Generated by [AVA](https://ava.li). }␊ ␊ Error properties␊ - { name: 'TextHTTPError', status: 401, data: '' }␊ + {␊ + type: 'system',␊ + errno: 'ENOTFOUND',␊ + code: 'ENOTFOUND',␊ + name: 'FetchError',␊ + url: 'https://.../api/v1.0.0/deploys/test/cancel',␊ + data: {␊ + method: 'POST',␊ + headers: {␊ + 'User-agent': 'netlify/js-client',␊ + accept: 'application/json',␊ + Authorization: 'Bearer test'␊ + }␊ + }␊ + }␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel_build␊ + publish: packages/build/tests/error/fixtures/cancel␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin.js␊ - ␊ - Error monitoring payload:␊ - {␊ - "errorClass": "api",␊ - "errorMessage": "Unauthorized",␊ - "context": "API error on /"cancelSiteDeploy/"",␊ - "groupingHash": "API error on /"cancelSiteDeploy/"/external/path",␊ - "severity": "error",␊ - "unhandled": true,␊ - "location": {␊ - "endpoint": "cancelSiteDeploy",␊ - "parameters": {␊ - "deploy_id": "test"␊ - }␊ - },␊ - "pluginPackageJson": false,␊ - "other": {␊ - "groupingHash": "API error on /"cancelSiteDeploy/"/external/path"␊ - }␊ - }` + package: ./plugin` -## Report BUILD_ID +## build.cancelBuild() is not available within post-deploy events > Snapshot 1 @@ -1051,75 +1009,73 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/command␊ + repositoryRoot: packages/build/tests/error/fixtures/cancel_post_deploy␊ testOpts:␊ - errorMonitor: 'true'␊ pluginsListUrl: test␊ - silentLingeringProcesses: 'true'␊ + silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/command␊ + packages/build/tests/error/fixtures/cancel_post_deploy␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/command/netlify.toml␊ + packages/build/tests/error/fixtures/cancel_post_deploy/netlify.toml␊ ␊ > Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command␊ + publish: packages/build/tests/error/fixtures/cancel_post_deploy␊ publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ + > Loading plugins␊ + - ./plugin@1.0.0 from netlify.toml␊ + ␊ ────────────────────────────────────────────────────────────────␊ - 1. build.command from netlify.toml ␊ + 1. onEnd command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - $ node --invalid␊ + Plugin error: since "onEnd" happens after deploy, the build has already succeeded and cannot fail anymore. This plugin should either:␊ + - use utils.build.failPlugin() instead of utils.build.cancelBuild() to clarify that the plugin failed, but not the build.␊ + - use "onPostBuild" instead of "onEnd" if the plugin failure should make the build fail too. Please note that "onPostBuild" (unlike "onEnd") happens before deploy.␊ ␊ ────────────────────────────────────────────────────────────────␊ - "build.command" failed ␊ + Plugin "./plugin" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Command failed with exit code 9: node --invalid␊ + Error: test␊ + ␊ + Plugin details␊ + Package: ./plugin␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In build.command from netlify.toml:␊ - node --invalid␊ + In "onEnd" event in "./plugin" from netlify.toml␊ + STACK TRACE␊ ␊ Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command␊ + publish: packages/build/tests/error/fixtures/cancel_post_deploy␊ publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin␊ ␊ - Error monitoring payload:␊ - {␊ - "errorClass": "buildCommand",␊ - "errorMessage": "Command failed with exit code 9: node --invalid",␊ - "context": "node --invalid",␊ - "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid",␊ - "severity": "info",␊ - "unhandled": false,␊ - "location": {␊ - "buildCommand": "node --invalid",␊ - "buildCommandOrigin": "config",␊ - "configPath": "packages/build/tests/error/fixtures/command/netlify.toml"␊ - },␊ - "pluginPackageJson": false,␊ - "BUILD_ID": "test",␊ - "other": {␊ - "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid"␊ - }␊ - }␊ + ────────────────────────────────────────────────────────────────␊ + Netlify Build Complete ␊ + ────────────────────────────────────────────────────────────────␊ ␊ - node: bad option: --invalid` + (Netlify Build completed in 1ms)` -## Report CLI mode as releaseStage +## exception > Snapshot 1 @@ -1133,75 +1089,64 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - mode: cli␊ - repositoryRoot: packages/build/tests/error/fixtures/command␊ + repositoryRoot: packages/build/tests/error/fixtures/exception␊ testOpts:␊ - errorMonitor: 'true'␊ pluginsListUrl: test␊ - silentLingeringProcesses: 'true'␊ + silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/command␊ + packages/build/tests/error/fixtures/exception␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/command/netlify.toml␊ + packages/build/tests/error/fixtures/exception/netlify.toml␊ ␊ > Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command␊ + publish: packages/build/tests/error/fixtures/exception␊ publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ + > Loading plugins␊ + - ./plugin@1.0.0 from netlify.toml␊ + ␊ ────────────────────────────────────────────────────────────────␊ - 1. build.command from netlify.toml ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - "build.command" failed ␊ + Plugin "./plugin" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Command failed with exit code 9: node --invalid␊ + Error: test␊ + ␊ + Plugin details␊ + Package: ./plugin␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In build.command from netlify.toml:␊ - node --invalid␊ + In "onPreBuild" event in "./plugin" from netlify.toml␊ + STACK TRACE␊ ␊ Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command␊ + publish: packages/build/tests/error/fixtures/exception␊ publishOrigin: default␊ - ␊ - Error monitoring payload:␊ - {␊ - "errorClass": "buildCommand",␊ - "errorMessage": "Command failed with exit code 9: node --invalid",␊ - "context": "node --invalid",␊ - "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid",␊ - "severity": "info",␊ - "unhandled": false,␊ - "location": {␊ - "buildCommand": "node --invalid",␊ - "buildCommandOrigin": "config",␊ - "configPath": "packages/build/tests/error/fixtures/command/netlify.toml"␊ - },␊ - "pluginPackageJson": false,␊ - "other": {␊ - "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid"␊ - }␊ - }␊ - ␊ - node: bad option: --invalid` + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin` -## Report IPC error +## exception with static properties > Snapshot 1 @@ -1215,91 +1160,67 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/ipc␊ + repositoryRoot: packages/build/tests/error/fixtures/exception_props␊ testOpts:␊ - errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/ipc␊ + packages/build/tests/error/fixtures/exception_props␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/ipc/netlify.toml␊ + packages/build/tests/error/fixtures/exception_props/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/ipc␊ + publish: packages/build/tests/error/fixtures/exception_props␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin.js␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin.js@1.0.0 from netlify.toml␊ + - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin.js ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin.js" internal error ␊ + Plugin "./plugin" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Plugin exited with exit code 0 and signal null.␊ - The plugin might have exited due to a bug terminating the process, such as an infinite loop.␊ - The plugin might also have explicitly terminated the process, for example with process.exit().␊ - Plugin methods should instead:␊ - - on success: return␊ - - on failure: call utils.build.failPlugin() or utils.build.failBuild()␊ + Error: test␊ ␊ Plugin details␊ - Package: ./plugin.js␊ + Package: ./plugin␊ Version: 1.0.0␊ Repository: git+https://github.com/netlify/build.git␊ Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin.js" from netlify.toml␊ + In "onPreBuild" event in "./plugin" from netlify.toml␊ + STACK TRACE␊ + ␊ + Error properties␊ + { test: true, type: 'test' }␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/ipc␊ + publish: packages/build/tests/error/fixtures/exception_props␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin.js␊ - ␊ - Error monitoring payload:␊ - {␊ - "errorClass": "ipc",␊ - "errorMessage": "Plugin exited with exit code 0 and signal null./nThe plugin might have exited due to a bug terminating the process, such as an infinite loop./nThe plugin might also have explicitly terminated the process, for example with process.exit()./nPlugin methods should instead:/n - on success: return/n - on failure: call utils.build.failPlugin() or utils.build.failBuild()",␊ - "context": "Plugin /"./plugin.js/" internal error",␊ - "groupingHash": "Plugin /"./plugin.js/" internal error/nPlugin exited with exit code 0 and signal null./nThe plugin might have exited due to a bug terminating the process, such as an infinite loop./nThe plugin might also have explicitly terminated the process, for example with process.exit()./nPlugin methods should instead:/n - on success: return/n - on failure: call utils.build.failPlugin() or utils.build.failBuild()",␊ - "severity": "info",␊ - "unhandled": false,␊ - "location": {␊ - "event": "onPreBuild",␊ - "packageName": "./plugin.js",␊ - "loadedFrom": "local",␊ - "origin": "config"␊ - },␊ - "packageName": "./plugin.js",␊ - "pluginPackageJson": true,␊ - "homepage": "git+https://github.com/netlify/build.git",␊ - "other": {␊ - "groupingHash": "Plugin /"./plugin.js/" internal error/nPlugin exited with exit code 0 and signal null./nThe plugin might have exited due to a bug terminating the process, such as an infinite loop./nThe plugin might also have explicitly terminated the process, for example with process.exit()./nPlugin methods should instead:/n - on success: return/n - on failure: call utils.build.failPlugin() or utils.build.failBuild()"␊ - }␊ - }` + package: ./plugin` -## Report build logs URLs +## exception with circular references > Snapshot 1 @@ -1313,75 +1234,67 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/command␊ + repositoryRoot: packages/build/tests/error/fixtures/exception_circular␊ testOpts:␊ - errorMonitor: 'true'␊ pluginsListUrl: test␊ - silentLingeringProcesses: 'true'␊ + silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/command␊ + packages/build/tests/error/fixtures/exception_circular␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/command/netlify.toml␊ + packages/build/tests/error/fixtures/exception_circular/netlify.toml␊ ␊ > Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command␊ + publish: packages/build/tests/error/fixtures/exception_circular␊ publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ + > Loading plugins␊ + - ./plugin@1.0.0 from netlify.toml␊ + ␊ ────────────────────────────────────────────────────────────────␊ - 1. build.command from netlify.toml ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - "build.command" failed ␊ + Plugin "./plugin" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Command failed with exit code 9: node --invalid␊ + Error: test␊ + ␊ + Plugin details␊ + Package: ./plugin␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In build.command from netlify.toml:␊ - node --invalid␊ + In "onPreBuild" event in "./plugin" from netlify.toml␊ + STACK TRACE␊ + ␊ + Error properties␊ + { test: true, prop: null, objectProp: { self: '[Circular]' } }␊ ␊ Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command␊ + publish: packages/build/tests/error/fixtures/exception_circular␊ publishOrigin: default␊ - ␊ - Error monitoring payload:␊ - {␊ - "errorClass": "buildCommand",␊ - "errorMessage": "Command failed with exit code 9: node --invalid",␊ - "context": "node --invalid",␊ - "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid",␊ - "severity": "info",␊ - "unhandled": false,␊ - "location": {␊ - "buildLogs": "https://app.netlify.com/sites/testSiteName/deploys/testDeployId",␊ - "buildCommand": "node --invalid",␊ - "buildCommandOrigin": "config",␊ - "configPath": "packages/build/tests/error/fixtures/command/netlify.toml"␊ - },␊ - "pluginPackageJson": false,␊ - "other": {␊ - "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid"␊ - }␊ - }␊ - ␊ - node: bad option: --invalid` + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin` -## Report build.command failure +## exception that are strings > Snapshot 1 @@ -1395,74 +1308,64 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/command␊ + repositoryRoot: packages/build/tests/error/fixtures/exception_string␊ testOpts:␊ - errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/command␊ + packages/build/tests/error/fixtures/exception_string␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/command/netlify.toml␊ + packages/build/tests/error/fixtures/exception_string/netlify.toml␊ ␊ > Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command␊ + publish: packages/build/tests/error/fixtures/exception_string␊ publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ + > Loading plugins␊ + - ./plugin@1.0.0 from netlify.toml␊ + ␊ ────────────────────────────────────────────────────────────────␊ - 1. build.command from netlify.toml ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - "build.command" failed ␊ + Plugin "./plugin" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Command failed with exit code 9: node --invalid␊ + Error: test␊ + ␊ + Plugin details␊ + Package: ./plugin␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In build.command from netlify.toml:␊ - node --invalid␊ + In "onPreBuild" event in "./plugin" from netlify.toml␊ + STACK TRACE␊ ␊ Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command␊ + publish: packages/build/tests/error/fixtures/exception_string␊ publishOrigin: default␊ - ␊ - Error monitoring payload:␊ - {␊ - "errorClass": "buildCommand",␊ - "errorMessage": "Command failed with exit code 9: node --invalid",␊ - "context": "node --invalid",␊ - "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid",␊ - "severity": "info",␊ - "unhandled": false,␊ - "location": {␊ - "buildCommand": "node --invalid",␊ - "buildCommandOrigin": "config",␊ - "configPath": "packages/build/tests/error/fixtures/command/netlify.toml"␊ - },␊ - "pluginPackageJson": false,␊ - "other": {␊ - "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid"␊ - }␊ - }␊ - ␊ - node: bad option: --invalid` + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin` -## Report buildbot mode as releaseStage +## exception that are arrays > Snapshot 1 @@ -1476,47 +1379,198 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - mode: buildbot␊ - repositoryRoot: packages/build/tests/error/fixtures/command␊ + repositoryRoot: packages/build/tests/error/fixtures/exception_array␊ testOpts:␊ - errorMonitor: 'true'␊ pluginsListUrl: test␊ - silentLingeringProcesses: 'true'␊ + silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/command␊ + packages/build/tests/error/fixtures/exception_array␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/command/netlify.toml␊ + packages/build/tests/error/fixtures/exception_array/netlify.toml␊ ␊ > Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command␊ + publish: packages/build/tests/error/fixtures/exception_array␊ publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin␊ ␊ > Context␊ production␊ ␊ + > Loading plugins␊ + - ./plugin@1.0.0 from netlify.toml␊ + ␊ ────────────────────────────────────────────────────────────────␊ - 1. build.command from netlify.toml ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - "build.command" failed ␊ + Plugin "./plugin" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Command failed with exit code 9: node --invalid␊ - ␊ - Error location␊ - In build.command from netlify.toml:␊ - node --invalid␊ + Error: test␊ ␊ - Resolved config␊ + Plugin details␊ + Package: ./plugin␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ + ␊ + Error location␊ + In "onPreBuild" event in "./plugin" from netlify.toml␊ + STACK TRACE␊ + ␊ + Error properties␊ + { errors: [ {} ] }␊ + ␊ + Resolved config␊ + build:␊ + publish: packages/build/tests/error/fixtures/exception_array␊ + publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin` + +## Do not log secret values on build errors + +> Snapshot 1 + + `␊ + ────────────────────────────────────────────────────────────────␊ + Netlify Build ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + > Version␊ + @netlify/build 1.0.0␊ + ␊ + > Flags␊ + debug: true␊ + repositoryRoot: packages/build/tests/error/fixtures/log_secret␊ + testOpts:␊ + pluginsListUrl: test␊ + silentLingeringProcesses: true␊ + ␊ + > Current directory␊ + packages/build/tests/error/fixtures/log_secret␊ + ␊ + > Config file␊ + packages/build/tests/error/fixtures/log_secret/netlify.toml␊ + ␊ + > Resolved config␊ + build:␊ + command: node --invalid␊ + commandOrigin: config␊ + environment:␊ + - SECRET␊ + publish: packages/build/tests/error/fixtures/log_secret␊ + publishOrigin: default␊ + plugins:␊ + - inputs:␊ + notSecret: true␊ + origin: config␊ + package: ./plugin.js␊ + ␊ + > Context␊ + production␊ + ␊ + > Loading plugins␊ + - ./plugin.js@1.0.0 from netlify.toml␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + 1. build.command from netlify.toml ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + $ node --invalid␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + "build.command" failed ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + Error message␊ + Command failed with exit code 9: node --invalid␊ + ␊ + Error location␊ + In build.command from netlify.toml:␊ + node --invalid␊ + ␊ + Resolved config␊ + build:␊ + command: node --invalid␊ + commandOrigin: config␊ + environment:␊ + - SECRET␊ + publish: packages/build/tests/error/fixtures/log_secret␊ + publishOrigin: default␊ + plugins:␊ + - inputs:␊ + notSecret: true␊ + origin: config␊ + package: ./plugin.js␊ + ␊ + node: bad option: --invalid` + +## Report build.command failure + +> Snapshot 1 + + `␊ + ────────────────────────────────────────────────────────────────␊ + Netlify Build ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + > Version␊ + @netlify/build 1.0.0␊ + ␊ + > Flags␊ + debug: true␊ + repositoryRoot: packages/build/tests/error/fixtures/command␊ + testOpts:␊ + errorMonitor: true␊ + pluginsListUrl: test␊ + silentLingeringProcesses: true␊ + ␊ + > Current directory␊ + packages/build/tests/error/fixtures/command␊ + ␊ + > Config file␊ + packages/build/tests/error/fixtures/command/netlify.toml␊ + ␊ + > Resolved config␊ + build:␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command␊ + publishOrigin: default␊ + ␊ + > Context␊ + production␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + 1. build.command from netlify.toml ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + $ node --invalid␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + "build.command" failed ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + Error message␊ + Command failed with exit code 9: node --invalid␊ + ␊ + Error location␊ + In build.command from netlify.toml:␊ + node --invalid␊ + ␊ + Resolved config␊ build:␊ command: node --invalid␊ commandOrigin: config␊ @@ -1596,7 +1650,7 @@ Generated by [AVA](https://ava.li). }␊ }` -## Report dependencies error +## Report plugin input error > Snapshot 1 @@ -1610,67 +1664,88 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/dependencies␊ + repositoryRoot: packages/build/tests/error/fixtures/plugin_input␊ testOpts:␊ errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/dependencies␊ + packages/build/tests/error/fixtures/plugin_input␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/dependencies/netlify.toml␊ + packages/build/tests/error/fixtures/plugin_input/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/dependencies␊ + publish: packages/build/tests/error/fixtures/plugin_input␊ publishOrigin: default␊ - functionsDirectory: packages/build/tests/error/fixtures/dependencies/functions␊ + plugins:␊ + - inputs:␊ + test: true␊ + origin: config␊ + package: ./plugin.js␊ ␊ > Context␊ production␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. Functions bundling ␊ + Plugin "./plugin.js" invalid input "test" ␊ ────────────────────────────────────────────────────────────────␊ ␊ - Packaging Functions from functions directory:␊ - - test.js␊ - ␊ + Error message␊ + Plugin "./plugin.js" does not accept any inputs but you specified: "test"␊ + Check your plugin configuration to be sure that:␊ + - the input name is spelled correctly␊ + - the input is included in the plugin's available configuration options␊ + - the plugin's input requirements have not changed␊ ␊ - ────────────────────────────────────────────────────────────────␊ - Dependencies installation error ␊ - ────────────────────────────────────────────────────────────────␊ + Plugin inputs␊ + test: true␊ ␊ - Error message␊ - A Netlify Function failed to require one of its dependencies.␊ - Please make sure it is present in the site's top-level "package.json".␊ + Plugin details␊ + Package: ./plugin.js␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ - In file "packages/build/tests/error/fixtures/dependencies/functions/test.js"␊ - Cannot find module 'does-not-exist'␊ + Error location␊ + While loading "./plugin.js" from netlify.toml␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/dependencies␊ + publish: packages/build/tests/error/fixtures/plugin_input␊ publishOrigin: default␊ - functionsDirectory: packages/build/tests/error/fixtures/dependencies/functions␊ + plugins:␊ + - inputs:␊ + test: true␊ + origin: config␊ + package: ./plugin.js␊ ␊ Error monitoring payload:␊ {␊ - "errorClass": "dependencies",␊ - "errorMessage": "A Netlify Function failed to require one of its dependencies./nPlease make sure it is present in the site's top-level /"package.json/"./n/nIn file /"packages/build/tests/error/fixtures/dependencies/functions/test.js"/external/path find module 'does-not-exist'/external/path stack:/n- /node_module/path /node_module/path /node_module/path packages/build/src/plugins_core/functions/utils.js/n- packages/build/src/plugins_core/functions/index.js/n- packages/build/src/commands/get.js/n- packages/build/src/core/main.js/n- packages/build/tests/helpers/main.js/n- packages/build/tests/error/tests.js/n- /node_module/path",␊ - "context": "Dependencies installation error",␊ - "groupingHash": "Dependencies installation error/n",␊ + "errorClass": "pluginInput",␊ + "errorMessage": "Plugin /"./plugin.js/" does not accept any inputs but you specified: /"test/"/external/path your plugin configuration to be sure that:/n - the input name is spelled correctly/n - the input is included in the plugin's available configuration options/n - the plugin's input requirements have not changed/n/nPlugin inputs/ntest: true",␊ + "context": "Plugin /"./plugin.js/" invalid input /"test/"",␊ + "groupingHash": "Plugin /"./plugin.js/" invalid input /"test/"/external/path /"/external/path" does not accept any inputs but you specified: /external/path your plugin configuration to be sure that:/n - the input name is spelled correctly/n - the input is included in the plugin's available configuration options/n - the plugin's input requirements have not changed/n",␊ "severity": "info",␊ "unhandled": false,␊ - "pluginPackageJson": false,␊ + "location": {␊ + "event": "load",␊ + "packageName": "./plugin.js",␊ + "input": "test",␊ + "loadedFrom": "local",␊ + "origin": "config"␊ + },␊ + "packageName": "./plugin.js",␊ + "pluginPackageJson": true,␊ + "homepage": "git+https://github.com/netlify/build.git",␊ "other": {␊ - "groupingHash": "Dependencies installation error/n"␊ + "groupingHash": "Plugin /"./plugin.js/" invalid input /"test/"/external/path /"/external/path" does not accept any inputs but you specified: /external/path your plugin configuration to be sure that:/n - the input name is spelled correctly/n - the input is included in the plugin's available configuration options/n - the plugin's input requirements have not changed/n"␊ }␊ }` -## Report plugin homepage +## Report plugin validation error > Snapshot 1 @@ -1684,21 +1759,21 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/plugin_homepage␊ + repositoryRoot: packages/build/tests/error/fixtures/plugin_validation␊ testOpts:␊ errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/plugin_homepage␊ + packages/build/tests/error/fixtures/plugin_validation␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/plugin_homepage/netlify.toml␊ + packages/build/tests/error/fixtures/plugin_validation/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_homepage␊ + publish: packages/build/tests/error/fixtures/plugin_validation␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -1711,31 +1786,33 @@ Generated by [AVA](https://ava.li). > Loading plugins␊ - ./plugin.js@1.0.0 from netlify.toml␊ ␊ - ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin.js ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - ␊ ────────────────────────────────────────────────────────────────␊ Plugin "./plugin.js" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: test␊ + Error: Invalid event 'invalid'.␊ + Please use a valid event name. One of:␊ + - onPreBuild␊ + - onBuild␊ + - onPostBuild␊ + - onSuccess␊ + - onError␊ + - onEnd␊ ␊ Plugin details␊ Package: ./plugin.js␊ Version: 1.0.0␊ - Repository: git+https://github.com/test/test.git␊ - Report issues: https://github.com/test/test/issues␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin.js" from netlify.toml␊ + While loading "./plugin.js" from netlify.toml␊ STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_homepage␊ + publish: packages/build/tests/error/fixtures/plugin_validation␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -1744,27 +1821,27 @@ Generated by [AVA](https://ava.li). ␊ Error monitoring payload:␊ {␊ - "errorClass": "pluginInternal",␊ - "errorMessage": "test",␊ + "errorClass": "pluginValidation",␊ + "errorMessage": "Invalid event 'invalid'./nPlease use a valid event name. One of:/n - onPreBuild/n - onBuild/n - onPostBuild/n - onSuccess/n - onError/n - onEnd",␊ "context": "Plugin /"./plugin.js/" internal error",␊ - "groupingHash": "Plugin /"./plugin.js/" internal error/ntest",␊ + "groupingHash": "Plugin /"./plugin.js/" internal error/nInvalid event 'invalid'./nPlease use a valid event name. One of:/n - onPreBuild/n - onBuild/n - onPostBuild/n - onSuccess/n - onError/n - onEnd",␊ "severity": "info",␊ "unhandled": false,␊ "location": {␊ - "event": "onPreBuild",␊ + "event": "load",␊ "packageName": "./plugin.js",␊ "loadedFrom": "local",␊ "origin": "config"␊ },␊ "packageName": "./plugin.js",␊ "pluginPackageJson": true,␊ - "homepage": "git+https://github.com/test/test.git",␊ + "homepage": "git+https://github.com/netlify/build.git",␊ "other": {␊ - "groupingHash": "Plugin /"./plugin.js/" internal error/ntest"␊ + "groupingHash": "Plugin /"./plugin.js/" internal error/nInvalid event 'invalid'./nPlease use a valid event name. One of:/n - onPreBuild/n - onBuild/n - onPostBuild/n - onSuccess/n - onError/n - onEnd"␊ }␊ }` -## Report plugin homepage without a repository +## Report plugin internal error > Snapshot 1 @@ -1778,21 +1855,21 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/plugin_homepage_no_repo␊ + repositoryRoot: packages/build/tests/error/fixtures/plugin_internal␊ testOpts:␊ errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/plugin_homepage_no_repo␊ + packages/build/tests/error/fixtures/plugin_internal␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/plugin_homepage_no_repo/netlify.toml␊ + packages/build/tests/error/fixtures/plugin_internal/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_homepage_no_repo␊ + publish: packages/build/tests/error/fixtures/plugin_internal␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -1820,7 +1897,8 @@ Generated by [AVA](https://ava.li). Plugin details␊ Package: ./plugin.js␊ Version: 1.0.0␊ - Report issues: https://test.com␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ In "onPreBuild" event in "./plugin.js" from netlify.toml␊ @@ -1828,7 +1906,7 @@ Generated by [AVA](https://ava.li). ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_homepage_no_repo␊ + publish: packages/build/tests/error/fixtures/plugin_internal␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -1851,13 +1929,13 @@ Generated by [AVA](https://ava.li). },␊ "packageName": "./plugin.js",␊ "pluginPackageJson": true,␊ - "homepage": "https://test.com",␊ + "homepage": "git+https://github.com/netlify/build.git",␊ "other": {␊ "groupingHash": "Plugin /"./plugin.js/" internal error/ntest"␊ }␊ }` -## Report plugin input error +## Report utils.build.failBuild() > Snapshot 1 @@ -1871,44 +1949,44 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/plugin_input␊ + repositoryRoot: packages/build/tests/error/fixtures/monitor_fail_build␊ testOpts:␊ errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/plugin_input␊ + packages/build/tests/error/fixtures/monitor_fail_build␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/plugin_input/netlify.toml␊ + packages/build/tests/error/fixtures/monitor_fail_build/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_input␊ + publish: packages/build/tests/error/fixtures/monitor_fail_build␊ publishOrigin: default␊ plugins:␊ - - inputs:␊ - test: true␊ + - inputs: {}␊ origin: config␊ package: ./plugin.js␊ ␊ > Context␊ production␊ ␊ + > Loading plugins␊ + - ./plugin.js@1.0.0 from netlify.toml␊ + ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin.js" invalid input "test" ␊ + 1. onPreBuild command from ./plugin.js ␊ ────────────────────────────────────────────────────────────────␊ ␊ - Error message␊ - Plugin "./plugin.js" does not accept any inputs but you specified: "test"␊ - Check your plugin configuration to be sure that:␊ - - the input name is spelled correctly␊ - - the input is included in the plugin's available configuration options␊ - - the plugin's input requirements have not changed␊ ␊ - Plugin inputs␊ - test: true␊ + ────────────────────────────────────────────────────────────────␊ + Plugin "./plugin.js" failed ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + Error message␊ + Error: test␊ ␊ Plugin details␊ Package: ./plugin.js␊ @@ -1917,30 +1995,29 @@ Generated by [AVA](https://ava.li). Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - While loading "./plugin.js" from netlify.toml␊ + In "onPreBuild" event in "./plugin.js" from netlify.toml␊ + STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_input␊ + publish: packages/build/tests/error/fixtures/monitor_fail_build␊ publishOrigin: default␊ plugins:␊ - - inputs:␊ - test: true␊ + - inputs: {}␊ origin: config␊ package: ./plugin.js␊ ␊ Error monitoring payload:␊ {␊ - "errorClass": "pluginInput",␊ - "errorMessage": "Plugin /"./plugin.js/" does not accept any inputs but you specified: /"test/"/external/path your plugin configuration to be sure that:/n - the input name is spelled correctly/n - the input is included in the plugin's available configuration options/n - the plugin's input requirements have not changed/n/nPlugin inputs/ntest: true",␊ - "context": "Plugin /"./plugin.js/" invalid input /"test/"",␊ - "groupingHash": "Plugin /"./plugin.js/" invalid input /"test/"/external/path /"/external/path" does not accept any inputs but you specified: /external/path your plugin configuration to be sure that:/n - the input name is spelled correctly/n - the input is included in the plugin's available configuration options/n - the plugin's input requirements have not changed/n",␊ + "errorClass": "failBuild",␊ + "errorMessage": "test",␊ + "context": "Plugin /"./plugin.js/" failed",␊ + "groupingHash": "Plugin /"./plugin.js/" failed/ntest",␊ "severity": "info",␊ "unhandled": false,␊ "location": {␊ - "event": "load",␊ + "event": "onPreBuild",␊ "packageName": "./plugin.js",␊ - "input": "test",␊ "loadedFrom": "local",␊ "origin": "config"␊ },␊ @@ -1948,11 +2025,11 @@ Generated by [AVA](https://ava.li). "pluginPackageJson": true,␊ "homepage": "git+https://github.com/netlify/build.git",␊ "other": {␊ - "groupingHash": "Plugin /"./plugin.js/" invalid input /"test/"/external/path /"/external/path" does not accept any inputs but you specified: /external/path your plugin configuration to be sure that:/n - the input name is spelled correctly/n - the input is included in the plugin's available configuration options/n - the plugin's input requirements have not changed/n"␊ + "groupingHash": "Plugin /"./plugin.js/" failed/ntest"␊ }␊ }` -## Report plugin internal error +## Report utils.build.failPlugin() > Snapshot 1 @@ -1966,21 +2043,21 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/plugin_internal␊ + repositoryRoot: packages/build/tests/error/fixtures/monitor_fail_plugin␊ testOpts:␊ errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/plugin_internal␊ + packages/build/tests/error/fixtures/monitor_fail_plugin␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/plugin_internal/netlify.toml␊ + packages/build/tests/error/fixtures/monitor_fail_plugin/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_internal␊ + publish: packages/build/tests/error/fixtures/monitor_fail_plugin␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -1999,7 +2076,7 @@ Generated by [AVA](https://ava.li). ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin.js" internal error ␊ + Plugin "./plugin.js" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ @@ -2017,7 +2094,7 @@ Generated by [AVA](https://ava.li). ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_internal␊ + publish: packages/build/tests/error/fixtures/monitor_fail_plugin␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -2026,10 +2103,10 @@ Generated by [AVA](https://ava.li). ␊ Error monitoring payload:␊ {␊ - "errorClass": "pluginInternal",␊ + "errorClass": "failPlugin",␊ "errorMessage": "test",␊ - "context": "Plugin /"./plugin.js/" internal error",␊ - "groupingHash": "Plugin /"./plugin.js/" internal error/ntest",␊ + "context": "Plugin /"./plugin.js/" failed",␊ + "groupingHash": "Plugin /"./plugin.js/" failed/ntest",␊ "severity": "info",␊ "unhandled": false,␊ "location": {␊ @@ -2042,11 +2119,17 @@ Generated by [AVA](https://ava.li). "pluginPackageJson": true,␊ "homepage": "git+https://github.com/netlify/build.git",␊ "other": {␊ - "groupingHash": "Plugin /"./plugin.js/" internal error/ntest"␊ + "groupingHash": "Plugin /"./plugin.js/" failed/ntest"␊ }␊ - }` + }␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + Netlify Build Complete ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + (Netlify Build completed in 1ms)` -## Report plugin origin +## Report utils.build.cancelBuild() > Snapshot 1 @@ -2060,32 +2143,32 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/plugin_origin␊ + repositoryRoot: packages/build/tests/error/fixtures/cancel_build␊ testOpts:␊ errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/plugin_origin␊ + packages/build/tests/error/fixtures/cancel_build␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/plugin_origin/netlify.toml␊ + packages/build/tests/error/fixtures/cancel_build/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_origin␊ + publish: packages/build/tests/error/fixtures/cancel_build␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ - origin: ui␊ + origin: config␊ package: ./plugin.js␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin.js@1.0.0 from Netlify app␊ + - ./plugin.js@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ 1. onPreBuild command from ./plugin.js ␊ @@ -2093,54 +2176,35 @@ Generated by [AVA](https://ava.li). ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin.js" internal error ␊ + Build canceled by ./plugin.js ␊ ────────────────────────────────────────────────────────────────␊ ␊ - Error message␊ - Error: test␊ - ␊ - Plugin details␊ - Package: ./plugin.js␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ - ␊ - Error location␊ - In "onPreBuild" event in "./plugin.js" from Netlify app␊ - STACK TRACE␊ + test␊ ␊ - Resolved config␊ - build:␊ - publish: packages/build/tests/error/fixtures/plugin_origin␊ - publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: ui␊ - package: ./plugin.js␊ ␊ Error monitoring payload:␊ {␊ - "errorClass": "pluginInternal",␊ + "errorClass": "cancelBuild",␊ "errorMessage": "test",␊ - "context": "Plugin /"./plugin.js/" internal error",␊ - "groupingHash": "Plugin /"./plugin.js/" internal error/ntest",␊ + "context": "Build canceled by ./plugin.js",␊ + "groupingHash": "Build canceled by ./plugin.js/ntest",␊ "severity": "info",␊ "unhandled": false,␊ "location": {␊ "event": "onPreBuild",␊ "packageName": "./plugin.js",␊ "loadedFrom": "local",␊ - "origin": "ui"␊ + "origin": "config"␊ },␊ "packageName": "./plugin.js",␊ "pluginPackageJson": true,␊ "homepage": "git+https://github.com/netlify/build.git",␊ "other": {␊ - "groupingHash": "Plugin /"./plugin.js/" internal error/ntest"␊ + "groupingHash": "Build canceled by ./plugin.js/ntest"␊ }␊ }` -## Report plugin validation error +## Report IPC error > Snapshot 1 @@ -2154,21 +2218,21 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/plugin_validation␊ + repositoryRoot: packages/build/tests/error/fixtures/ipc␊ testOpts:␊ errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/plugin_validation␊ + packages/build/tests/error/fixtures/ipc␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/plugin_validation/netlify.toml␊ + packages/build/tests/error/fixtures/ipc/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_validation␊ + publish: packages/build/tests/error/fixtures/ipc␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -2181,19 +2245,22 @@ Generated by [AVA](https://ava.li). > Loading plugins␊ - ./plugin.js@1.0.0 from netlify.toml␊ ␊ + ────────────────────────────────────────────────────────────────␊ + 1. onPreBuild command from ./plugin.js ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + ␊ ────────────────────────────────────────────────────────────────␊ Plugin "./plugin.js" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: Invalid event 'invalid'.␊ - Please use a valid event name. One of:␊ - - onPreBuild␊ - - onBuild␊ - - onPostBuild␊ - - onSuccess␊ - - onError␊ - - onEnd␊ + Plugin exited with exit code 0 and signal null.␊ + The plugin might have exited due to a bug terminating the process, such as an infinite loop.␊ + The plugin might also have explicitly terminated the process, for example with process.exit().␊ + Plugin methods should instead:␊ + - on success: return␊ + - on failure: call utils.build.failPlugin() or utils.build.failBuild()␊ ␊ Plugin details␊ Package: ./plugin.js␊ @@ -2202,12 +2269,11 @@ Generated by [AVA](https://ava.li). Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - While loading "./plugin.js" from netlify.toml␊ - STACK TRACE␊ + In "onPreBuild" event in "./plugin.js" from netlify.toml␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/plugin_validation␊ + publish: packages/build/tests/error/fixtures/ipc␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -2216,14 +2282,14 @@ Generated by [AVA](https://ava.li). ␊ Error monitoring payload:␊ {␊ - "errorClass": "pluginValidation",␊ - "errorMessage": "Invalid event 'invalid'./nPlease use a valid event name. One of:/n - onPreBuild/n - onBuild/n - onPostBuild/n - onSuccess/n - onError/n - onEnd",␊ + "errorClass": "ipc",␊ + "errorMessage": "Plugin exited with exit code 0 and signal null./nThe plugin might have exited due to a bug terminating the process, such as an infinite loop./nThe plugin might also have explicitly terminated the process, for example with process.exit()./nPlugin methods should instead:/n - on success: return/n - on failure: call utils.build.failPlugin() or utils.build.failBuild()",␊ "context": "Plugin /"./plugin.js/" internal error",␊ - "groupingHash": "Plugin /"./plugin.js/" internal error/nInvalid event 'invalid'./nPlease use a valid event name. One of:/n - onPreBuild/n - onBuild/n - onPostBuild/n - onSuccess/n - onError/n - onEnd",␊ + "groupingHash": "Plugin /"./plugin.js/" internal error/nPlugin exited with exit code 0 and signal null./nThe plugin might have exited due to a bug terminating the process, such as an infinite loop./nThe plugin might also have explicitly terminated the process, for example with process.exit()./nPlugin methods should instead:/n - on success: return/n - on failure: call utils.build.failPlugin() or utils.build.failBuild()",␊ "severity": "info",␊ "unhandled": false,␊ "location": {␊ - "event": "load",␊ + "event": "onPreBuild",␊ "packageName": "./plugin.js",␊ "loadedFrom": "local",␊ "origin": "config"␊ @@ -2232,11 +2298,11 @@ Generated by [AVA](https://ava.li). "pluginPackageJson": true,␊ "homepage": "git+https://github.com/netlify/build.git",␊ "other": {␊ - "groupingHash": "Plugin /"./plugin.js/" internal error/nInvalid event 'invalid'./nPlease use a valid event name. One of:/n - onPreBuild/n - onBuild/n - onPostBuild/n - onSuccess/n - onError/n - onEnd"␊ + "groupingHash": "Plugin /"./plugin.js/" internal error/nPlugin exited with exit code 0 and signal null./nThe plugin might have exited due to a bug terminating the process, such as an infinite loop./nThe plugin might also have explicitly terminated the process, for example with process.exit()./nPlugin methods should instead:/n - on success: return/n - on failure: call utils.build.failPlugin() or utils.build.failBuild()"␊ }␊ }` -## Report programmatic mode as releaseStage +## Report API error > Snapshot 1 @@ -2250,75 +2316,86 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - mode: require␊ - repositoryRoot: packages/build/tests/error/fixtures/command␊ + deployId: test␊ + repositoryRoot: packages/build/tests/error/fixtures/cancel_build␊ testOpts:␊ - errorMonitor: 'true'␊ + env: false␊ + errorMonitor: true␊ pluginsListUrl: test␊ - silentLingeringProcesses: 'true'␊ + silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/command␊ + packages/build/tests/error/fixtures/cancel_build␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/command/netlify.toml␊ + packages/build/tests/error/fixtures/cancel_build/netlify.toml␊ ␊ > Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command␊ + publish: packages/build/tests/error/fixtures/cancel_build␊ publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin.js␊ ␊ > Context␊ production␊ ␊ + > Loading plugins␊ + - ./plugin.js@1.0.0 from netlify.toml␊ + ␊ ────────────────────────────────────────────────────────────────␊ - 1. build.command from netlify.toml ␊ + 1. onPreBuild command from ./plugin.js ␊ ────────────────────────────────────────────────────────────────␊ ␊ - $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - "build.command" failed ␊ + API error on "cancelSiteDeploy" ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Command failed with exit code 9: node --invalid␊ + Unauthorized␊ ␊ Error location␊ - In build.command from netlify.toml:␊ - node --invalid␊ + While calling the Netlify API endpoint 'cancelSiteDeploy' with:␊ + {␊ + "deploy_id": "test"␊ + }␊ + ␊ + Error properties␊ + { name: 'TextHTTPError', status: 401, data: '' }␊ ␊ Resolved config␊ build:␊ - command: node --invalid␊ - commandOrigin: config␊ - publish: packages/build/tests/error/fixtures/command␊ + publish: packages/build/tests/error/fixtures/cancel_build␊ publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin.js␊ ␊ Error monitoring payload:␊ {␊ - "errorClass": "buildCommand",␊ - "errorMessage": "Command failed with exit code 9: node --invalid",␊ - "context": "node --invalid",␊ - "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid",␊ - "severity": "info",␊ - "unhandled": false,␊ + "errorClass": "api",␊ + "errorMessage": "Unauthorized",␊ + "context": "API error on /"cancelSiteDeploy/"",␊ + "groupingHash": "API error on /"cancelSiteDeploy/"/external/path",␊ + "severity": "error",␊ + "unhandled": true,␊ "location": {␊ - "buildCommand": "node --invalid",␊ - "buildCommandOrigin": "config",␊ - "configPath": "packages/build/tests/error/fixtures/command/netlify.toml"␊ + "endpoint": "cancelSiteDeploy",␊ + "parameters": {␊ + "deploy_id": "test"␊ + }␊ },␊ "pluginPackageJson": false,␊ "other": {␊ - "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid"␊ + "groupingHash": "API error on /"cancelSiteDeploy/"/external/path"␊ }␊ - }␊ - ␊ - node: bad option: --invalid` + }` -## Report utils.build.cancelBuild() +## Report dependencies error > Snapshot 1 @@ -2332,68 +2409,67 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/cancel_build␊ + repositoryRoot: packages/build/tests/error/fixtures/dependencies␊ testOpts:␊ errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/cancel_build␊ + packages/build/tests/error/fixtures/dependencies␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/cancel_build/netlify.toml␊ + packages/build/tests/error/fixtures/dependencies/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel_build␊ + publish: packages/build/tests/error/fixtures/dependencies␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin.js␊ + functionsDirectory: packages/build/tests/error/fixtures/dependencies/functions␊ ␊ > Context␊ production␊ ␊ - > Loading plugins␊ - - ./plugin.js@1.0.0 from netlify.toml␊ - ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin.js ␊ + 1. Functions bundling ␊ ────────────────────────────────────────────────────────────────␊ ␊ + Packaging Functions from functions directory:␊ + - test.js␊ + ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Build canceled by ./plugin.js ␊ + Dependencies installation error ␊ ────────────────────────────────────────────────────────────────␊ ␊ - test␊ + Error message␊ + A Netlify Function failed to require one of its dependencies.␊ + Please make sure it is present in the site's top-level "package.json".␊ + ␊ + In file "packages/build/tests/error/fixtures/dependencies/functions/test.js"␊ + Cannot find module 'does-not-exist'␊ ␊ + Resolved config␊ + build:␊ + publish: packages/build/tests/error/fixtures/dependencies␊ + publishOrigin: default␊ + functionsDirectory: packages/build/tests/error/fixtures/dependencies/functions␊ ␊ Error monitoring payload:␊ {␊ - "errorClass": "cancelBuild",␊ - "errorMessage": "test",␊ - "context": "Build canceled by ./plugin.js",␊ - "groupingHash": "Build canceled by ./plugin.js/ntest",␊ + "errorClass": "dependencies",␊ + "errorMessage": "A Netlify Function failed to require one of its dependencies./nPlease make sure it is present in the site's top-level /"package.json/"./n/nIn file /"packages/build/tests/error/fixtures/dependencies/functions/test.js"/external/path find module 'does-not-exist'/external/path stack:/n- /node_module/path /node_module/path /node_module/path packages/build/src/plugins_core/functions/index.js/n- packages/build/src/commands/get.js/n- packages/build/src/core/main.js/n- packages/build/tests/helpers/main.js/n- packages/build/tests/error/tests.js/n- /node_module/path",␊ + "context": "Dependencies installation error",␊ + "groupingHash": "Dependencies installation error/n",␊ "severity": "info",␊ "unhandled": false,␊ - "location": {␊ - "event": "onPreBuild",␊ - "packageName": "./plugin.js",␊ - "loadedFrom": "local",␊ - "origin": "config"␊ - },␊ - "packageName": "./plugin.js",␊ - "pluginPackageJson": true,␊ - "homepage": "git+https://github.com/netlify/build.git",␊ + "pluginPackageJson": false,␊ "other": {␊ - "groupingHash": "Build canceled by ./plugin.js/ntest"␊ + "groupingHash": "Dependencies installation error/n"␊ }␊ }` -## Report utils.build.failBuild() +## Report buildbot mode as releaseStage > Snapshot 1 @@ -2407,87 +2483,75 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/monitor_fail_build␊ + mode: buildbot␊ + repositoryRoot: packages/build/tests/error/fixtures/command␊ testOpts:␊ - errorMonitor: true␊ + errorMonitor: 'true'␊ pluginsListUrl: test␊ - silentLingeringProcesses: true␊ + silentLingeringProcesses: 'true'␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/monitor_fail_build␊ + packages/build/tests/error/fixtures/command␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/monitor_fail_build/netlify.toml␊ + packages/build/tests/error/fixtures/command/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/monitor_fail_build␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin.js␊ ␊ > Context␊ production␊ ␊ - > Loading plugins␊ - - ./plugin.js@1.0.0 from netlify.toml␊ - ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin.js ␊ + 1. build.command from netlify.toml ␊ ────────────────────────────────────────────────────────────────␊ ␊ + $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin.js" failed ␊ + "build.command" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: test␊ - ␊ - Plugin details␊ - Package: ./plugin.js␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ + Command failed with exit code 9: node --invalid␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin.js" from netlify.toml␊ - STACK TRACE␊ + In build.command from netlify.toml:␊ + node --invalid␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/monitor_fail_build␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin.js␊ ␊ Error monitoring payload:␊ {␊ - "errorClass": "failBuild",␊ - "errorMessage": "test",␊ - "context": "Plugin /"./plugin.js/" failed",␊ - "groupingHash": "Plugin /"./plugin.js/" failed/ntest",␊ + "errorClass": "buildCommand",␊ + "errorMessage": "Command failed with exit code 9: node --invalid",␊ + "context": "node --invalid",␊ + "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid",␊ "severity": "info",␊ "unhandled": false,␊ "location": {␊ - "event": "onPreBuild",␊ - "packageName": "./plugin.js",␊ - "loadedFrom": "local",␊ - "origin": "config"␊ + "buildCommand": "node --invalid",␊ + "buildCommandOrigin": "config",␊ + "configPath": "packages/build/tests/error/fixtures/command/netlify.toml"␊ },␊ - "packageName": "./plugin.js",␊ - "pluginPackageJson": true,␊ - "homepage": "git+https://github.com/netlify/build.git",␊ + "pluginPackageJson": false,␊ "other": {␊ - "groupingHash": "Plugin /"./plugin.js/" failed/ntest"␊ + "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid"␊ }␊ - }` + }␊ + ␊ + node: bad option: --invalid` -## Report utils.build.failPlugin() +## Report CLI mode as releaseStage > Snapshot 1 @@ -2501,93 +2565,75 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/monitor_fail_plugin␊ + mode: cli␊ + repositoryRoot: packages/build/tests/error/fixtures/command␊ testOpts:␊ - errorMonitor: true␊ + errorMonitor: 'true'␊ pluginsListUrl: test␊ - silentLingeringProcesses: true␊ + silentLingeringProcesses: 'true'␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/monitor_fail_plugin␊ + packages/build/tests/error/fixtures/command␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/monitor_fail_plugin/netlify.toml␊ + packages/build/tests/error/fixtures/command/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/monitor_fail_plugin␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin.js␊ ␊ > Context␊ production␊ ␊ - > Loading plugins␊ - - ./plugin.js@1.0.0 from netlify.toml␊ - ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin.js ␊ + 1. build.command from netlify.toml ␊ ────────────────────────────────────────────────────────────────␊ ␊ + $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin.js" failed ␊ + "build.command" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: test␊ - ␊ - Plugin details␊ - Package: ./plugin.js␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ + Command failed with exit code 9: node --invalid␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin.js" from netlify.toml␊ - STACK TRACE␊ + In build.command from netlify.toml:␊ + node --invalid␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/monitor_fail_plugin␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin.js␊ ␊ Error monitoring payload:␊ {␊ - "errorClass": "failPlugin",␊ - "errorMessage": "test",␊ - "context": "Plugin /"./plugin.js/" failed",␊ - "groupingHash": "Plugin /"./plugin.js/" failed/ntest",␊ + "errorClass": "buildCommand",␊ + "errorMessage": "Command failed with exit code 9: node --invalid",␊ + "context": "node --invalid",␊ + "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid",␊ "severity": "info",␊ "unhandled": false,␊ "location": {␊ - "event": "onPreBuild",␊ - "packageName": "./plugin.js",␊ - "loadedFrom": "local",␊ - "origin": "config"␊ + "buildCommand": "node --invalid",␊ + "buildCommandOrigin": "config",␊ + "configPath": "packages/build/tests/error/fixtures/command/netlify.toml"␊ },␊ - "packageName": "./plugin.js",␊ - "pluginPackageJson": true,␊ - "homepage": "git+https://github.com/netlify/build.git",␊ + "pluginPackageJson": false,␊ "other": {␊ - "groupingHash": "Plugin /"./plugin.js/" failed/ntest"␊ + "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid"␊ }␊ }␊ ␊ - ────────────────────────────────────────────────────────────────␊ - Netlify Build Complete ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - (Netlify Build completed in 1ms)` + node: bad option: --invalid` -## Top function errors local +## Report programmatic mode as releaseStage > Snapshot 1 @@ -2601,127 +2647,75 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/function␊ + mode: require␊ + repositoryRoot: packages/build/tests/error/fixtures/command␊ testOpts:␊ + errorMonitor: 'true'␊ pluginsListUrl: test␊ - silentLingeringProcesses: true␊ + silentLingeringProcesses: 'true'␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/function␊ + packages/build/tests/error/fixtures/command␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/function/netlify.toml␊ + packages/build/tests/error/fixtures/command/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/function␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin␊ ␊ > Context␊ production␊ ␊ - > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ - ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" internal error ␊ + 1. build.command from netlify.toml ␊ ────────────────────────────────────────────────────────────────␊ ␊ - Error message␊ - Error: Could not load plugin:␊ - test␊ - ␊ - Plugin details␊ - Package: ./plugin␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ - ␊ - Error location␊ - While loading "./plugin" from netlify.toml␊ - STACK TRACE␊ - ␊ - Resolved config␊ - build:␊ - publish: packages/build/tests/error/fixtures/function␊ - publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin` - -## Top-level errors - -> Snapshot 1 - - `␊ - ────────────────────────────────────────────────────────────────␊ - Netlify Build ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - > Version␊ - @netlify/build 1.0.0␊ - ␊ - > Flags␊ - debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/top␊ - testOpts:␊ - pluginsListUrl: test␊ - silentLingeringProcesses: true␊ - ␊ - > Current directory␊ - packages/build/tests/error/fixtures/top␊ - ␊ - > Config file␊ - packages/build/tests/error/fixtures/top/netlify.toml␊ - ␊ - > Resolved config␊ - build:␊ - publish: packages/build/tests/error/fixtures/top␊ - publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin␊ - ␊ - > Context␊ - production␊ - ␊ - > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ + $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" internal error ␊ + "build.command" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: Could not import plugin:␊ - test␊ - ␊ - Plugin details␊ - Package: ./plugin␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ + Command failed with exit code 9: node --invalid␊ ␊ Error location␊ - While loading "./plugin" from netlify.toml␊ - STACK TRACE␊ + In build.command from netlify.toml:␊ + node --invalid␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/top␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin` + ␊ + Error monitoring payload:␊ + {␊ + "errorClass": "buildCommand",␊ + "errorMessage": "Command failed with exit code 9: node --invalid",␊ + "context": "node --invalid",␊ + "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid",␊ + "severity": "info",␊ + "unhandled": false,␊ + "location": {␊ + "buildCommand": "node --invalid",␊ + "buildCommandOrigin": "config",␊ + "configPath": "packages/build/tests/error/fixtures/command/netlify.toml"␊ + },␊ + "pluginPackageJson": false,␊ + "other": {␊ + "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid"␊ + }␊ + }␊ + ␊ + node: bad option: --invalid` -## Uncaught exception +## Report BUILD_ID > Snapshot 1 @@ -2735,64 +2729,75 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/uncaught␊ + repositoryRoot: packages/build/tests/error/fixtures/command␊ testOpts:␊ + errorMonitor: 'true'␊ pluginsListUrl: test␊ - silentLingeringProcesses: true␊ + silentLingeringProcesses: 'true'␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/uncaught␊ + packages/build/tests/error/fixtures/command␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/uncaught/netlify.toml␊ + packages/build/tests/error/fixtures/command/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/uncaught␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin␊ ␊ > Context␊ production␊ ␊ - > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ - ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + 1. build.command from netlify.toml ␊ ────────────────────────────────────────────────────────────────␊ ␊ + $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" internal error ␊ + "build.command" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - UncaughtException: an exception was thrown but not caught: Error: test␊ - ␊ - Plugin details␊ - Package: ./plugin␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ + Command failed with exit code 9: node --invalid␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin" from netlify.toml␊ - STACK TRACE␊ + In build.command from netlify.toml:␊ + node --invalid␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/uncaught␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin` + ␊ + Error monitoring payload:␊ + {␊ + "errorClass": "buildCommand",␊ + "errorMessage": "Command failed with exit code 9: node --invalid",␊ + "context": "node --invalid",␊ + "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid",␊ + "severity": "info",␊ + "unhandled": false,␊ + "location": {␊ + "buildCommand": "node --invalid",␊ + "buildCommandOrigin": "config",␊ + "configPath": "packages/build/tests/error/fixtures/command/netlify.toml"␊ + },␊ + "pluginPackageJson": false,␊ + "BUILD_ID": "test",␊ + "other": {␊ + "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid"␊ + }␊ + }␊ + ␊ + node: bad option: --invalid` -## Unhandled promises +## Report plugin homepage > Snapshot 1 @@ -2806,65 +2811,87 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/unhandled_promise␊ + repositoryRoot: packages/build/tests/error/fixtures/plugin_homepage␊ testOpts:␊ + errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/unhandled_promise␊ + packages/build/tests/error/fixtures/plugin_homepage␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/unhandled_promise/netlify.toml␊ + packages/build/tests/error/fixtures/plugin_homepage/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/unhandled_promise␊ + publish: packages/build/tests/error/fixtures/plugin_homepage␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin␊ + package: ./plugin.js␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ + - ./plugin.js@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + 1. onPreBuild command from ./plugin.js ␊ ────────────────────────────────────────────────────────────────␊ ␊ - onPreBuild␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" internal error ␊ + Plugin "./plugin.js" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - UnhandledRejection: a promise was rejected but not handled: Error: test␊ + Error: test␊ ␊ Plugin details␊ - Package: ./plugin␊ + Package: ./plugin.js␊ Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ + Repository: git+https://github.com/test/test.git␊ + Report issues: https://github.com/test/test/issues␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin" from netlify.toml␊ + In "onPreBuild" event in "./plugin.js" from netlify.toml␊ STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/unhandled_promise␊ + publish: packages/build/tests/error/fixtures/plugin_homepage␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin` + package: ./plugin.js␊ + ␊ + Error monitoring payload:␊ + {␊ + "errorClass": "pluginInternal",␊ + "errorMessage": "test",␊ + "context": "Plugin /"./plugin.js/" internal error",␊ + "groupingHash": "Plugin /"./plugin.js/" internal error/ntest",␊ + "severity": "info",␊ + "unhandled": false,␊ + "location": {␊ + "event": "onPreBuild",␊ + "packageName": "./plugin.js",␊ + "loadedFrom": "local",␊ + "origin": "config"␊ + },␊ + "packageName": "./plugin.js",␊ + "pluginPackageJson": true,␊ + "homepage": "git+https://github.com/test/test.git",␊ + "other": {␊ + "groupingHash": "Plugin /"./plugin.js/" internal error/ntest"␊ + }␊ + }` -## build.cancelBuild() +## Report plugin homepage without a repository > Snapshot 1 @@ -2878,111 +2905,86 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/cancel␊ + repositoryRoot: packages/build/tests/error/fixtures/plugin_homepage_no_repo␊ testOpts:␊ + errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/cancel␊ + packages/build/tests/error/fixtures/plugin_homepage_no_repo␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/cancel/netlify.toml␊ + packages/build/tests/error/fixtures/plugin_homepage_no_repo/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel␊ + publish: packages/build/tests/error/fixtures/plugin_homepage_no_repo␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin␊ + package: ./plugin.js␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ + - ./plugin.js@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + 1. onPreBuild command from ./plugin.js ␊ ────────────────────────────────────────────────────────────────␊ ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Build canceled by ./plugin ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - test␊ - ` - -## build.cancelBuild() API call - -> Snapshot 1 - - `␊ - ────────────────────────────────────────────────────────────────␊ - Netlify Build ␊ + Plugin "./plugin.js" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ - > Version␊ - @netlify/build 1.0.0␊ - ␊ - > Flags␊ - debug: true␊ - deployId: test␊ - repositoryRoot: packages/build/tests/error/fixtures/cancel␊ - testOpts:␊ - host: /test/socket␊ - pluginsListUrl: test␊ - scheme: http␊ - silentLingeringProcesses: true␊ + Error message␊ + Error: test␊ ␊ - > Current directory␊ - packages/build/tests/error/fixtures/cancel␊ + Plugin details␊ + Package: ./plugin.js␊ + Version: 1.0.0␊ + Report issues: https://test.com␊ ␊ - > Config file␊ - packages/build/tests/error/fixtures/cancel/netlify.toml␊ + Error location␊ + In "onPreBuild" event in "./plugin.js" from netlify.toml␊ + STACK TRACE␊ ␊ - > Resolved config␊ + Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel␊ + publish: packages/build/tests/error/fixtures/plugin_homepage_no_repo␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin␊ - ␊ - > Context␊ - production␊ - ␊ - > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - Build canceled by ./plugin ␊ - ────────────────────────────────────────────────────────────────␊ + package: ./plugin.js␊ ␊ - test␊ - ` - -> Snapshot 2 - - [ - { - body: '', - headers: 'accept accept-encoding authorization connection content-length host user-agent', - method: 'POST', - url: '/api/v1/deploys/test/cancel', - }, - ] + Error monitoring payload:␊ + {␊ + "errorClass": "pluginInternal",␊ + "errorMessage": "test",␊ + "context": "Plugin /"./plugin.js/" internal error",␊ + "groupingHash": "Plugin /"./plugin.js/" internal error/ntest",␊ + "severity": "info",␊ + "unhandled": false,␊ + "location": {␊ + "event": "onPreBuild",␊ + "packageName": "./plugin.js",␊ + "loadedFrom": "local",␊ + "origin": "config"␊ + },␊ + "packageName": "./plugin.js",␊ + "pluginPackageJson": true,␊ + "homepage": "https://test.com",␊ + "other": {␊ + "groupingHash": "Plugin /"./plugin.js/" internal error/ntest"␊ + }␊ + }` -## build.cancelBuild() API call failure +## Report plugin origin > Snapshot 1 @@ -2996,80 +2998,87 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - deployId: test␊ - repositoryRoot: packages/build/tests/error/fixtures/cancel␊ + repositoryRoot: packages/build/tests/error/fixtures/plugin_origin␊ testOpts:␊ - env: false␊ - host: ...␊ + errorMonitor: true␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/cancel␊ + packages/build/tests/error/fixtures/plugin_origin␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/cancel/netlify.toml␊ + packages/build/tests/error/fixtures/plugin_origin/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel␊ + publish: packages/build/tests/error/fixtures/plugin_origin␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ - origin: config␊ - package: ./plugin␊ + origin: ui␊ + package: ./plugin.js␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ + - ./plugin.js@1.0.0 from Netlify app␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + 1. onPreBuild command from ./plugin.js ␊ ────────────────────────────────────────────────────────────────␊ ␊ ␊ ────────────────────────────────────────────────────────────────␊ - API error on "cancelSiteDeploy" ␊ + Plugin "./plugin.js" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - request to https://.../api/v1.0.0/deploys/test/cancel failed, reason: getaddrinfo ENOTFOUND ...␊ + Error: test␊ ␊ - Error location␊ - While calling the Netlify API endpoint 'cancelSiteDeploy' with:␊ - {␊ - "deploy_id": "test"␊ - }␊ + Plugin details␊ + Package: ./plugin.js␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ - Error properties␊ - {␊ - type: 'system',␊ - errno: 'ENOTFOUND',␊ - code: 'ENOTFOUND',␊ - name: 'FetchError',␊ - url: 'https://.../api/v1.0.0/deploys/test/cancel',␊ - data: {␊ - method: 'POST',␊ - headers: {␊ - 'User-agent': 'netlify/js-client',␊ - accept: 'application/json',␊ - Authorization: 'Bearer test'␊ - }␊ - }␊ - }␊ + Error location␊ + In "onPreBuild" event in "./plugin.js" from Netlify app␊ + STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel␊ + publish: packages/build/tests/error/fixtures/plugin_origin␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ - origin: config␊ - package: ./plugin` + origin: ui␊ + package: ./plugin.js␊ + ␊ + Error monitoring payload:␊ + {␊ + "errorClass": "pluginInternal",␊ + "errorMessage": "test",␊ + "context": "Plugin /"./plugin.js/" internal error",␊ + "groupingHash": "Plugin /"./plugin.js/" internal error/ntest",␊ + "severity": "info",␊ + "unhandled": false,␊ + "location": {␊ + "event": "onPreBuild",␊ + "packageName": "./plugin.js",␊ + "loadedFrom": "local",␊ + "origin": "ui"␊ + },␊ + "packageName": "./plugin.js",␊ + "pluginPackageJson": true,␊ + "homepage": "git+https://github.com/netlify/build.git",␊ + "other": {␊ + "groupingHash": "Plugin /"./plugin.js/" internal error/ntest"␊ + }␊ + }` -## build.cancelBuild() API call no DEPLOY_ID +## Report build logs URLs > Snapshot 1 @@ -3083,47 +3092,75 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/cancel␊ + repositoryRoot: packages/build/tests/error/fixtures/command␊ testOpts:␊ - host: /test/socket␊ + errorMonitor: 'true'␊ pluginsListUrl: test␊ - scheme: http␊ - silentLingeringProcesses: true␊ + silentLingeringProcesses: 'true'␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/cancel␊ + packages/build/tests/error/fixtures/command␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/cancel/netlify.toml␊ + packages/build/tests/error/fixtures/command/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin␊ ␊ > Context␊ production␊ ␊ - > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ - ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + 1. build.command from netlify.toml ␊ ────────────────────────────────────────────────────────────────␊ ␊ + $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - Build canceled by ./plugin ␊ + "build.command" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ - test␊ - ` + Error message␊ + Command failed with exit code 9: node --invalid␊ + ␊ + Error location␊ + In build.command from netlify.toml:␊ + node --invalid␊ + ␊ + Resolved config␊ + build:␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command␊ + publishOrigin: default␊ + ␊ + Error monitoring payload:␊ + {␊ + "errorClass": "buildCommand",␊ + "errorMessage": "Command failed with exit code 9: node --invalid",␊ + "context": "node --invalid",␊ + "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid",␊ + "severity": "info",␊ + "unhandled": false,␊ + "location": {␊ + "buildLogs": "https://app.netlify.com/sites/testSiteName/deploys/testDeployId",␊ + "buildCommand": "node --invalid",␊ + "buildCommandOrigin": "config",␊ + "configPath": "packages/build/tests/error/fixtures/command/netlify.toml"␊ + },␊ + "pluginPackageJson": false,␊ + "other": {␊ + "groupingHash": "node --invalid/nCommand failed with exit code 0: node --invalid"␊ + }␊ + }␊ + ␊ + node: bad option: --invalid` -## build.cancelBuild() API call no token +## Top-level errors > Snapshot 1 @@ -3137,23 +3174,20 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - deployId: test␊ - repositoryRoot: packages/build/tests/error/fixtures/cancel␊ + repositoryRoot: packages/build/tests/error/fixtures/top␊ testOpts:␊ - host: /test/socket␊ pluginsListUrl: test␊ - scheme: http␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/cancel␊ + packages/build/tests/error/fixtures/top␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/cancel/netlify.toml␊ + packages/build/tests/error/fixtures/top/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel␊ + publish: packages/build/tests/error/fixtures/top␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -3167,18 +3201,33 @@ Generated by [AVA](https://ava.li). - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + Plugin "./plugin" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ + Error message␊ + Error: Could not import plugin:␊ + test␊ ␊ - ────────────────────────────────────────────────────────────────␊ - Build canceled by ./plugin ␊ - ────────────────────────────────────────────────────────────────␊ + Plugin details␊ + Package: ./plugin␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ - test␊ - ` + Error location␊ + While loading "./plugin" from netlify.toml␊ + STACK TRACE␊ + ␊ + Resolved config␊ + build:␊ + publish: packages/build/tests/error/fixtures/top␊ + publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin` -## build.cancelBuild() error option +## Top function errors local > Snapshot 1 @@ -3192,20 +3241,20 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/cancel_error_option␊ + repositoryRoot: packages/build/tests/error/fixtures/function␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/cancel_error_option␊ + packages/build/tests/error/fixtures/function␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/cancel_error_option/netlify.toml␊ + packages/build/tests/error/fixtures/function/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel_error_option␊ + publish: packages/build/tests/error/fixtures/function␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -3219,19 +3268,33 @@ Generated by [AVA](https://ava.li). - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + Plugin "./plugin" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ + Error message␊ + Error: Could not load plugin:␊ + test␊ ␊ - ────────────────────────────────────────────────────────────────␊ - Build canceled by ./plugin ␊ - ────────────────────────────────────────────────────────────────␊ + Plugin details␊ + Package: ./plugin␊ + Version: 1.0.0␊ + Repository: git+https://github.com/netlify/build.git␊ + Report issues: https://github.com/netlify/build/issues␊ ␊ - test␊ - innerTest␊ - ` + Error location␊ + While loading "./plugin" from netlify.toml␊ + STACK TRACE␊ + ␊ + Resolved config␊ + build:␊ + publish: packages/build/tests/error/fixtures/function␊ + publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: ./plugin` -## build.cancelBuild() inside a callback +## Node module all fields > Snapshot 1 @@ -3245,45 +3308,65 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/cancel_callback␊ + repositoryRoot: packages/build/tests/error/fixtures/full␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/cancel_callback␊ + packages/build/tests/error/fixtures/full␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/cancel_callback/netlify.toml␊ + packages/build/tests/error/fixtures/full/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel_callback␊ + publish: packages/build/tests/error/fixtures/full␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin␊ + package: netlify-plugin-test␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ + - netlify-plugin-test@1.0.0 from netlify.toml and package.json␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + 1. onPreBuild command from netlify-plugin-test ␊ ────────────────────────────────────────────────────────────────␊ ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Build canceled by ./plugin ␊ + Plugin "netlify-plugin-test" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ - test␊ - ` + Error message␊ + Error: test␊ + ␊ + Plugin details␊ + Package: netlify-plugin-test␊ + Version: 1.0.0␊ + Repository: git+https://github.com/test/test.git␊ + npm link: https://www.npmjs.com/package/netlify-plugin-test␊ + Report issues: https://test.com/test␊ + ␊ + Error location␊ + In "onPreBuild" event in "netlify-plugin-test" from netlify.toml and package.json␊ + STACK TRACE␊ + ␊ + Resolved config␊ + build:␊ + publish: packages/build/tests/error/fixtures/full␊ + publishOrigin: default␊ + plugins:␊ + - inputs: {}␊ + origin: config␊ + package: netlify-plugin-test` -## build.cancelBuild() is not available within post-deploy events +## Node module partial fields > Snapshot 1 @@ -3297,73 +3380,61 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/cancel_post_deploy␊ + repositoryRoot: packages/build/tests/error/fixtures/partial␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/cancel_post_deploy␊ + packages/build/tests/error/fixtures/partial␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/cancel_post_deploy/netlify.toml␊ + packages/build/tests/error/fixtures/partial/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel_post_deploy␊ + publish: packages/build/tests/error/fixtures/partial␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin␊ + package: netlify-plugin-test␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ + - netlify-plugin-test from netlify.toml and package.json␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onEnd command from ./plugin ␊ + 1. onPreBuild command from netlify-plugin-test ␊ ────────────────────────────────────────────────────────────────␊ ␊ - Plugin error: since "onEnd" happens after deploy, the build has already succeeded and cannot fail anymore. This plugin should either:␊ - - use utils.build.failPlugin() instead of utils.build.cancelBuild() to clarify that the plugin failed, but not the build.␊ - - use "onPostBuild" instead of "onEnd" if the plugin failure should make the build fail too. Please note that "onPostBuild" (unlike "onEnd") happens before deploy.␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" failed ␊ + Plugin "netlify-plugin-test" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ Error: test␊ ␊ Plugin details␊ - Package: ./plugin␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ + Package: netlify-plugin-test␊ ␊ Error location␊ - In "onEnd" event in "./plugin" from netlify.toml␊ + In "onPreBuild" event in "netlify-plugin-test" from netlify.toml and package.json␊ STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/cancel_post_deploy␊ + publish: packages/build/tests/error/fixtures/partial␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - Netlify Build Complete ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - (Netlify Build completed in 1ms)` + package: netlify-plugin-test` -## build.failBuild() +## No repository root > Snapshot 1 @@ -3377,64 +3448,58 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/fail_build␊ + repositoryRoot: /tmp-dir␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/fail_build␊ + /tmp-dir␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/fail_build/netlify.toml␊ + /tmp-dir/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_build␊ + publish: /tmp-dir␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin␊ + package: ./plugin.js␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ + - ./plugin.js from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + 1. onPreBuild command from ./plugin.js ␊ ────────────────────────────────────────────────────────────────␊ ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" failed ␊ + Plugin "./plugin.js" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ Error: test␊ - ␊ - Plugin details␊ - Package: ./plugin␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin" from netlify.toml␊ + In "onPreBuild" event in "./plugin.js" from netlify.toml␊ STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_build␊ + publish: /tmp-dir␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin` + package: ./plugin.js` -## build.failBuild() error option +## Process warnings > Snapshot 1 @@ -3448,20 +3513,20 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/fail_build_error_option␊ + repositoryRoot: packages/build/tests/error/fixtures/warning␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/fail_build_error_option␊ + packages/build/tests/error/fixtures/warning␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/fail_build_error_option/netlify.toml␊ + packages/build/tests/error/fixtures/warning/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_build_error_option␊ + publish: packages/build/tests/error/fixtures/warning␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -3478,35 +3543,21 @@ Generated by [AVA](https://ava.li). 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ + onPreBuild␊ + ␊ + (./plugin onPreBuild completed in 1ms)␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" failed ␊ + Netlify Build Complete ␊ ────────────────────────────────────────────────────────────────␊ ␊ - Error message␊ - Error: test␊ - innerTest␊ - ␊ - Plugin details␊ - Package: ./plugin␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ + (Netlify Build completed in 1ms)␊ ␊ - Error location␊ - In "onPreBuild" event in "./plugin" from netlify.toml␊ + ‼ warning (Warning) test␊ STACK TRACE␊ - ␊ - Resolved config␊ - build:␊ - publish: packages/build/tests/error/fixtures/fail_build_error_option␊ - publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin` + STACK TRACE` -## build.failBuild() inside a callback +## Uncaught exception > Snapshot 1 @@ -3520,20 +3571,20 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/fail_build_callback␊ + repositoryRoot: packages/build/tests/error/fixtures/uncaught␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/fail_build_callback␊ + packages/build/tests/error/fixtures/uncaught␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/fail_build_callback/netlify.toml␊ + packages/build/tests/error/fixtures/uncaught/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_build_callback␊ + publish: packages/build/tests/error/fixtures/uncaught␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -3552,11 +3603,11 @@ Generated by [AVA](https://ava.li). ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" failed ␊ + Plugin "./plugin" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: test␊ + UncaughtException: an exception was thrown but not caught: Error: test␊ ␊ Plugin details␊ Package: ./plugin␊ @@ -3570,14 +3621,14 @@ Generated by [AVA](https://ava.li). ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_build_callback␊ + publish: packages/build/tests/error/fixtures/uncaught␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ package: ./plugin` -## build.failBuild() is not available within post-deploy events +## Unhandled promises > Snapshot 1 @@ -3591,20 +3642,20 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/fail_build_post_deploy␊ + repositoryRoot: packages/build/tests/error/fixtures/unhandled_promise␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/fail_build_post_deploy␊ + packages/build/tests/error/fixtures/unhandled_promise␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/fail_build_post_deploy/netlify.toml␊ + packages/build/tests/error/fixtures/unhandled_promise/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_build_post_deploy␊ + publish: packages/build/tests/error/fixtures/unhandled_promise␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -3618,19 +3669,17 @@ Generated by [AVA](https://ava.li). - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onEnd command from ./plugin ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ - Plugin error: since "onEnd" happens after deploy, the build has already succeeded and cannot fail anymore. This plugin should either:␊ - - use utils.build.failPlugin() instead of utils.build.failBuild() to clarify that the plugin failed, but not the build.␊ - - use "onPostBuild" instead of "onEnd" if the plugin failure should make the build fail too. Please note that "onPostBuild" (unlike "onEnd") happens before deploy.␊ + onPreBuild␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" failed ␊ + Plugin "./plugin" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: test␊ + UnhandledRejection: a promise was rejected but not handled: Error: test␊ ␊ Plugin details␊ Package: ./plugin␊ @@ -3639,25 +3688,19 @@ Generated by [AVA](https://ava.li). Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In "onEnd" event in "./plugin" from netlify.toml␊ + In "onPreBuild" event in "./plugin" from netlify.toml␊ STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_build_post_deploy␊ + publish: packages/build/tests/error/fixtures/unhandled_promise␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - Netlify Build Complete ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - (Netlify Build completed in 1ms)` + package: ./plugin` -## build.failPlugin() +## Exits in plugins > Snapshot 1 @@ -3671,25 +3714,22 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/fail_plugin␊ + repositoryRoot: packages/build/tests/error/fixtures/plugin_exit␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/fail_plugin␊ + packages/build/tests/error/fixtures/plugin_exit␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/fail_plugin/netlify.toml␊ + packages/build/tests/error/fixtures/plugin_exit/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_plugin␊ + publish: packages/build/tests/error/fixtures/plugin_exit␊ publishOrigin: default␊ plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin_two␊ - inputs: {}␊ origin: config␊ package: ./plugin␊ @@ -3698,28 +3738,24 @@ Generated by [AVA](https://ava.li). production␊ ␊ > Loading plugins␊ - - ./plugin_two@1.0.0 from netlify.toml␊ - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin_two ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - onPreBuild␊ - ␊ - (./plugin_two onPreBuild completed in 1ms)␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - 2. onPreBuild command from ./plugin ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" failed ␊ + Plugin "./plugin" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: test␊ + Plugin exited with exit code 1 and signal null.␊ + The plugin might have exited due to a bug terminating the process, such as an infinite loop.␊ + The plugin might also have explicitly terminated the process, for example with process.exit().␊ + Plugin methods should instead:␊ + - on success: return␊ + - on failure: call utils.build.failPlugin() or utils.build.failBuild()␊ ␊ Plugin details␊ Package: ./plugin␊ @@ -3729,35 +3765,17 @@ Generated by [AVA](https://ava.li). ␊ Error location␊ In "onPreBuild" event in "./plugin" from netlify.toml␊ - STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_plugin␊ + publish: packages/build/tests/error/fixtures/plugin_exit␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin_two␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - 3. onBuild command from ./plugin_two ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - onBuild␊ - ␊ - (./plugin_two onBuild completed in 1ms)␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - Netlify Build Complete ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - (Netlify Build completed in 1ms)` + package: ./plugin` -## build.failPlugin() error option +## Plugin errors can have a toJSON() method > Snapshot 1 @@ -3771,25 +3789,22 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/fail_plugin_error_option␊ + repositoryRoot: packages/build/tests/error/fixtures/plugin_error_to_json␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/fail_plugin_error_option␊ + packages/build/tests/error/fixtures/plugin_error_to_json␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/fail_plugin_error_option/netlify.toml␊ + packages/build/tests/error/fixtures/plugin_error_to_json/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_plugin_error_option␊ + publish: packages/build/tests/error/fixtures/plugin_error_to_json␊ publishOrigin: default␊ plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin_two␊ - inputs: {}␊ origin: config␊ package: ./plugin␊ @@ -3798,19 +3813,10 @@ Generated by [AVA](https://ava.li). production␊ ␊ > Loading plugins␊ - - ./plugin_two@1.0.0 from netlify.toml␊ - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin_two ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - onPreBuild␊ - ␊ - (./plugin_two onPreBuild completed in 1ms)␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - 2. onPreBuild command from ./plugin ␊ + 1. onPreBuild command from ./plugin ␊ ────────────────────────────────────────────────────────────────␊ ␊ ␊ @@ -3819,8 +3825,8 @@ Generated by [AVA](https://ava.li). ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: test␊ - innerTest␊ + Error: message␊ + test␊ ␊ Plugin details␊ Package: ./plugin␊ @@ -3834,31 +3840,14 @@ Generated by [AVA](https://ava.li). ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_plugin_error_option␊ + publish: packages/build/tests/error/fixtures/plugin_error_to_json␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin_two␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - 3. onBuild command from ./plugin_two ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - onBuild␊ - ␊ - (./plugin_two onBuild completed in 1ms)␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - Netlify Build Complete ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - (Netlify Build completed in 1ms)` + package: ./plugin` -## build.failPlugin() inside a callback +## Print stack trace of plugin errors > Snapshot 1 @@ -3872,20 +3861,20 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/fail_plugin_callback␊ + repositoryRoot: packages/build/tests/error/fixtures/plugin_stack␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/fail_plugin_callback␊ + packages/build/tests/error/fixtures/plugin_stack␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/fail_plugin_callback/netlify.toml␊ + packages/build/tests/error/fixtures/plugin_stack/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_plugin_callback␊ + publish: packages/build/tests/error/fixtures/plugin_stack␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ @@ -3904,7 +3893,7 @@ Generated by [AVA](https://ava.li). ␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" failed ␊ + Plugin "./plugin" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ @@ -3922,20 +3911,14 @@ Generated by [AVA](https://ava.li). ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/fail_plugin_callback␊ + publish: packages/build/tests/error/fixtures/plugin_stack␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - Netlify Build Complete ␊ - ────────────────────────────────────────────────────────────────␊ - ␊ - (Netlify Build completed in 1ms)` + package: ./plugin` -## exception +## Print stack trace of plugin errors during load > Snapshot 1 @@ -3949,43 +3932,39 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/exception␊ + repositoryRoot: packages/build/tests/error/fixtures/plugin_load␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/exception␊ + packages/build/tests/error/fixtures/plugin_load␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/exception/netlify.toml␊ + packages/build/tests/error/fixtures/plugin_load/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/exception␊ + publish: packages/build/tests/error/fixtures/plugin_load␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ package: ./plugin␊ ␊ - > Context␊ - production␊ - ␊ - > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ - ␊ - ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ - ────────────────────────────────────────────────────────────────␊ + > Context␊ + production␊ ␊ + > Loading plugins␊ + - ./plugin@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ Plugin "./plugin" internal error ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: test␊ + Error: Could not import plugin:␊ + test␊ ␊ Plugin details␊ Package: ./plugin␊ @@ -3994,19 +3973,19 @@ Generated by [AVA](https://ava.li). Report issues: https://github.com/netlify/build/issues␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin" from netlify.toml␊ + While loading "./plugin" from netlify.toml␊ STACK TRACE␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/exception␊ + publish: packages/build/tests/error/fixtures/plugin_load␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ package: ./plugin` -## exception that are arrays +## Print stack trace of build.command errors > Snapshot 1 @@ -4020,67 +3999,54 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/exception_array␊ + repositoryRoot: packages/build/tests/error/fixtures/command_stack␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/exception_array␊ + packages/build/tests/error/fixtures/command_stack␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/exception_array/netlify.toml␊ + packages/build/tests/error/fixtures/command_stack/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/exception_array␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command_stack␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin␊ ␊ > Context␊ production␊ ␊ - > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ - ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + 1. build.command from netlify.toml ␊ ────────────────────────────────────────────────────────────────␊ ␊ + $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" internal error ␊ + "build.command" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: test␊ - ␊ - Plugin details␊ - Package: ./plugin␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ + Command failed with exit code 9: node --invalid␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin" from netlify.toml␊ - STACK TRACE␊ - ␊ - Error properties␊ - { errors: [ {} ] }␊ + In build.command from netlify.toml:␊ + node --invalid␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/exception_array␊ + command: node --invalid␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command_stack␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin` + ␊ + node: bad option: --invalid` -## exception that are strings +## Print stack trace of build.command errors with stack traces > Snapshot 1 @@ -4094,64 +4060,54 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/exception_string␊ + repositoryRoot: packages/build/tests/error/fixtures/command_full_stack␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/exception_string␊ + packages/build/tests/error/fixtures/command_full_stack␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/exception_string/netlify.toml␊ + packages/build/tests/error/fixtures/command_full_stack/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/exception_string␊ + command: node command.js␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command_full_stack␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin␊ ␊ > Context␊ production␊ ␊ - > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ - ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + 1. build.command from netlify.toml ␊ ────────────────────────────────────────────────────────────────␊ ␊ + $ node command.js␊ + Error: test␊ + STACK TRACE␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" internal error ␊ + "build.command" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: test␊ - ␊ - Plugin details␊ - Package: ./plugin␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ + Command failed with exit code 2: node command.js␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin" from netlify.toml␊ - STACK TRACE␊ + In build.command from netlify.toml:␊ + node command.js␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/exception_string␊ - publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin` + command: node command.js␊ + commandOrigin: config␊ + publish: packages/build/tests/error/fixtures/command_full_stack␊ + publishOrigin: default` -## exception with circular references +## Print stack trace of Build command UI settings > Snapshot 1 @@ -4165,67 +4121,82 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/exception_circular␊ + repositoryRoot: packages/build/tests/error/fixtures/none␊ testOpts:␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/exception_circular␊ + packages/build/tests/error/fixtures/none␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/exception_circular/netlify.toml␊ + No config file was defined: using default values.␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/exception_circular␊ + command: node --invalid␊ + commandOrigin: ui␊ + publish: packages/build/tests/error/fixtures/none␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin␊ ␊ > Context␊ production␊ ␊ - > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ - ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + 1. Build command from Netlify app ␊ ────────────────────────────────────────────────────────────────␊ ␊ + $ node --invalid␊ ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" internal error ␊ + "build.command" failed ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: test␊ - ␊ - Plugin details␊ - Package: ./plugin␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ + Command failed with exit code 9: node --invalid␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin" from netlify.toml␊ - STACK TRACE␊ - ␊ - Error properties␊ - { test: true, prop: null, objectProp: { self: '[Circular]' } }␊ + In Build command from Netlify app:␊ + node --invalid␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/exception_circular␊ + command: node --invalid␊ + commandOrigin: ui␊ + publish: packages/build/tests/error/fixtures/none␊ publishOrigin: default␊ - plugins:␊ - - inputs: {}␊ - origin: config␊ - package: ./plugin` + ␊ + node: bad option: --invalid` -## exception with static properties +## Print stack trace of validation errors + +> Snapshot 1 + + `␊ + ────────────────────────────────────────────────────────────────␊ + Netlify Build ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + > Version␊ + @netlify/build 1.0.0␊ + ␊ + > Flags␊ + config: /external/path␊ + debug: true␊ + testOpts:␊ + pluginsListUrl: test␊ + silentLingeringProcesses: true␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + Configuration error ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + Error message␊ + When resolving config file /external/path␊ + Configuration file does not exist␊ + ` + +## Redact API token on errors > Snapshot 1 @@ -4239,62 +4210,91 @@ Generated by [AVA](https://ava.li). ␊ > Flags␊ debug: true␊ - repositoryRoot: packages/build/tests/error/fixtures/exception_props␊ + deployId: test␊ + mode: buildbot␊ + repositoryRoot: packages/build/tests/error/fixtures/api_token_redact␊ testOpts:␊ + host: ...␊ pluginsListUrl: test␊ silentLingeringProcesses: true␊ ␊ > Current directory␊ - packages/build/tests/error/fixtures/exception_props␊ + packages/build/tests/error/fixtures/api_token_redact␊ ␊ > Config file␊ - packages/build/tests/error/fixtures/exception_props/netlify.toml␊ + packages/build/tests/error/fixtures/api_token_redact/netlify.toml␊ ␊ > Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/exception_props␊ + publish: packages/build/tests/error/fixtures/api_token_redact␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin␊ + package: ./plugin.js␊ ␊ > Context␊ production␊ ␊ > Loading plugins␊ - - ./plugin@1.0.0 from netlify.toml␊ + - ./plugin.js@1.0.0 from netlify.toml␊ ␊ ────────────────────────────────────────────────────────────────␊ - 1. onPreBuild command from ./plugin ␊ + 1. onPreBuild command from ./plugin.js ␊ ────────────────────────────────────────────────────────────────␊ ␊ ␊ + (./plugin.js onPreBuild completed in 1ms)␊ + ␊ ────────────────────────────────────────────────────────────────␊ - Plugin "./plugin" internal error ␊ + API error on "createPluginRun" ␊ ────────────────────────────────────────────────────────────────␊ ␊ Error message␊ - Error: test␊ - ␊ - Plugin details␊ - Package: ./plugin␊ - Version: 1.0.0␊ - Repository: git+https://github.com/netlify/build.git␊ - Report issues: https://github.com/netlify/build/issues␊ + request to https://.../api/v1.0.0/deploys/test/plugin_runs failed, reason: getaddrinfo ENOTFOUND ...␊ ␊ Error location␊ - In "onPreBuild" event in "./plugin" from netlify.toml␊ - STACK TRACE␊ + While calling the Netlify API endpoint 'createPluginRun' with:␊ + {␊ + "deploy_id": "test",␊ + "body": {␊ + "package": "./plugin.js",␊ + "version": "1.0.0",␊ + "state": "success",␊ + "reporting_event": "onPreBuild"␊ + }␊ + }␊ ␊ Error properties␊ - { test: true, type: 'test' }␊ + {␊ + type: 'system',␊ + errno: 'ENOTFOUND',␊ + code: 'ENOTFOUND',␊ + name: 'FetchError',␊ + url: 'https://.../api/v1.0.0/deploys/test/plugin_runs',␊ + data: {␊ + method: 'POST',␊ + headers: {␊ + 'Content-Type': 'application/json',␊ + 'User-agent': 'netlify/js-client',␊ + accept: 'application/json',␊ + Authorization: 'Bearer HEX'␊ + },␊ + body: '{"package":"./plugin.js","version":"1.0.0","state":"success","reporting_event":"onPreBuild"}'␊ + }␊ + }␊ ␊ Resolved config␊ build:␊ - publish: packages/build/tests/error/fixtures/exception_props␊ + publish: packages/build/tests/error/fixtures/api_token_redact␊ publishOrigin: default␊ plugins:␊ - inputs: {}␊ origin: config␊ - package: ./plugin` + package: ./plugin.js␊ + ␊ + ────────────────────────────────────────────────────────────────␊ + Netlify Build Complete ␊ + ────────────────────────────────────────────────────────────────␊ + ␊ + (Netlify Build completed in 1ms)` diff --git a/packages/build/tests/error/snapshots/tests.js.snap b/packages/build/tests/error/snapshots/tests.js.snap index 078c724300..05261d21ca 100644 Binary files a/packages/build/tests/error/snapshots/tests.js.snap and b/packages/build/tests/error/snapshots/tests.js.snap differ diff --git a/packages/build/tests/helpers/normalize.js b/packages/build/tests/helpers/normalize.js index 1eaef4ea5d..d204a66d5c 100644 --- a/packages/build/tests/helpers/normalize.js +++ b/packages/build/tests/helpers/normalize.js @@ -93,9 +93,7 @@ const NORMALIZE_REGEXPS = [ // CI tests show some error messages differently [/\/file\/path bad option/g, 'node: bad option'], // Stack traces - // @todo Remove once we drop support for Node 8. [/Require stack:\s+( *-\s+\S*\s{0,1})*/gm, ''], - [/(Require stack:\n)(\s*- (.*))*/gm, '$1 REQUIRE STACK\n'], [/{ Error:/g, 'Error:'], [/^.*:\d+:\d+\)?$/gm, 'STACK TRACE'], [/^\s+at .*$/gm, 'STACK TRACE'], diff --git a/packages/build/tests/plugins/fixtures/config_mutate_headers_before/plugin.js b/packages/build/tests/plugins/fixtures/config_mutate_headers_before/plugin.js index a66660da7b..ec65d3a7ce 100644 --- a/packages/build/tests/plugins/fixtures/config_mutate_headers_before/plugin.js +++ b/packages/build/tests/plugins/fixtures/config_mutate_headers_before/plugin.js @@ -1,6 +1,9 @@ 'use strict' -const cpFile = require('cp-file') +const { copyFile } = require('fs') +const { promisify } = require('util') + +const pCopyFile = promisify(copyFile) const fixtureHeadersPath = `${__dirname}/headers_file` const headersPath = `${__dirname}/_headers` @@ -11,7 +14,7 @@ module.exports = { netlifyConfig.headers = [...netlifyConfig.headers, { for: '/path', values: { test: 'two' } }] }, async onBuild() { - await cpFile(fixtureHeadersPath, headersPath) + await pCopyFile(fixtureHeadersPath, headersPath) }, onPostBuild({ netlifyConfig: { headers } }) { console.log(headers) diff --git a/packages/build/tests/plugins/fixtures/config_mutate_redirects_before/plugin.js b/packages/build/tests/plugins/fixtures/config_mutate_redirects_before/plugin.js index c68bc7e726..8aaaebe419 100644 --- a/packages/build/tests/plugins/fixtures/config_mutate_redirects_before/plugin.js +++ b/packages/build/tests/plugins/fixtures/config_mutate_redirects_before/plugin.js @@ -1,17 +1,20 @@ 'use strict' -const cpFile = require('cp-file') +const { copyFile } = require('fs') +const { promisify } = require('util') const fixtureRedirectsPath = `${__dirname}/redirects_file` const redirectsPath = `${__dirname}/_redirects` +const pCopyFile = promisify(copyFile) + module.exports = { onPreBuild({ netlifyConfig }) { // eslint-disable-next-line no-param-reassign netlifyConfig.redirects = [...netlifyConfig.redirects, { from: '/three', to: '/four' }] }, async onBuild() { - await cpFile(fixtureRedirectsPath, redirectsPath) + await pCopyFile(fixtureRedirectsPath, redirectsPath) }, onPostBuild({ netlifyConfig: { redirects } }) { console.log(redirects) diff --git a/packages/build/tests/plugins/fixtures/config_save_headers/plugin.js b/packages/build/tests/plugins/fixtures/config_save_headers/plugin.js index 2cfa7d319a..8d372c72cf 100644 --- a/packages/build/tests/plugins/fixtures/config_save_headers/plugin.js +++ b/packages/build/tests/plugins/fixtures/config_save_headers/plugin.js @@ -1,6 +1,9 @@ 'use strict' -const cpFile = require('cp-file') +const { copyFile } = require('fs') +const { promisify } = require('util') + +const pCopyFile = promisify(copyFile) const fixtureHeadersPath = `${__dirname}/_headers_file` const headersPath = `${__dirname}/_headers` @@ -11,7 +14,7 @@ module.exports = { netlifyConfig.headers = [...netlifyConfig.headers, { for: '/path', values: { test: 'two' } }] }, async onBuild() { - await cpFile(fixtureHeadersPath, headersPath) + await pCopyFile(fixtureHeadersPath, headersPath) }, onPostBuild({ netlifyConfig: { headers } }) { console.log(headers) diff --git a/packages/build/tests/plugins/fixtures/config_save_redirects/plugin.js b/packages/build/tests/plugins/fixtures/config_save_redirects/plugin.js index 628cbca1e1..30328d4cb1 100644 --- a/packages/build/tests/plugins/fixtures/config_save_redirects/plugin.js +++ b/packages/build/tests/plugins/fixtures/config_save_redirects/plugin.js @@ -1,6 +1,9 @@ 'use strict' -const cpFile = require('cp-file') +const { copyFile } = require('fs') +const { promisify } = require('util') + +const pCopyFile = promisify(copyFile) const fixtureRedirectsPath = `${__dirname}/_redirects_file` const redirectsPath = `${__dirname}/_redirects` @@ -11,7 +14,7 @@ module.exports = { netlifyConfig.redirects = [...netlifyConfig.redirects, { from: '/one', to: '/two' }] }, async onBuild() { - await cpFile(fixtureRedirectsPath, redirectsPath) + await pCopyFile(fixtureRedirectsPath, redirectsPath) }, onSuccess({ netlifyConfig }) { console.log(netlifyConfig.redirects) diff --git a/packages/build/tests/plugins/tests.js b/packages/build/tests/plugins/tests.js index a765230cbe..d83772d672 100644 --- a/packages/build/tests/plugins/tests.js +++ b/packages/build/tests/plugins/tests.js @@ -1,13 +1,12 @@ 'use strict' -const { writeFile } = require('fs') +const { writeFile, copyFile } = require('fs') const { normalize } = require('path') const { platform, version } = require('process') const { promisify } = require('util') const { pluginsList } = require('@netlify/plugins-list') const test = require('ava') -const cpFile = require('cp-file') const cpy = require('cpy') const del = require('del') const pathExists = require('path-exists') @@ -20,6 +19,7 @@ const { startTcpServer } = require('../helpers/tcp_server') const { getTempDir } = require('../helpers/temp') const pWriteFile = promisify(writeFile) +const pCopyFile = promisify(copyFile) test('Pass netlifyConfig to plugins', async (t) => { await runFixture(t, 'config_valid') @@ -241,7 +241,7 @@ if (!version.startsWith('v10.')) { const configPath = `${fixtureDir}/test_netlify.toml` const fixtureHeadersPath = `${fixtureDir}/_headers_file` const headersPath = `${fixtureDir}/_headers` - await Promise.all([cpFile(fixtureConfigPath, configPath), cpFile(fixtureHeadersPath, headersPath)]) + await Promise.all([pCopyFile(fixtureConfigPath, configPath), pCopyFile(fixtureHeadersPath, headersPath)]) const { address, stopServer } = await startDeployServer() try { try { @@ -268,7 +268,7 @@ if (!version.startsWith('v10.')) { const configPath = `${fixtureDir}/test_netlify.toml` const fixtureHeadersPath = `${fixtureDir}/_headers_file` const headersPath = `${fixtureDir}/_headers` - await Promise.all([cpFile(fixtureConfigPath, configPath), cpFile(fixtureHeadersPath, headersPath)]) + await Promise.all([pCopyFile(fixtureConfigPath, configPath), pCopyFile(fixtureHeadersPath, headersPath)]) const { address, stopServer } = await startDeployServer() try { try { @@ -294,7 +294,7 @@ if (!version.startsWith('v10.')) { const fixtureConfigPath = `${fixtureDir}/netlify.toml` const configPath = `${fixtureDir}/test_netlify.toml` const headersPath = `${fixtureDir}/_headers` - await cpFile(fixtureConfigPath, configPath) + await pCopyFile(fixtureConfigPath, configPath) const { address, stopServer } = await startDeployServer() try { try { @@ -321,7 +321,7 @@ if (!version.startsWith('v10.')) { const fixtureConfigPath = `${fixtureDir}/netlify.toml` const configPath = `${fixtureDir}/test_netlify.toml` const headersPath = `${fixtureDir}/_headers` - await cpFile(fixtureConfigPath, configPath) + await pCopyFile(fixtureConfigPath, configPath) const { address, stopServer } = await startDeployServer() try { try { @@ -367,7 +367,7 @@ if (!version.startsWith('v10.')) { const configPath = `${fixtureDir}/test_netlify.toml` const fixtureRedirectsPath = `${fixtureDir}/_redirects_file` const redirectsPath = `${fixtureDir}/_redirects` - await Promise.all([cpFile(fixtureConfigPath, configPath), cpFile(fixtureRedirectsPath, redirectsPath)]) + await Promise.all([pCopyFile(fixtureConfigPath, configPath), pCopyFile(fixtureRedirectsPath, redirectsPath)]) const { address, stopServer } = await startDeployServer() try { try { @@ -394,7 +394,7 @@ if (!version.startsWith('v10.')) { const configPath = `${fixtureDir}/test_netlify.toml` const fixtureRedirectsPath = `${fixtureDir}/_redirects_file` const redirectsPath = `${fixtureDir}/_redirects` - await Promise.all([cpFile(fixtureConfigPath, configPath), cpFile(fixtureRedirectsPath, redirectsPath)]) + await Promise.all([pCopyFile(fixtureConfigPath, configPath), pCopyFile(fixtureRedirectsPath, redirectsPath)]) const { address, stopServer } = await startDeployServer() try { try { @@ -468,7 +468,7 @@ test('--saveConfig saves the configuration changes as netlify.toml', async (t) = const fixtureDir = `${FIXTURES_DIR}/config_save_changes` const fixtureConfigPath = `${fixtureDir}/netlify.toml` const configPath = `${fixtureDir}/test_netlify.toml` - await cpFile(fixtureConfigPath, configPath) + await pCopyFile(fixtureConfigPath, configPath) const { address, stopServer } = await startDeployServer() try { await runFixture(t, 'config_save_changes', { @@ -489,7 +489,7 @@ test('--saveConfig is required to save the configuration changes as netlify.toml const fixtureDir = `${FIXTURES_DIR}/config_save_none` const fixtureConfigPath = `${fixtureDir}/netlify.toml` const configPath = `${fixtureDir}/test_netlify.toml` - await cpFile(fixtureConfigPath, configPath) + await pCopyFile(fixtureConfigPath, configPath) const { address, stopServer } = await startDeployServer() try { await runFixture(t, 'config_save_none', { @@ -525,7 +525,7 @@ test('--saveConfig gives higher priority to configuration changes than context p const fixtureDir = `${FIXTURES_DIR}/config_save_context` const fixtureConfigPath = `${fixtureDir}/netlify.toml` const configPath = `${fixtureDir}/test_netlify.toml` - await cpFile(fixtureConfigPath, configPath) + await pCopyFile(fixtureConfigPath, configPath) const { address, stopServer } = await startDeployServer() try { await runFixture(t, 'config_save_context', { diff --git a/packages/cache-utils/CHANGELOG.md b/packages/cache-utils/CHANGELOG.md index 81679b3573..d74732c0df 100644 --- a/packages/cache-utils/CHANGELOG.md +++ b/packages/cache-utils/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.0.2](https://www.github.com/netlify/build/compare/cache-utils-v2.0.1...cache-utils-v2.0.2) (2021-08-16) + + +### Bug Fixes + +* **deps:** update dependency locate-path to v6 ([#3490](https://www.github.com/netlify/build/issues/3490)) ([523b049](https://www.github.com/netlify/build/commit/523b0496c90e4c80fcabd406022a2423b12d0a90)) +* **deps:** update dependency move-file to v2 ([#3492](https://www.github.com/netlify/build/issues/3492)) ([9a71aab](https://www.github.com/netlify/build/commit/9a71aab0b9fdddbc56718b8956ecc0c6e427a8a0)) + ### [2.0.1](https://www.github.com/netlify/build/compare/cache-utils-v2.0.0...cache-utils-v2.0.1) (2021-08-13) diff --git a/packages/cache-utils/package.json b/packages/cache-utils/package.json index f7e62f4db4..e7770af852 100644 --- a/packages/cache-utils/package.json +++ b/packages/cache-utils/package.json @@ -1,6 +1,6 @@ { "name": "@netlify/cache-utils", - "version": "2.0.1", + "version": "2.0.2", "description": "Utility for caching files in Netlify Build", "main": "src/main.js", "files": [ @@ -48,9 +48,9 @@ "del": "^5.1.0", "get-stream": "^6.0.0", "globby": "^10.0.2", - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "make-dir": "^3.1.0", - "move-file": "^1.2.0", + "move-file": "^2.0.0", "path-exists": "^4.0.0", "readdirp": "^3.4.0" }, diff --git a/packages/config/CHANGELOG.md b/packages/config/CHANGELOG.md index d3c3456cf1..6113500e18 100644 --- a/packages/config/CHANGELOG.md +++ b/packages/config/CHANGELOG.md @@ -1,5 +1,85 @@ # Changelog +### [15.3.4](https://www.github.com/netlify/build/compare/config-v15.3.3...config-v15.3.4) (2021-08-16) + + +### Bug Fixes + +* **deps:** update dependency is-plain-obj to v3 ([#3489](https://www.github.com/netlify/build/issues/3489)) ([b353eec](https://www.github.com/netlify/build/commit/b353eece861296ef18de8e19855a6b2e30ac4fba)) +* **deps:** update dependency netlify-headers-parser to ^3.0.1 ([#3508](https://www.github.com/netlify/build/issues/3508)) ([10dbcf8](https://www.github.com/netlify/build/commit/10dbcf87362eb6045a6adfca81a0e4dd638ef567)) +* **deps:** update dependency netlify-redirect-parser to ^11.0.1 ([#3506](https://www.github.com/netlify/build/issues/3506)) ([c07443c](https://www.github.com/netlify/build/commit/c07443c1168f6b81fa8cf80eb418eb9b89d22350)) +* **deps:** update dependency netlify-redirect-parser to ^11.0.2 ([#3509](https://www.github.com/netlify/build/issues/3509)) ([0a412c1](https://www.github.com/netlify/build/commit/0a412c109f9f7ee17596a8d8f546a43c0a54e8c0)) + +### [15.3.3](https://www.github.com/netlify/build/compare/config-v15.3.2...config-v15.3.3) (2021-08-16) + + +### Bug Fixes + +* **deps:** update dependency netlify-headers-parser to v3 ([#3483](https://www.github.com/netlify/build/issues/3483)) ([4e95d96](https://www.github.com/netlify/build/commit/4e95d96d4466907b5356f46fd4ce278b551e6b91)) + +### [15.3.2](https://www.github.com/netlify/build/compare/config-v15.3.1...config-v15.3.2) (2021-08-16) + + +### Bug Fixes + +* **deps:** update dependency p-locate to v5 ([#3495](https://www.github.com/netlify/build/issues/3495)) ([ce07fbc](https://www.github.com/netlify/build/commit/ce07fbccc5e93224e7adab5dc039f9534a49f06b)) + +### [15.3.1](https://www.github.com/netlify/build/compare/config-v15.3.0...config-v15.3.1) (2021-08-13) + + +### Bug Fixes + +* **deps:** update dependency netlify-redirect-parser to v11 ([#3481](https://www.github.com/netlify/build/issues/3481)) ([38ecd1d](https://www.github.com/netlify/build/commit/38ecd1d75fa7a9262abe7a989b784ca95ebd0348)) + +## [15.3.0](https://www.github.com/netlify/build/compare/config-v15.2.0...config-v15.3.0) (2021-08-13) + + +### Features + +* simplify redirects parsing ([#3475](https://www.github.com/netlify/build/issues/3475)) ([21e33a3](https://www.github.com/netlify/build/commit/21e33a3fde17d5c698c73b16778d3e06ec1cafae)) + +## [15.2.0](https://www.github.com/netlify/build/compare/config-v15.1.9...config-v15.2.0) (2021-08-13) + + +### Features + +* simplify headers parsing ([#3468](https://www.github.com/netlify/build/issues/3468)) ([ff601ff](https://www.github.com/netlify/build/commit/ff601ffbabafb0ebe28695b3135d5a922e06a57d)) + +### [15.1.9](https://www.github.com/netlify/build/compare/config-v15.1.8...config-v15.1.9) (2021-08-13) + + +### Bug Fixes + +* **deps:** update dependency netlify-redirect-parser to ^10.1.0 ([#3473](https://www.github.com/netlify/build/issues/3473)) ([2ac8555](https://www.github.com/netlify/build/commit/2ac85554e455150434a4d5f3ea6b00268deb30c5)) + +### [15.1.8](https://www.github.com/netlify/build/compare/config-v15.1.7...config-v15.1.8) (2021-08-13) + + +### Bug Fixes + +* **deps:** remove cp-file usage ([#3470](https://www.github.com/netlify/build/issues/3470)) ([5b98fb4](https://www.github.com/netlify/build/commit/5b98fb494478cc0e7676856ce38f980b406306b9)) + +### [15.1.7](https://www.github.com/netlify/build/compare/config-v15.1.6...config-v15.1.7) (2021-08-13) + + +### Bug Fixes + +* **deps:** update dependency netlify-headers-parser to ^2.1.1 ([#3462](https://www.github.com/netlify/build/issues/3462)) ([4a0f19f](https://www.github.com/netlify/build/commit/4a0f19fcbe8ae0ab1a81ccb24897238675350964)) + +### [15.1.6](https://www.github.com/netlify/build/compare/config-v15.1.5...config-v15.1.6) (2021-08-13) + + +### Bug Fixes + +* **deps:** update dependency netlify-redirect-parser to v10 ([#3460](https://www.github.com/netlify/build/issues/3460)) ([c9a9ecc](https://www.github.com/netlify/build/commit/c9a9ecc960ca73039d1e28d5f1413fb4f530dbb8)) + +### [15.1.5](https://www.github.com/netlify/build/compare/config-v15.1.4...config-v15.1.5) (2021-08-13) + + +### Bug Fixes + +* **deps:** update dependency netlify-headers-parser to ^2.1.0 ([#3458](https://www.github.com/netlify/build/issues/3458)) ([e7665ec](https://www.github.com/netlify/build/commit/e7665ecb7bc1960ca19ba2717a2b2d608ae83bb6)) + ### [15.1.4](https://www.github.com/netlify/build/compare/config-v15.1.3...config-v15.1.4) (2021-08-13) diff --git a/packages/config/package.json b/packages/config/package.json index 0e50140a2a..ddf0611e02 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,6 +1,6 @@ { "name": "@netlify/config", - "version": "15.1.4", + "version": "15.3.4", "description": "Netlify config module", "main": "src/main.js", "bin": { @@ -52,7 +52,6 @@ "@ungap/from-entries": "^0.2.1", "array-flat-polyfill": "^1.0.1", "chalk": "^4.1.2", - "cp-file": "^7.0.0", "deepmerge": "^4.2.2", "dot-prop": "^5.3.0", "execa": "^5.1.1", @@ -61,15 +60,15 @@ "filter-obj": "^2.0.1", "find-up": "^5.0.0", "indent-string": "^4.0.0", - "is-plain-obj": "^2.1.0", + "is-plain-obj": "^3.0.0", "js-yaml": "^4.0.0", "make-dir": "^3.1.0", "map-obj": "^4.0.0", "netlify": "^8.0.0", - "netlify-headers-parser": "^2.0.0", - "netlify-redirect-parser": "^9.1.0", + "netlify-headers-parser": "^3.0.1", + "netlify-redirect-parser": "^11.0.2", "omit.js": "^2.0.2", - "p-locate": "^4.1.0", + "p-locate": "^5.0.0", "path-exists": "^4.0.0", "path-type": "^4.0.0", "toml": "^3.0.0", diff --git a/packages/config/src/headers.js b/packages/config/src/headers.js index f46137992c..d45efe112b 100644 --- a/packages/config/src/headers.js +++ b/packages/config/src/headers.js @@ -2,7 +2,7 @@ const { resolve } = require('path') -const { parseFileHeaders, mergeHeaders, normalizeHeaders } = require('netlify-headers-parser') +const { parseAllHeaders } = require('netlify-headers-parser') const { warnHeadersParsing, warnHeadersException } = require('./log/messages') @@ -15,15 +15,9 @@ const addHeaders = async function (config, logs) { const HEADERS_FILENAME = '_headers' -const addConfigHeaders = async function ({ headers: configHeaders = [], ...config }, headersPath, logs) { +const addConfigHeaders = async function ({ headers: configHeaders, ...config }, headersPath, logs) { try { - const { headers: normalizedConfigHeaders, errors: configNormalizeErrors } = normalizeHeaders(configHeaders) - const { normalizedFileHeaders, fileParseErrors, fileNormalizeErrors } = await getFileHeaders(headersPath) - const { headers, errors: mergeErrors } = mergeHeaders({ - fileHeaders: normalizedFileHeaders, - configHeaders: normalizedConfigHeaders, - }) - const errors = [...configNormalizeErrors, ...fileParseErrors, ...fileNormalizeErrors, ...mergeErrors] + const { headers, errors } = await parseAllHeaders({ headersFiles: [headersPath], configHeaders }) warnHeadersParsing(logs, errors) return { ...config, headers } // @todo remove this failsafe once the code is stable @@ -33,10 +27,4 @@ const addConfigHeaders = async function ({ headers: configHeaders = [], ...confi } } -const getFileHeaders = async function (headersPath) { - const { headers: fileHeaders, errors: fileParseErrors } = await parseFileHeaders(headersPath) - const { headers: normalizedFileHeaders, errors: fileNormalizeErrors } = normalizeHeaders(fileHeaders) - return { normalizedFileHeaders, fileParseErrors, fileNormalizeErrors } -} - module.exports = { addHeaders, addConfigHeaders } diff --git a/packages/config/src/log/messages.js b/packages/config/src/log/messages.js index 5e63b7369e..70c8c71237 100644 --- a/packages/config/src/log/messages.js +++ b/packages/config/src/log/messages.js @@ -59,15 +59,16 @@ ${errorMessage}`, ) } -const getErrorMessage = function ({ message }) { - return message -} - const warnHeadersException = function (logs, errorMessage) { logWarning(logs, `Error while parsing headers: ${errorMessage}`) } -const warnRedirectsParsing = function (logs, errorMessage) { +const warnRedirectsParsing = function (logs, errors) { + if (errors.length === 0) { + return + } + + const errorMessage = errors.map(getErrorMessage).join('\n\n') logWarning( logs, ` @@ -77,6 +78,14 @@ ${errorMessage}`, ) } +const warnRedirectsException = function (logs, errorMessage) { + logWarning(logs, `Error while parsing redirects: ${errorMessage}`) +} + +const getErrorMessage = function ({ message }) { + return message +} + module.exports = { warnLegacyFunctionsDirectory, warnContextPluginConfig, @@ -84,4 +93,5 @@ module.exports = { warnHeadersParsing, warnHeadersException, warnRedirectsParsing, + warnRedirectsException, } diff --git a/packages/config/src/mutations/update.js b/packages/config/src/mutations/update.js index 5637863a85..2d11311c53 100644 --- a/packages/config/src/mutations/update.js +++ b/packages/config/src/mutations/update.js @@ -1,9 +1,8 @@ 'use strict' -const { writeFile, unlink } = require('fs') +const { writeFile, unlink, copyFile } = require('fs') const { promisify } = require('util') -const cpFile = require('cp-file') const makeDir = require('make-dir') const pathExists = require('path-exists') @@ -19,6 +18,7 @@ const { applyMutations } = require('./apply') const pWriteFile = promisify(writeFile) const pUnlink = promisify(unlink) +const pCopyFile = promisify(copyFile) // Persist configuration changes to `netlify.toml`. // If `netlify.toml` does not exist, creates it. Otherwise, merges the changes. @@ -106,7 +106,7 @@ const backupFile = async function (original, backup) { return } - await cpFile(original, backup) + await pCopyFile(original, backup) } const deleteNoError = async (path) => { @@ -117,7 +117,7 @@ const deleteNoError = async (path) => { const copyOrDelete = async function (src, dest) { if (await pathExists(src)) { - await cpFile(src, dest) + await pCopyFile(src, dest) return } diff --git a/packages/config/src/redirects.js b/packages/config/src/redirects.js index 91758a4aae..a17d32a0c4 100644 --- a/packages/config/src/redirects.js +++ b/packages/config/src/redirects.js @@ -2,9 +2,9 @@ const { resolve } = require('path') -const { parseFileRedirects, mergeRedirects, normalizeRedirects } = require('netlify-redirect-parser') +const { parseAllRedirects } = require('netlify-redirect-parser') -const { warnRedirectsParsing } = require('./log/messages') +const { warnRedirectsParsing, warnRedirectsException } = require('./log/messages') // Add `config.redirects` const addRedirects = async function (config, logs) { @@ -15,30 +15,20 @@ const addRedirects = async function (config, logs) { const REDIRECTS_FILENAME = '_redirects' -const addConfigRedirects = async function ({ redirects: configRedirects = [], ...config }, redirectsPath, logs) { +const addConfigRedirects = async function ({ redirects: configRedirects, ...config }, redirectsPath, logs) { try { - const normalizedConfigRedirects = normalizeAllRedirects(configRedirects) - const normalizedFileRedirects = await getFileRedirects(redirectsPath) - const redirects = mergeRedirects({ - fileRedirects: normalizedFileRedirects, - configRedirects: normalizedConfigRedirects, + const { redirects, errors } = await parseAllRedirects({ + redirectsFiles: [redirectsPath], + configRedirects, + minimal: true, }) + warnRedirectsParsing(logs, errors) return { ...config, redirects } // @todo remove this failsafe once the code is stable } catch (error) { - warnRedirectsParsing(logs, error.message) + warnRedirectsException(logs, error.message) return { ...config, redirects: [] } } } -const getFileRedirects = async function (redirectsPath) { - const fileRedirects = await parseFileRedirects(redirectsPath) - const normalizedFileRedirects = normalizeAllRedirects(fileRedirects) - return normalizedFileRedirects -} - -const normalizeAllRedirects = function (redirects) { - return normalizeRedirects(redirects, { minimal: true }) -} - module.exports = { addRedirects, addConfigRedirects } diff --git a/packages/config/tests/mutate/tests.js b/packages/config/tests/mutate/tests.js index 095c05e3cc..74daa6d75f 100644 --- a/packages/config/tests/mutate/tests.js +++ b/packages/config/tests/mutate/tests.js @@ -1,14 +1,17 @@ 'use strict' +const { copyFile } = require('fs') +const { promisify } = require('util') + const test = require('ava') -// @todo replace with `fs.copyFile()` after dropping support for Node 8 -const cpFile = require('cp-file') const del = require('del') const pathExists = require('path-exists') const { updateConfig } = require('../..') const { runFixture } = require('../helpers/main') +const pCopyFile = promisify(copyFile) + const FIXTURES_DIR = `${__dirname}/fixtures` // Call the main function @@ -52,7 +55,7 @@ const initFixtureDir = async function (fixtureName) { // directory to use in tests const copyIfExists = async function (fixturePath, tempPath) { if (await pathExists(fixturePath)) { - await cpFile(fixturePath, tempPath) + await pCopyFile(fixturePath, tempPath) return } diff --git a/packages/config/tests/parse/fixtures/redirects_field_error/netlify.toml b/packages/config/tests/parse/fixtures/redirects_field_error/netlify.toml index e23b209fca..31af1550e2 100644 --- a/packages/config/tests/parse/fixtures/redirects_field_error/netlify.toml +++ b/packages/config/tests/parse/fixtures/redirects_field_error/netlify.toml @@ -1,2 +1,9 @@ [[redirects]] from = "/from" + +[[redirects]] +from = "/.netlify/from" + +[[redirects]] +from = "/from" +to = "/to" diff --git a/packages/config/tests/parse/fixtures/redirects_file_error/publish/_redirects b/packages/config/tests/parse/fixtures/redirects_file_error/publish/_redirects index 362d91652a..eb2b1b60f9 100644 --- a/packages/config/tests/parse/fixtures/redirects_file_error/publish/_redirects +++ b/packages/config/tests/parse/fixtures/redirects_file_error/publish/_redirects @@ -1 +1,3 @@ /from +/.netlify/from +/from /to diff --git a/packages/config/tests/parse/snapshots/tests.js.md b/packages/config/tests/parse/snapshots/tests.js.md index da323b3f71..8432f8f6e9 100644 --- a/packages/config/tests/parse/snapshots/tests.js.md +++ b/packages/config/tests/parse/snapshots/tests.js.md @@ -522,6 +522,10 @@ Generated by [AVA](https://avajs.dev). /external/path␊ Missing destination path/URL␊ ␊ + Could not parse redirect line 2:␊ + /external/path␊ + Missing destination path/URL␊ + ␊ {␊ "accounts": [],␊ "addons": [],␊ @@ -545,7 +549,16 @@ Generated by [AVA](https://avajs.dev). },␊ "headers": [],␊ "plugins": [],␊ - "redirects": []␊ + "redirects": [␊ + {␊ + "conditions": {},␊ + "force": false,␊ + "from": "/external/path",␊ + "headers": {},␊ + "query": {},␊ + "to": "/external/path"␊ + }␊ + ]␊ },␊ "configPath": "packages/config/tests/parse/fixtures/redirects_file_error/netlify.toml",␊ "context": "production",␊ @@ -640,6 +653,10 @@ Generated by [AVA](https://avajs.dev). {"from":"/external/path"}␊ Missing "to" field␊ ␊ + Could not parse redirect number 2:␊ + {"from":"/external/path"}␊ + Missing "to" field␊ + ␊ {␊ "accounts": [],␊ "addons": [],␊ @@ -663,7 +680,16 @@ Generated by [AVA](https://avajs.dev). },␊ "headers": [],␊ "plugins": [],␊ - "redirects": [],␊ + "redirects": [␊ + {␊ + "conditions": {},␊ + "force": false,␊ + "from": "/external/path",␊ + "headers": {},␊ + "query": {},␊ + "to": "/external/path"␊ + }␊ + ],␊ "redirectsOrigin": "config"␊ },␊ "configPath": "packages/config/tests/parse/fixtures/redirects_field_error/netlify.toml",␊ diff --git a/packages/config/tests/parse/snapshots/tests.js.snap b/packages/config/tests/parse/snapshots/tests.js.snap index d6ed0d1304..c9fafce06d 100644 Binary files a/packages/config/tests/parse/snapshots/tests.js.snap and b/packages/config/tests/parse/snapshots/tests.js.snap differ diff --git a/packages/functions-utils/src/main.js b/packages/functions-utils/src/main.js index 9dcc01eb85..fc512e7476 100644 --- a/packages/functions-utils/src/main.js +++ b/packages/functions-utils/src/main.js @@ -4,6 +4,7 @@ const { stat } = require('fs') const { basename, dirname } = require('path') const { promisify } = require('util') +const { listFunctions, listFunctionsFiles } = require('@netlify/zip-it-and-ship-it') const cpy = require('cpy') const pathExists = require('path-exists') @@ -49,11 +50,6 @@ const list = async function (functionsSrc, { fail = defaultFail } = {}) { return fail('No function directory was specified') } - // This package currently supports Node 8 but not zip-it-and-ship-it - // @todo put the `require()` to the top-level scope again once Node 8 support - // is removed - // eslint-disable-next-line node/global-require - const { listFunctions } = require('@netlify/zip-it-and-ship-it') try { return await listFunctions(functionsSrc) } catch (error) { @@ -66,11 +62,6 @@ const listAll = async function (functionsSrc, { fail = defaultFail } = {}) { return fail('No function directory was specified') } - // This package currently supports Node 8 but not zip-it-and-ship-it - // @todo put the `require()` to the top-level scope again once Node 8 support - // is removed - // eslint-disable-next-line node/global-require - const { listFunctionsFiles } = require('@netlify/zip-it-and-ship-it') try { return await listFunctionsFiles(functionsSrc) } catch (error) {