diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ce03c8a..c6c1d03 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/setup-node@v3 with: cache: npm - node-version: 16 + node-version: "lts/*" - run: npm ci - run: npx semantic-release env: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a34ed9b..3a6117d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,11 +16,8 @@ jobs: matrix: node-version: # minimal required version - - "12.20" - # minimal required version for latest semantic-release - - 14.17 - # latest LTS version - - 16 + - 16.10 + - 18 runs-on: ubuntu-latest @@ -45,7 +42,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: 16 + node-version: "lts/*" cache: npm - run: npm clean-install - name: Ensure dependencies are compatible with the version of node diff --git a/README.md b/README.md index 9e57402..f56910e 100644 --- a/README.md +++ b/README.md @@ -16,16 +16,33 @@ $ npm install --save env-ci ## Usage ```js -const envCi = require("env-ci"); - -const { name, service, isCi, branch, commit, tag, build, buildUrl, job, jobUrl, isPr, pr, prBranch, slug, root } = - envCi(); +import envCi from "env-ci"; + +const { + name, + service, + isCi, + branch, + commit, + tag, + build, + buildUrl, + job, + jobUrl, + isPr, + pr, + prBranch, + slug, + root, +} = envCi(); if (isCI) { console.log(`Building repo ${slug} on ${name} service`); if (isPr) { - console.log(`Building Pull Request #${pr} originating from branch ${prBranch} and targeting branch ${branch}`); + console.log( + `Building Pull Request #${pr} originating from branch ${prBranch} and targeting branch ${branch}` + ); } else { console.log(`Building branch ${branch}`); } diff --git a/index.js b/index.js index b0a798e..c7f5593 100644 --- a/index.js +++ b/index.js @@ -1,39 +1,67 @@ -const process = require("process"); -const git = require("./services/git.js"); +import appveyor from "./services/appveyor.js"; +import azurePipelines from "./services/azure-pipelines.js"; +import bamboo from "./services/bamboo.js"; +import bitbucket from "./services/bitbucket.js"; +import bitrise from "./services/bitrise.js"; +import buddy from "./services/buddy.js"; +import buildkite from "./services/buildkite.js"; +import circleci from "./services/circleci.js"; +import cirrus from "./services/cirrus.js"; +import cloudflarePages from "./services/cloudflare-pages.js"; +import codebuild from "./services/codebuild.js"; +import codefresh from "./services/codefresh.js"; +import codeship from "./services/codeship.js"; +import drone from "./services/drone.js"; +import git from "./services/git.js"; +import github from "./services/github.js"; +import gitlab from "./services/gitlab.js"; +import jenkins from "./services/jenkins.js"; +import netlify from "./services/netlify.js"; +import puppet from "./services/puppet.js"; +import sail from "./services/sail.js"; +import scrutinizer from "./services/scrutinizer.js"; +import semaphore from "./services/semaphore.js"; +import shippable from "./services/shippable.js"; +import teamcity from "./services/teamcity.js"; +import travis from "./services/travis.js"; +import vela from "./services/vela.js"; +import vercel from "./services/vercel.js"; +import wercker from "./services/wercker.js"; +import woodpecker from "./services/woodpecker.js"; const services = { - appveyor: require("./services/appveyor.js"), - azurePipelines: require("./services/azure-pipelines.js"), - bamboo: require("./services/bamboo.js"), - bitbucket: require("./services/bitbucket.js"), - bitrise: require("./services/bitrise.js"), - buddy: require("./services/buddy.js"), - buildkite: require("./services/buildkite.js"), - circleci: require("./services/circleci.js"), - cirrus: require("./services/cirrus.js"), - cloudflarePages: require("./services/cloudflare-pages.js"), - codebuild: require("./services/codebuild.js"), - codefresh: require("./services/codefresh.js"), - codeship: require("./services/codeship.js"), - drone: require("./services/drone.js"), - github: require("./services/github.js"), - gitlab: require("./services/gitlab.js"), - jenkins: require("./services/jenkins.js"), - netlify: require("./services/netlify.js"), - puppet: require("./services/puppet.js"), - sail: require("./services/sail.js"), - scrutinizer: require("./services/scrutinizer.js"), - semaphore: require("./services/semaphore.js"), - shippable: require("./services/shippable.js"), - teamcity: require("./services/teamcity.js"), - travis: require("./services/travis.js"), - vela: require("./services/vela.js"), - vercel: require("./services/vercel.js"), - wercker: require("./services/wercker.js"), - woodpecker: require("./services/woodpecker.js"), + appveyor, + azurePipelines, + bamboo, + bitbucket, + bitrise, + buddy, + buildkite, + circleci, + cirrus, + cloudflarePages, + codebuild, + codefresh, + codeship, + drone, + github, + gitlab, + jenkins, + netlify, + puppet, + sail, + scrutinizer, + semaphore, + shippable, + teamcity, + travis, + vela, + vercel, + wercker, + woodpecker, }; -module.exports = ({ env = process.env, cwd = process.cwd() } = {}) => { +export default ({ env = process.env, cwd = process.cwd() } = {}) => { for (const name of Object.keys(services)) { if (services[name].detect({ env, cwd })) { return { isCi: true, ...services[name].configuration({ env, cwd }) }; diff --git a/lib/git.js b/lib/git.js index 88316bb..9cdd4b0 100644 --- a/lib/git.js +++ b/lib/git.js @@ -1,20 +1,27 @@ -const execa = require("execa"); +import { execaSync } from "execa"; -function head(options) { +export function head(options) { try { - return execa.sync("git", ["rev-parse", "HEAD"], options).stdout; + return execaSync("git", ["rev-parse", "HEAD"], options).stdout; } catch { return undefined; } } -function branch(options) { +export function branch(options) { try { - const headRef = execa.sync("git", ["rev-parse", "--abbrev-ref", "HEAD"], options).stdout; + const headRef = execaSync( + "git", + ["rev-parse", "--abbrev-ref", "HEAD"], + options + ).stdout; if (headRef === "HEAD") { - const branch = execa - .sync("git", ["show", "-s", "--pretty=%d", "HEAD"], options) + const branch = execaSync( + "git", + ["show", "-s", "--pretty=%d", "HEAD"], + options + ) .stdout.replace(/^\(|\)$/g, "") .split(", ") .find((branch) => branch.startsWith("origin/")); @@ -26,5 +33,3 @@ function branch(options) { return undefined; } } - -module.exports = { head, branch }; diff --git a/lib/utils.js b/lib/utils.js index 64b619d..61e8dc3 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,9 +1,9 @@ -function prNumber(pr) { +export function prNumber(pr) { return (/\d+(?!.*\d+)/.exec(pr) || [])[0]; } -function parseBranch(branch) { - return branch ? /^(?:refs\/heads\/)?(?.+)$/i.exec(branch)[1] : undefined; +export function parseBranch(branch) { + return branch + ? /^(?:refs\/heads\/)?(?.+)$/i.exec(branch)[1] + : undefined; } - -module.exports = { prNumber, parseBranch }; diff --git a/package-lock.json b/package-lock.json index 44221be..654aa34 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,427 +9,25 @@ "version": "0.0.0-development", "license": "MIT", "dependencies": { - "execa": "^5.0.0", - "fromentries": "^1.3.2", - "java-properties": "^1.0.0" + "execa": "^6.1.0", + "java-properties": "^1.0.2" }, "devDependencies": { - "ava": "5.0.1", - "codecov": "3.8.3", - "file-url": "3.0.0", - "nyc": "15.1.0", + "ava": "^4.3.3", + "c8": "^7.12.0", + "file-url": "^4.0.0", "prettier": "2.8.0", - "proxyquire": "2.1.3", - "tempy": "1.0.1" + "tempy": "^3.0.0" }, "engines": { - "node": ">=12.20" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", - "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", - "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.6", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helpers": "^7.19.4", - "@babel/parser": "^7.19.6", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.6", - "@babel/types": "^7.19.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "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==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz", - "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.19.4", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", - "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.19.3", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@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==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", - "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.19.4", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.6", - "@babel/types": "^7.19.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", - "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.19.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", - "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.4", - "@babel/types": "^7.19.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", - "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz", - "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.6", - "@babel/types": "^7.19.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", - "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "node": "^16.10 || >=18" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", @@ -440,19 +38,6 @@ "node": ">=8" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", @@ -462,15 +47,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", @@ -522,14 +98,11 @@ "node": ">= 8" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true }, "node_modules/acorn": { "version": "8.8.0", @@ -552,18 +125,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/aggregate-error": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", @@ -617,24 +178,6 @@ "node": ">= 8" } }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "dependencies": { - "default-require-extensions": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -644,15 +187,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", - "integrity": "sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw==", - "dev": true, - "engines": { - "node": ">=0.6.10" - } - }, "node_modules/array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -693,14 +227,14 @@ } }, "node_modules/ava": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ava/-/ava-5.0.1.tgz", - "integrity": "sha512-nS1eK3HhWaC+eGHtteF5j4yZMjaIE+q2o+oyqD75xsmS87R5sGlxADYWkFIGyB28jrDmAATZAAx+s3JhYsnhNw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/ava/-/ava-4.3.3.tgz", + "integrity": "sha512-9Egq/d9R74ExrWohHeqUlexjDbgZJX5jA1Wq4KCTqc3wIfpGEK79zVy4rBtofJ9YKIxs4PzhJ8BgbW5PlAYe6w==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.7.1", "acorn-walk": "^8.2.0", - "ansi-styles": "^6.1.1", + "ansi-styles": "^6.1.0", "arrgv": "^1.0.2", "arrify": "^3.0.0", "callsites": "^4.0.0", @@ -708,7 +242,7 @@ "chalk": "^5.0.1", "chokidar": "^3.5.3", "chunkd": "^2.0.1", - "ci-info": "^3.4.0", + "ci-info": "^3.3.1", "ci-parallel-vars": "^1.0.1", "clean-yaml-object": "^0.1.0", "cli-truncate": "^3.1.0", @@ -717,10 +251,10 @@ "concordance": "^5.0.4", "currently-unhandled": "^0.4.1", "debug": "^4.3.4", - "del": "^7.0.0", - "emittery": "^1.0.0", - "figures": "^5.0.0", - "globby": "^13.1.2", + "del": "^6.1.1", + "emittery": "^0.11.0", + "figures": "^4.0.1", + "globby": "^13.1.1", "ignore-by-default": "^2.1.0", "indent-string": "^5.0.0", "is-error": "^2.2.2", @@ -730,25 +264,25 @@ "mem": "^9.0.2", "ms": "^2.1.3", "p-event": "^5.0.1", - "p-map": "^5.5.0", + "p-map": "^5.4.0", "picomatch": "^2.3.1", "pkg-conf": "^4.0.0", "plur": "^5.1.0", - "pretty-ms": "^8.0.0", + "pretty-ms": "^7.0.1", "resolve-cwd": "^3.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.5", "strip-ansi": "^7.0.1", "supertap": "^3.0.1", "temp-dir": "^2.0.0", - "write-file-atomic": "^4.0.2", + "write-file-atomic": "^4.0.1", "yargs": "^17.5.1" }, "bin": { "ava": "entrypoints/cli.mjs" }, "engines": { - "node": ">=14.19 <15 || >=16.15 <17 || >=18" + "node": ">=12.22 <13 || >=14.17 <15 || >=16.4 <17 || >=18" }, "peerDependencies": { "@ava/typescript": "*" @@ -802,97 +336,204 @@ "node": ">=8" } }, - "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "node_modules/c8": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" }, "bin": { - "browserslist": "cli.js" + "c8": "bin/c8.js" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=10.12.0" } }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "node_modules/c8/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/caching-transform/node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "node_modules/c8/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/callsites": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.0.0.tgz", - "integrity": "sha512-y3jRROutgpKdz5vzEhWM34TidDU8vkJppF8dszITeb1PQmSqV3DTxyV8G/lyO/DNvtE1YTedehmw9MPZsCBHxQ==", + "node_modules/c8/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/c8/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": ">=12.20" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/c8/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001423", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001423.tgz", - "integrity": "sha512-09iwWGOlifvE1XuHokFMP7eR38a0JnajoyL3/i87c8ZjRWRrdKo1fqjNfugfBD0UDBIOz0U+jtNhJ0EPm1VleQ==", + "node_modules/c8/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, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/c8/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/c8/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/c8/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/c8/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/c8/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/c8/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/c8/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/callsites": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-4.0.0.tgz", + "integrity": "sha512-y3jRROutgpKdz5vzEhWM34TidDU8vkJppF8dszITeb1PQmSqV3DTxyV8G/lyO/DNvtE1YTedehmw9MPZsCBHxQ==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/cbor": { "version": "8.1.0", @@ -1079,53 +720,12 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/codecov": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", - "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", - "deprecated": "https://about.codecov.io/blog/codecov-uploader-deprecation-plan/", - "dev": true, - "dependencies": { - "argv": "0.0.2", - "ignore-walk": "3.0.4", - "js-yaml": "3.14.1", - "teeny-request": "7.1.1", - "urlgrey": "1.0.0" - }, - "bin": { - "codecov": "bin/codecov" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, "node_modules/common-path-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", "dev": true }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1180,12 +780,30 @@ } }, "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dev": true, + "dependencies": { + "type-fest": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/currently-unhandled": { @@ -1235,59 +853,89 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", + "node_modules/del/node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "dependencies": { - "strip-bom": "^4.0.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", - "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", + "node_modules/del/node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { - "globby": "^13.1.2", - "graceful-fs": "^4.2.10", - "is-glob": "^4.0.3", - "is-path-cwd": "^3.0.0", - "is-path-inside": "^4.0.0", - "p-map": "^5.5.0", - "rimraf": "^3.0.2", - "slash": "^4.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": ">=14.16" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del/node_modules/slash": { + "node_modules/del/node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { - "node": ">=12" + "node": ">=8" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1311,19 +959,13 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, - "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, "node_modules/emittery": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.0.tgz", - "integrity": "sha512-TD/u5aAn5W2HI2OukSIReNYXf/cH7U0QZHPxM4aIVYy0CmtrLCvf+7E8MuV2BbO02l6wq4sAKuFA8H16l6AHMA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.11.0.tgz", + "integrity": "sha512-S/7tzL6v5i+4iJd627Nhv9cLFIo5weAIlGccqJFpnBoDB8U1TF2k5tez4J/QNuxyyhWuFqHg1L84Kd3m7iXg6g==", "dev": true, "engines": { - "node": ">=14.16" + "node": ">=12" }, "funding": { "url": "https://github.com/sindresorhus/emittery?sponsor=1" @@ -1335,12 +977,6 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -1385,27 +1021,38 @@ } }, "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/execa/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/fast-diff": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", @@ -1428,60 +1075,41 @@ "node": ">=8.6.0" } }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "dev": true, - "dependencies": { - "punycode": "^1.3.2" - } - }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", "dev": true, "dependencies": { "reusify": "^1.0.4" } }, "node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/figures/-/figures-4.0.1.tgz", + "integrity": "sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==", "dev": true, "dependencies": { "escape-string-regexp": "^5.0.0", "is-unicode-supported": "^1.2.0" }, "engines": { - "node": ">=14" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/file-url": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/file-url/-/file-url-3.0.0.tgz", - "integrity": "sha512-g872QGsHexznxkIAdK8UiZRe7SkE6kvylShU4Nsj8NvfvZag7S0QuQ4IgvPDkk75HxgjIVDwycFTDAgIiO4nDA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/file-url/-/file-url-4.0.0.tgz", + "integrity": "sha512-vRCdScQ6j3Ku6Kd7W1kZk9c++5SqD6Xz5Jotrjr/nkY714M14RFHy/AAVA2WQvpsqVAVgTbDrYyBpU205F0cLw==", "dev": true, "engines": { - "node": ">=8" - } - }, - "node_modules/fill-keys": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", - "integrity": "sha512-tcgI872xXjwFF4xgQmLxi76GnwJG3g/3isB1l4/G5Z4zrbddGpBjqZCO9oEAcB5wX0Hj/5iQB3toxfO7in1hHA==", - "dev": true, - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/fill-range": { @@ -1496,36 +1124,6 @@ "node": ">=8" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "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/foreground-child": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", @@ -1539,25 +1137,6 @@ "node": ">=8.0.0" } }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1578,21 +1157,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -1602,15 +1166,6 @@ "node": "6.* || 8.* || >= 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", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -1654,15 +1209,6 @@ "node": ">= 6" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/globby": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", @@ -1700,18 +1246,6 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1721,67 +1255,24 @@ "node": ">=8" } }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "engines": { - "node": ">=10.17.0" + "node": ">=12.20.0" } }, "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", + "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", "dev": true, "engines": { "node": ">= 4" @@ -1796,15 +1287,6 @@ "node": ">=10 <11 || >=12 <13 || >=14" } }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -1863,18 +1345,6 @@ "node": ">=8" } }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-error": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", @@ -1923,37 +1393,22 @@ "node": ">=0.12.0" } }, - "node_modules/is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-path-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", - "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/is-plain-object": { @@ -1971,23 +1426,6 @@ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", "dev": true }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, "node_modules/is-unicode-supported": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", @@ -2000,15 +1438,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -2023,102 +1452,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "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.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", - "dev": true, - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", @@ -2133,20 +1466,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/istanbul-reports": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", @@ -2177,12 +1496,6 @@ "node": ">= 0.8" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -2196,30 +1509,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/load-json-file": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-7.0.1.tgz", @@ -2232,30 +1521,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -2347,12 +1618,6 @@ "url": "https://github.com/sindresorhus/mem?sponsor=1" } }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -2384,7 +1649,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, "engines": { "node": ">=12" }, @@ -2404,56 +1668,12 @@ "node": "*" } }, - "node_modules/module-not-found-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", - "integrity": "sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g==", - "dev": true - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, "node_modules/nofilter": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", @@ -2473,247 +1693,28 @@ } }, "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/nyc/node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/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==", - "dev": true, + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dependencies": { - "color-convert": "^2.0.1" + "path-key": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/nyc/node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/nyc/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nyc/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/nyc/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/nyc/node_modules/indent-string": { + "node_modules/npm-run-path/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "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", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "node": ">=12" }, - "engines": { - "node": ">=6" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/once": { @@ -2726,27 +1727,19 @@ } }, "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-fn": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/onetime/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, "node_modules/p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -2771,33 +1764,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/p-map": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", @@ -2825,40 +1791,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/parse-ms": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz", - "integrity": "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/path-exists": { @@ -2887,12 +1826,6 @@ "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -2902,12 +1835,6 @@ "node": ">=8" } }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -3006,18 +1933,6 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/plur": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz", @@ -3049,49 +1964,20 @@ } }, "node_modules/pretty-ms": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-8.0.0.tgz", - "integrity": "sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==", + "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": "^3.0.0" + "parse-ms": "^2.1.0" }, "engines": { - "node": ">=14.16" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/proxyquire": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.1.3.tgz", - "integrity": "sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==", - "dev": true, - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -3124,18 +2010,6 @@ "node": ">=8.10.0" } }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -3145,29 +2019,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -3279,12 +2130,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -3334,32 +2179,6 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -3387,15 +2206,6 @@ "node": ">=8" } }, - "node_modules/stream-events": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", - "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", - "dev": true, - "dependencies": { - "stubs": "^3.0.0" - } - }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -3428,225 +2238,90 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/stubs": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", - "dev": true - }, - "node_modules/supertap": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/supertap/-/supertap-3.0.1.tgz", - "integrity": "sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==", - "dev": true, - "dependencies": { - "indent-string": "^5.0.0", - "js-yaml": "^3.14.1", - "serialize-error": "^7.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "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/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/teeny-request": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", - "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", - "dev": true, - "dependencies": { - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "stream-events": "^1.0.5", - "uuid": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", - "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", - "dev": true, - "dependencies": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy/node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tempy/node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tempy/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "node_modules/supertap": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/supertap/-/supertap-3.0.1.tgz", + "integrity": "sha512-u1ZpIBCawJnO+0QePsEiOknOfCRq0yERxiAchT0i4li0WHNUJbf0evXXSXOcCAR4M8iMDoajXYmstm/qO81Isw==", "dev": true, + "dependencies": { + "indent-string": "^5.0.0", + "js-yaml": "^3.14.1", + "serialize-error": "^7.0.1", + "strip-ansi": "^7.0.1" + }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/tempy/node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "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": ">=6" + "node": ">=8" } }, - "node_modules/tempy/node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/tempy/node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/tempy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz", + "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==", "dev": true, "dependencies": { - "aggregate-error": "^3.0.0" + "is-stream": "^3.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3675,15 +2350,6 @@ "node": ">=4" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -3696,92 +2362,35 @@ "node": ">=8.0" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, "dependencies": { - "crypto-random-string": "^2.0.0" + "crypto-random-string": "^4.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" + "node": ">=12" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/urlgrey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", - "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", "dev": true, "dependencies": { - "fast-url-parser": "^1.1.3" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, "node_modules/well-known-symbols": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", @@ -3791,16 +2400,6 @@ "node": ">=6" } }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -3815,12 +2414,6 @@ "node": ">= 8" } }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -4015,346 +2608,42 @@ "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", - "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", - "dev": true - }, - "@babel/core": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", - "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.6", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helpers": "^7.19.4", - "@babel/parser": "^7.19.6", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.6", - "@babel/types": "^7.19.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "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": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz", - "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==", - "dev": true, - "requires": { - "@babel/types": "^7.19.4", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", - "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.19.3", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "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/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, - "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", - "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.19.4", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.6", - "@babel/types": "^7.19.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", - "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", - "dev": true, - "requires": { - "@babel/types": "^7.19.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", - "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", - "dev": true, - "requires": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.4", - "@babel/types": "^7.19.4" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", - "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==", - "dev": true - }, - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=8" } }, - "@babel/traverse": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz", - "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.6", - "@babel/types": "^7.19.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", - "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } + } + }, + "dependencies": { + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true }, "@istanbuljs/schema": { "version": "0.1.3", @@ -4362,28 +2651,12 @@ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, "@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", @@ -4426,10 +2699,10 @@ "fastq": "^1.6.0" } }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, "acorn": { @@ -4444,15 +2717,6 @@ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, "aggregate-error": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", @@ -4485,21 +2749,6 @@ "picomatch": "^2.0.4" } }, - "append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "requires": { - "default-require-extensions": "^3.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -4509,12 +2758,6 @@ "sprintf-js": "~1.0.2" } }, - "argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", - "integrity": "sha512-dEamhpPEwRUBpLNHeuCm/v+g0anFByHahxodVO/BbAarHVBBg2MccCwf9K+o1Pof+2btdnkJelYVUWjW/VrATw==", - "dev": true - }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -4540,14 +2783,14 @@ "dev": true }, "ava": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ava/-/ava-5.0.1.tgz", - "integrity": "sha512-nS1eK3HhWaC+eGHtteF5j4yZMjaIE+q2o+oyqD75xsmS87R5sGlxADYWkFIGyB28jrDmAATZAAx+s3JhYsnhNw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/ava/-/ava-4.3.3.tgz", + "integrity": "sha512-9Egq/d9R74ExrWohHeqUlexjDbgZJX5jA1Wq4KCTqc3wIfpGEK79zVy4rBtofJ9YKIxs4PzhJ8BgbW5PlAYe6w==", "dev": true, "requires": { - "acorn": "^8.8.0", + "acorn": "^8.7.1", "acorn-walk": "^8.2.0", - "ansi-styles": "^6.1.1", + "ansi-styles": "^6.1.0", "arrgv": "^1.0.2", "arrify": "^3.0.0", "callsites": "^4.0.0", @@ -4555,7 +2798,7 @@ "chalk": "^5.0.1", "chokidar": "^3.5.3", "chunkd": "^2.0.1", - "ci-info": "^3.4.0", + "ci-info": "^3.3.1", "ci-parallel-vars": "^1.0.1", "clean-yaml-object": "^0.1.0", "cli-truncate": "^3.1.0", @@ -4564,10 +2807,10 @@ "concordance": "^5.0.4", "currently-unhandled": "^0.4.1", "debug": "^4.3.4", - "del": "^7.0.0", - "emittery": "^1.0.0", - "figures": "^5.0.0", - "globby": "^13.1.2", + "del": "^6.1.1", + "emittery": "^0.11.0", + "figures": "^4.0.1", + "globby": "^13.1.1", "ignore-by-default": "^2.1.0", "indent-string": "^5.0.0", "is-error": "^2.2.2", @@ -4577,18 +2820,18 @@ "mem": "^9.0.2", "ms": "^2.1.3", "p-event": "^5.0.1", - "p-map": "^5.5.0", + "p-map": "^5.4.0", "picomatch": "^2.3.1", "pkg-conf": "^4.0.0", "plur": "^5.1.0", - "pretty-ms": "^8.0.0", + "pretty-ms": "^7.0.1", "resolve-cwd": "^3.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.5", "strip-ansi": "^7.0.1", "supertap": "^3.0.1", "temp-dir": "^2.0.0", - "write-file-atomic": "^4.0.2", + "write-file-atomic": "^4.0.1", "yargs": "^17.5.1" } }, @@ -4629,41 +2872,138 @@ "fill-range": "^7.0.1" } }, - "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - } - }, - "caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "c8": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", "dev": true, "requires": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" }, "dependencies": { - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "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" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "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" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } }, @@ -4673,18 +3013,6 @@ "integrity": "sha512-y3jRROutgpKdz5vzEhWM34TidDU8vkJppF8dszITeb1PQmSqV3DTxyV8G/lyO/DNvtE1YTedehmw9MPZsCBHxQ==", "dev": true }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001423", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001423.tgz", - "integrity": "sha512-09iwWGOlifvE1XuHokFMP7eR38a0JnajoyL3/i87c8ZjRWRrdKo1fqjNfugfBD0UDBIOz0U+jtNhJ0EPm1VleQ==", - "dev": true - }, "cbor": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz", @@ -4819,46 +3147,12 @@ "convert-to-spaces": "^2.0.1" } }, - "codecov": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.8.3.tgz", - "integrity": "sha512-Y8Hw+V3HgR7V71xWH2vQ9lyS358CbGCldWlJFR0JirqoGtOoas3R3/OclRTvgUYFK29mmJICDPauVKmpqbwhOA==", - "dev": true, - "requires": { - "argv": "0.0.2", - "ignore-walk": "3.0.4", - "js-yaml": "3.14.1", - "teeny-request": "7.1.1", - "urlgrey": "1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, "common-path-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", "dev": true }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -4904,10 +3198,21 @@ } }, "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "dev": true, + "requires": { + "type-fest": "^1.0.1" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true + } + } }, "currently-unhandled": { "version": "0.4.1", @@ -4944,42 +3249,66 @@ } } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, - "default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", - "dev": true, - "requires": { - "strip-bom": "^4.0.0" - } - }, "del": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", - "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", "dev": true, "requires": { - "globby": "^13.1.2", - "graceful-fs": "^4.2.10", - "is-glob": "^4.0.3", - "is-path-cwd": "^3.0.0", - "is-path-inside": "^4.0.0", - "p-map": "^5.5.0", + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", "rimraf": "^3.0.2", - "slash": "^4.0.0" + "slash": "^3.0.0" }, "dependencies": { - "slash": { + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } } } }, @@ -4998,16 +3327,10 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, - "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, "emittery": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.0.tgz", - "integrity": "sha512-TD/u5aAn5W2HI2OukSIReNYXf/cH7U0QZHPxM4aIVYy0CmtrLCvf+7E8MuV2BbO02l6wq4sAKuFA8H16l6AHMA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.11.0.tgz", + "integrity": "sha512-S/7tzL6v5i+4iJd627Nhv9cLFIo5weAIlGccqJFpnBoDB8U1TF2k5tez4J/QNuxyyhWuFqHg1L84Kd3m7iXg6g==", "dev": true }, "emoji-regex": { @@ -5016,12 +3339,6 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -5047,19 +3364,26 @@ "dev": true }, "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", "requires": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "dependencies": { + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" + } } }, "fast-diff": { @@ -5081,28 +3405,19 @@ "micromatch": "^4.0.4" } }, - "fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "dev": true, - "requires": { - "punycode": "^1.3.2" - } - }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", "dev": true, "requires": { "reusify": "^1.0.4" } }, "figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/figures/-/figures-4.0.1.tgz", + "integrity": "sha512-rElJwkA/xS04Vfg+CaZodpso7VqBknOYbzi6I76hI4X80RUjkSxO2oAyPmGbuXUppywjqndOrQDl817hDnI++w==", "dev": true, "requires": { "escape-string-regexp": "^5.0.0", @@ -5110,20 +3425,10 @@ } }, "file-url": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/file-url/-/file-url-3.0.0.tgz", - "integrity": "sha512-g872QGsHexznxkIAdK8UiZRe7SkE6kvylShU4Nsj8NvfvZag7S0QuQ4IgvPDkk75HxgjIVDwycFTDAgIiO4nDA==", - "dev": true - }, - "fill-keys": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", - "integrity": "sha512-tcgI872xXjwFF4xgQmLxi76GnwJG3g/3isB1l4/G5Z4zrbddGpBjqZCO9oEAcB5wX0Hj/5iQB3toxfO7in1hHA==", - "dev": true, - "requires": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/file-url/-/file-url-4.0.0.tgz", + "integrity": "sha512-vRCdScQ6j3Ku6Kd7W1kZk9c++5SqD6Xz5Jotrjr/nkY714M14RFHy/AAVA2WQvpsqVAVgTbDrYyBpU205F0cLw==", + "dev": true }, "fill-range": { "version": "7.0.1", @@ -5134,27 +3439,6 @@ "to-regex-range": "^5.0.1" } }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, "foreground-child": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", @@ -5165,11 +3449,6 @@ "signal-exit": "^3.0.2" } }, - "fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==" - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -5183,30 +3462,12 @@ "dev": true, "optional": true }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -5235,12 +3496,6 @@ "is-glob": "^4.0.1" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, "globby": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", @@ -5268,67 +3523,27 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - } - }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==" }, "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", + "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", "dev": true }, "ignore-by-default": { @@ -5337,15 +3552,6 @@ "integrity": "sha512-yiWd4GVmJp0Q6ghmM2B/V3oZGRmjrKLXvHR3TE1nfoXsmoggllfZUQe74EN0fJdPFZu2NIvNdrMMLm3OsV7Ohw==", "dev": true }, - "ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -5389,15 +3595,6 @@ "binary-extensions": "^2.0.0" } }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, "is-error": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", @@ -5431,22 +3628,16 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "dev": true - }, "is-path-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", - "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true }, "is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true }, "is-plain-object": { @@ -5461,29 +3652,12 @@ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", "dev": true }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, "is-unicode-supported": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "dev": true }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -5495,82 +3669,6 @@ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, - "istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "requires": { - "append-transform": "^2.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@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": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", - "dev": true, - "requires": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^8.3.2" - }, - "dependencies": { - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - } - } - }, "istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", @@ -5582,17 +3680,6 @@ "supports-color": "^7.1.0" } }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, "istanbul-reports": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", @@ -5614,12 +3701,6 @@ "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", "dev": true }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -5630,45 +3711,18 @@ "esprima": "^4.0.0" } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true - }, "load-json-file": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-7.0.1.tgz", "integrity": "sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ==", "dev": true }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -5732,12 +3786,6 @@ "mimic-fn": "^4.0.0" } }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -5762,8 +3810,7 @@ "mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" }, "minimatch": { "version": "3.1.2", @@ -5774,246 +3821,36 @@ "brace-expansion": "^1.1.7" } }, - "module-not-found-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", - "integrity": "sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g==", - "dev": true - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "requires": { - "process-on-spawn": "^1.0.0" - } - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "nofilter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", - "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, - "nyc": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", - "dev": true, - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "dependencies": { - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "indent-string": { + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "nofilter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" } } }, @@ -6027,18 +3864,11 @@ } }, "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "requires": { - "mimic-fn": "^2.1.0" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - } + "mimic-fn": "^4.0.0" } }, "p-defer": { @@ -6056,24 +3886,6 @@ "p-timeout": "^5.0.2" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, "p-map": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", @@ -6089,28 +3901,10 @@ "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", "dev": true }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - } - }, "parse-ms": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz", - "integrity": "sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", "dev": true }, "path-exists": { @@ -6130,24 +3924,12 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -6209,15 +3991,6 @@ } } }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, "plur": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/plur/-/plur-5.1.0.tgz", @@ -6234,40 +4007,14 @@ "dev": true }, "pretty-ms": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-8.0.0.tgz", - "integrity": "sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q==", - "dev": true, - "requires": { - "parse-ms": "^3.0.0" - } - }, - "process-on-spawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", - "dev": true, - "requires": { - "fromentries": "^1.2.0" - } - }, - "proxyquire": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.1.3.tgz", - "integrity": "sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==", + "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": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" + "parse-ms": "^2.1.0" } }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -6283,38 +4030,12 @@ "picomatch": "^2.2.1" } }, - "release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "requires": { - "es6-error": "^4.0.1" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -6380,12 +4101,6 @@ } } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -6420,26 +4135,6 @@ "is-fullwidth-code-point": "^4.0.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "requires": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -6463,15 +4158,6 @@ } } }, - "stream-events": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", - "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", - "dev": true, - "requires": { - "stubs": "^3.0.0" - } - }, "string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -6492,22 +4178,10 @@ "ansi-regex": "^6.0.1" } }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - }, - "stubs": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", - "dev": true + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" }, "supertap": { "version": "3.0.1", @@ -6530,25 +4204,6 @@ "has-flag": "^4.0.0" } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "teeny-request": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", - "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", - "dev": true, - "requires": { - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "stream-events": "^1.0.5", - "uuid": "^8.0.0" - } - }, "temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", @@ -6556,95 +4211,27 @@ "dev": true }, "tempy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", - "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz", + "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==", "dev": true, "requires": { - "del": "^6.0.0", - "is-stream": "^2.0.0", + "is-stream": "^3.0.0", "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" }, "dependencies": { - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true } } @@ -6666,12 +4253,6 @@ "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", "dev": true }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -6681,83 +4262,32 @@ "is-number": "^7.0.0" } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "crypto-random-string": "^4.0.0" } }, - "urlgrey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-1.0.0.tgz", - "integrity": "sha512-hJfIzMPJmI9IlLkby8QrsCykQ+SXDeO2W5Q9QTW3QpqZVTx4a/K7p8/5q+/isD8vsbVaFgql/gvAoQCRQ2Cb5w==", + "v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", "dev": true, "requires": { - "fast-url-parser": "^1.1.3" + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" } }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, "well-known-symbols": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", "dev": true }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -6766,12 +4296,6 @@ "isexe": "^2.0.0" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true - }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", diff --git a/package.json b/package.json index c3343ca..124db9f 100644 --- a/package.json +++ b/package.json @@ -3,37 +3,27 @@ "description": "Get environment variables exposed by CI services", "version": "0.0.0-development", "author": "Pierre Vanduynslager (https://github.com/pvdlg)", - "ava": { - "files": [ - "test/**/*.test.js" - ] - }, - "bugs": { - "url": "https://github.com/semantic-release/env-ci/issues" - }, + "type": "module", + "exports": "./index.js", "dependencies": { - "execa": "^5.0.0", - "fromentries": "^1.3.2", - "java-properties": "^1.0.0" + "execa": "^6.1.0", + "java-properties": "^1.0.2" }, "devDependencies": { - "ava": "5.0.1", - "codecov": "3.8.3", - "file-url": "3.0.0", - "nyc": "15.1.0", + "ava": "^4.3.3", + "c8": "^7.12.0", + "file-url": "^4.0.0", "prettier": "2.8.0", - "proxyquire": "2.1.3", - "tempy": "1.0.1" + "tempy": "^3.0.0" }, "engines": { - "node": ">=12.20" + "node": "^16.10 || >=18" }, "files": [ "index.js", "lib", "services" ], - "homepage": "https://github.com/semantic-release/env-ci#readme", "keywords": [ "appveyor", "azure-pipelines", @@ -68,38 +58,13 @@ "woodpecker" ], "license": "MIT", - "main": "index.js", - "nyc": { - "include": [ - "index.js", - "lib/**/*.js", - "services/**/*.js" - ], - "reporter": [ - "json", - "text", - "html" - ], - "all": true - }, - "prettier": { - "printWidth": 120, - "trailingComma": "es5" - }, - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "https://github.com/semantic-release/env-ci.git" - }, + "repository": "github:semantic-release/env-ci", "scripts": { - "codecov": "codecov -f coverage/coverage-final.json", - "lint": "prettier --check \"*.{js,json,md}\" \".github/**/*.{md,yml}\" \"{lib,services,test}/*.js\"", - "lint:fix": "prettier --write \"*.{js,json,md}\" \".github/**/*.{md,yml}\" \"{lib,services,test}/*.js\"", + "lint": "prettier --check \"*.{js,json,md}\" \".github/**/*.{md,yml}\" \"{lib,services,test}/**/*.js\"", + "lint:fix": "prettier --write \"*.{js,json,md}\" \".github/**/*.{md,yml}\" \"{lib,services,test}/**/*.js\"", "semantic-release": "semantic-release", "test": "npm run lint && npm run test:ci", - "test:ci": "nyc ava -v" + "test:ci": "c8 ava --verbose" }, "renovate": { "extends": [ diff --git a/services/appveyor.js b/services/appveyor.js index 8ef49e5..57e1cc5 100644 --- a/services/appveyor.js +++ b/services/appveyor.js @@ -1,6 +1,6 @@ // https://www.appveyor.com/docs/environment-variables -module.exports = { +export default { detect({ env }) { return Boolean(env.APPVEYOR); }, diff --git a/services/azure-pipelines.js b/services/azure-pipelines.js index 6aaaf4f..e89af75 100644 --- a/services/azure-pipelines.js +++ b/services/azure-pipelines.js @@ -1,8 +1,8 @@ // https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables // The docs indicate that SYSTEM_PULLREQUEST_SOURCEBRANCH and SYSTEM_PULLREQUEST_TARGETBRANCH are in the long format (e.g `refs/heads/master`) however tests show they are both in the short format (e.g. `master`) -const { parseBranch } = require("../lib/utils.js"); +import { parseBranch } from "../lib/utils.js"; -module.exports = { +export default { detect({ env }) { return Boolean(env.BUILD_BUILDURI); }, @@ -15,10 +15,14 @@ module.exports = { service: "azurePipelines", commit: env.BUILD_SOURCEVERSION, build: env.BUILD_BUILDNUMBER, - branch: parseBranch(isPr ? env.SYSTEM_PULLREQUEST_TARGETBRANCH : env.BUILD_SOURCEBRANCH), + branch: parseBranch( + isPr ? env.SYSTEM_PULLREQUEST_TARGETBRANCH : env.BUILD_SOURCEBRANCH + ), pr, isPr, - prBranch: parseBranch(isPr ? env.SYSTEM_PULLREQUEST_SOURCEBRANCH : undefined), + prBranch: parseBranch( + isPr ? env.SYSTEM_PULLREQUEST_SOURCEBRANCH : undefined + ), root: env.BUILD_REPOSITORY_LOCALPATH, }; }, diff --git a/services/bamboo.js b/services/bamboo.js index 76c0636..ab3c0db 100644 --- a/services/bamboo.js +++ b/services/bamboo.js @@ -1,6 +1,6 @@ // https://confluence.atlassian.com/bamboo/bamboo-variables-289277087.html -module.exports = { +export default { detect({ env }) { return Boolean(env.bamboo_agentId); }, diff --git a/services/bitbucket.js b/services/bitbucket.js index 19cc80e..6341541 100644 --- a/services/bitbucket.js +++ b/services/bitbucket.js @@ -1,6 +1,6 @@ // https://confluence.atlassian.com/bitbucket/environment-variables-794502608.html -module.exports = { +export default { detect({ env }) { return Boolean(env.BITBUCKET_BUILD_NUMBER); }, diff --git a/services/bitrise.js b/services/bitrise.js index 558878c..49129d9 100644 --- a/services/bitrise.js +++ b/services/bitrise.js @@ -1,11 +1,14 @@ // https://devcenter.bitrise.io/builds/available-environment-variables/#exposed-by-bitriseio -module.exports = { +export default { detect({ env }) { return Boolean(env.BITRISE_IO); }, configuration({ env }) { - const pr = env.BITRISE_PULL_REQUEST === "false" ? undefined : env.BITRISE_PULL_REQUEST; + const pr = + env.BITRISE_PULL_REQUEST === "false" + ? undefined + : env.BITRISE_PULL_REQUEST; const isPr = Boolean(pr); return { diff --git a/services/buddy.js b/services/buddy.js index 5473bec..3518317 100644 --- a/services/buddy.js +++ b/services/buddy.js @@ -1,8 +1,8 @@ // https://buddy.works/knowledge/deployments/how-use-environment-variables#default-environment-variables -const { prNumber } = require("../lib/utils.js"); +import { prNumber } from "../lib/utils.js"; -module.exports = { +export default { detect({ env }) { return Boolean(env.BUDDY_WORKSPACE_ID); }, diff --git a/services/buildkite.js b/services/buildkite.js index 5e4d843..6d93e21 100644 --- a/services/buildkite.js +++ b/services/buildkite.js @@ -1,11 +1,14 @@ // https://buildkite.com/docs/builds/environment-variables -module.exports = { +export default { detect({ env }) { return Boolean(env.BUILDKITE); }, configuration({ env }) { - const pr = env.BUILDKITE_PULL_REQUEST === "false" ? undefined : env.BUILDKITE_PULL_REQUEST; + const pr = + env.BUILDKITE_PULL_REQUEST === "false" + ? undefined + : env.BUILDKITE_PULL_REQUEST; const isPr = Boolean(pr); return { @@ -15,7 +18,9 @@ module.exports = { buildUrl: env.BUILDKITE_BUILD_URL, commit: env.BUILDKITE_COMMIT, tag: env.BUILDKITE_TAG, - branch: isPr ? env.BUILDKITE_PULL_REQUEST_BASE_BRANCH : env.BUILDKITE_BRANCH, + branch: isPr + ? env.BUILDKITE_PULL_REQUEST_BASE_BRANCH + : env.BUILDKITE_BRANCH, slug: `${env.BUILDKITE_ORGANIZATION_SLUG}/${env.BUILDKITE_PROJECT_SLUG}`, pr, isPr, diff --git a/services/circleci.js b/services/circleci.js index b330237..c1d483e 100644 --- a/services/circleci.js +++ b/services/circleci.js @@ -1,13 +1,15 @@ // https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables -const { prNumber } = require("../lib/utils.js"); +import { prNumber } from "../lib/utils.js"; -module.exports = { +export default { detect({ env }) { return Boolean(env.CIRCLECI); }, configuration({ env }) { - const pr = env.CIRCLE_PR_NUMBER || prNumber(env.CIRCLE_PULL_REQUEST || env.CI_PULL_REQUEST); + const pr = + env.CIRCLE_PR_NUMBER || + prNumber(env.CIRCLE_PULL_REQUEST || env.CI_PULL_REQUEST); const isPr = Boolean(pr); return { diff --git a/services/cirrus.js b/services/cirrus.js index f6429e5..849056c 100644 --- a/services/cirrus.js +++ b/services/cirrus.js @@ -2,7 +2,7 @@ const CIRRUS_CI_DASHBOARD = "https://cirrus-ci.com"; -module.exports = { +export default { detect({ env }) { return Boolean(env.CIRRUS_CI); }, diff --git a/services/cloudflare-pages.js b/services/cloudflare-pages.js index 96f1cd0..8cfe0c1 100644 --- a/services/cloudflare-pages.js +++ b/services/cloudflare-pages.js @@ -1,6 +1,6 @@ // https://developers.cloudflare.com/pages/platform/build-configuration#environment-variables -module.exports = { +export default { detect({ env }) { return env.CF_PAGES === "1"; }, diff --git a/services/codebuild.js b/services/codebuild.js index 4087578..49a8e40 100644 --- a/services/codebuild.js +++ b/services/codebuild.js @@ -1,8 +1,8 @@ -const { head, branch } = require("../lib/git.js"); +import { head, branch } from "../lib/git.js"; // https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html -module.exports = { +export default { detect({ env }) { return Boolean(env.CODEBUILD_BUILD_ID); }, diff --git a/services/codefresh.js b/services/codefresh.js index 863ea41..0c3f5e2 100644 --- a/services/codefresh.js +++ b/services/codefresh.js @@ -1,6 +1,6 @@ // https://codefresh.io/docs/docs/codefresh-yaml/variables#system-provided-variables -module.exports = { +export default { detect({ env }) { return Boolean(env.CF_BUILD_ID); }, diff --git a/services/codeship.js b/services/codeship.js index 39719b1..c68608a 100644 --- a/services/codeship.js +++ b/services/codeship.js @@ -1,6 +1,6 @@ // https://documentation.codeship.com/basic/builds-and-configuration/set-environment-variables/#default-environment-variables -module.exports = { +export default { detect({ env }) { return env.CI_NAME && env.CI_NAME === "codeship"; }, diff --git a/services/drone.js b/services/drone.js index 9048f75..86389a8 100644 --- a/services/drone.js +++ b/services/drone.js @@ -1,6 +1,6 @@ // https://readme.drone.io/reference/environ -module.exports = { +export default { detect({ env }) { return Boolean(env.DRONE); }, diff --git a/services/git.js b/services/git.js index eceadab..b186df5 100644 --- a/services/git.js +++ b/services/git.js @@ -1,6 +1,6 @@ -const { head, branch } = require("../lib/git.js"); +import { head, branch } from "../lib/git.js"; -module.exports = { +export default { configuration(options) { return { commit: head(options), branch: branch(options) }; }, diff --git a/services/github.js b/services/github.js index c02b819..0af081c 100644 --- a/services/github.js +++ b/services/github.js @@ -1,13 +1,19 @@ +import { readFileSync } from "node:fs"; + // https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables -const { parseBranch } = require("../lib/utils.js"); +import { parseBranch } from "../lib/utils.js"; const getPrEvent = ({ env }) => { try { - const event = env.GITHUB_EVENT_PATH ? require(env.GITHUB_EVENT_PATH) : undefined; + const event = env.GITHUB_EVENT_PATH + ? JSON.parse(readFileSync(env.GITHUB_EVENT_PATH, "utf-8")) + : undefined; if (event && event.pull_request) { return { - branch: event.pull_request.base ? parseBranch(event.pull_request.base.ref) : undefined, + branch: event.pull_request.base + ? parseBranch(event.pull_request.base.ref) + : undefined, pr: event.pull_request.number, }; } @@ -19,18 +25,25 @@ const getPrEvent = ({ env }) => { }; const getPrNumber = (env) => { - const event = env.GITHUB_EVENT_PATH ? require(env.GITHUB_EVENT_PATH) : undefined; + const event = env.GITHUB_EVENT_PATH + ? JSON.parse(readFileSync(env.GITHUB_EVENT_PATH, "utf-8")) + : undefined; + return event && event.pull_request ? event.pull_request.number : undefined; }; -module.exports = { +export default { detect({ env }) { return Boolean(env.GITHUB_ACTIONS); }, configuration({ env, cwd }) { - const isPr = env.GITHUB_EVENT_NAME === "pull_request" || env.GITHUB_EVENT_NAME === "pull_request_target"; + const isPr = + env.GITHUB_EVENT_NAME === "pull_request" || + env.GITHUB_EVENT_NAME === "pull_request_target"; const branch = parseBranch( - env.GITHUB_EVENT_NAME === "pull_request_target" ? `refs/pull/${getPrNumber(env)}/merge` : env.GITHUB_REF + env.GITHUB_EVENT_NAME === "pull_request_target" + ? `refs/pull/${getPrNumber(env)}/merge` + : env.GITHUB_REF ); return { diff --git a/services/gitlab.js b/services/gitlab.js index 4254ef9..35220ea 100644 --- a/services/gitlab.js +++ b/services/gitlab.js @@ -1,6 +1,6 @@ // https://docs.gitlab.com/ce/ci/variables/README.html -module.exports = { +export default { detect({ env }) { return Boolean(env.GITLAB_CI); }, @@ -17,7 +17,9 @@ module.exports = { buildUrl: `${env.CI_PROJECT_URL}/pipelines/${env.CI_PIPELINE_ID}`, job: env.CI_JOB_ID, jobUrl: `${env.CI_PROJECT_URL}/-/jobs/${env.CI_JOB_ID}`, - branch: isPr ? env.CI_MERGE_REQUEST_TARGET_BRANCH_NAME : env.CI_COMMIT_REF_NAME, + branch: isPr + ? env.CI_MERGE_REQUEST_TARGET_BRANCH_NAME + : env.CI_COMMIT_REF_NAME, pr, isPr, prBranch: env.CI_MERGE_REQUEST_SOURCE_BRANCH_NAME, diff --git a/services/jenkins.js b/services/jenkins.js index 3187045..fea0ea5 100644 --- a/services/jenkins.js +++ b/services/jenkins.js @@ -1,27 +1,35 @@ -const { head } = require("../lib/git.js"); +import { head } from "../lib/git.js"; // https://wiki.jenkins.io/display/JENKINS/Building+a+software+project -module.exports = { +export default { detect({ env }) { return Boolean(env.JENKINS_URL); }, configuration({ env, cwd }) { const pr = env.ghprbPullId || env.gitlabMergeRequestId || env.CHANGE_ID; const isPr = Boolean(pr); - const localBranch = env.GIT_LOCAL_BRANCH || env.GIT_BRANCH || env.gitlabBranch || env.BRANCH_NAME; + const localBranch = + env.GIT_LOCAL_BRANCH || + env.GIT_BRANCH || + env.gitlabBranch || + env.BRANCH_NAME; return { name: "Jenkins", service: "jenkins", commit: env.ghprbActualCommit || env.GIT_COMMIT || head({ env, cwd }), - branch: isPr ? env.ghprbTargetBranch || env.gitlabTargetBranch : localBranch, + branch: isPr + ? env.ghprbTargetBranch || env.gitlabTargetBranch + : localBranch, build: env.BUILD_NUMBER, buildUrl: env.BUILD_URL, root: env.WORKSPACE, pr, isPr, - prBranch: isPr ? env.ghprbSourceBranch || env.gitlabSourceBranch || localBranch : undefined, + prBranch: isPr + ? env.ghprbSourceBranch || env.gitlabSourceBranch || localBranch + : undefined, }; }, }; diff --git a/services/jetbrains-space.js b/services/jetbrains-space.js index 8255f24..7e671f9 100644 --- a/services/jetbrains-space.js +++ b/services/jetbrains-space.js @@ -1,7 +1,7 @@ // https://jetbrains.com/help/space/automation-environment-variables.html#automation -const { parseBranch } = require("../lib/utils.js"); +import { parseBranch } from "../lib/utils.js"; -module.exports = { +export default { detect({ env }) { return Boolean(env.JB_SPACE_EXECUTION_NUMBER); }, @@ -14,7 +14,10 @@ module.exports = { commit: env.JB_SPACE_GIT_REVISION, build: env.JB_SPACE_EXECUTION_NUMBER, branch: parseBranch(env.JB_SPACE_GIT_BRANCH), - slug: projectKey && repositoryName ? `${projectKey.toLowerCase()}/${repositoryName}` : undefined, + slug: + projectKey && repositoryName + ? `${projectKey.toLowerCase()}/${repositoryName}` + : undefined, }; }, }; diff --git a/services/netlify.js b/services/netlify.js index d370a9c..c84187c 100644 --- a/services/netlify.js +++ b/services/netlify.js @@ -1,6 +1,6 @@ // https://docs.netlify.com/configure-builds/environment-variables/#netlify-configuration-variables -module.exports = { +export default { detect({ env }) { return env.NETLIFY === "true"; }, diff --git a/services/puppet.js b/services/puppet.js index cdfaf5b..27ecd39 100644 --- a/services/puppet.js +++ b/services/puppet.js @@ -1,6 +1,6 @@ // https://puppet.com/docs/pipelines-for-apps/enterprise/environment-variable.html -module.exports = { +export default { detect({ env }) { return Boolean(env.DISTELLI_APPNAME); }, diff --git a/services/sail.js b/services/sail.js index 1f2cc95..6e46d49 100644 --- a/services/sail.js +++ b/services/sail.js @@ -1,6 +1,6 @@ // https://sail.ci/docs/environment-variables -module.exports = { +export default { detect({ env }) { return Boolean(env.SAILCI); }, diff --git a/services/scrutinizer.js b/services/scrutinizer.js index db4d739..d12e902 100644 --- a/services/scrutinizer.js +++ b/services/scrutinizer.js @@ -1,6 +1,6 @@ // https://scrutinizer-ci.com/docs/build/environment-variables -module.exports = { +export default { detect({ env }) { return Boolean(env.SCRUTINIZER); }, diff --git a/services/semaphore.js b/services/semaphore.js index b62eea1..44f0426 100644 --- a/services/semaphore.js +++ b/services/semaphore.js @@ -1,9 +1,9 @@ -const { head } = require("../lib/git.js"); +import { head } from "../lib/git.js"; // 1.0: https://semaphoreci.com/docs/available-environment-variables.html // 2.0: https://docs.semaphoreci.com/article/12-environment-variables -module.exports = { +export default { detect({ env }) { return Boolean(env.SEMAPHORE); }, @@ -20,7 +20,8 @@ module.exports = { branch: env.SEMAPHORE_GIT_BRANCH || (isPr ? undefined : env.BRANCH_NAME), pr, isPr, - prBranch: env.SEMAPHORE_GIT_PR_BRANCH || (isPr ? env.BRANCH_NAME : undefined), + prBranch: + env.SEMAPHORE_GIT_PR_BRANCH || (isPr ? env.BRANCH_NAME : undefined), slug: env.SEMAPHORE_GIT_REPO_SLUG || env.SEMAPHORE_REPO_SLUG, root: env.SEMAPHORE_GIT_DIR || env.SEMAPHORE_PROJECT_DIR, }; diff --git a/services/shippable.js b/services/shippable.js index 7a39465..2f76520 100644 --- a/services/shippable.js +++ b/services/shippable.js @@ -1,6 +1,6 @@ // http://docs.shippable.com/ci/env-vars/#stdEnv -module.exports = { +export default { detect({ env }) { return Boolean(env.SHIPPABLE); }, diff --git a/services/teamcity.js b/services/teamcity.js index 53facd0..e0bde03 100644 --- a/services/teamcity.js +++ b/services/teamcity.js @@ -1,11 +1,13 @@ // https://confluence.jetbrains.com/display/TCD10/Predefined+Build+Parameters -const javaProperties = require("java-properties"); -const fromEntries = require("fromentries"); +import javaProperties from "java-properties"; -const { branch } = require("../lib/git.js"); +import { branch } from "../lib/git.js"; -const PROPERTIES_MAPPING = { root: "teamcity.build.workingDir", branch: "teamcity.build.branch" }; +const PROPERTIES_MAPPING = { + root: "teamcity.build.workingDir", + branch: "teamcity.build.branch", +}; const safeReadProperties = (filePath) => { try { @@ -19,20 +21,28 @@ const getProperties = ({ env, cwd }) => { const buildProperties = env.TEAMCITY_BUILD_PROPERTIES_FILE ? safeReadProperties(env.TEAMCITY_BUILD_PROPERTIES_FILE) : undefined; - const configFile = buildProperties ? buildProperties.get("teamcity.configuration.properties.file") : undefined; - const configProperties = configFile ? safeReadProperties(configFile) : configFile; + const configFile = buildProperties + ? buildProperties.get("teamcity.configuration.properties.file") + : undefined; + const configProperties = configFile + ? safeReadProperties(configFile) + : configFile; - return fromEntries( + return Object.fromEntries( Object.keys(PROPERTIES_MAPPING).map((key) => [ key, - (buildProperties ? buildProperties.get(PROPERTIES_MAPPING[key]) : undefined) || - (configProperties ? configProperties.get(PROPERTIES_MAPPING[key]) : undefined) || + (buildProperties + ? buildProperties.get(PROPERTIES_MAPPING[key]) + : undefined) || + (configProperties + ? configProperties.get(PROPERTIES_MAPPING[key]) + : undefined) || (key === "branch" ? branch({ env, cwd }) : undefined), ]) ); }; -module.exports = { +export default { detect({ env }) { return Boolean(env.TEAMCITY_VERSION); }, diff --git a/services/travis.js b/services/travis.js index 105a03c..66495c5 100644 --- a/services/travis.js +++ b/services/travis.js @@ -1,11 +1,12 @@ // https://docs.travis-ci.com/user/environment-variables#default-environment-variables -module.exports = { +export default { detect({ env }) { return Boolean(env.TRAVIS); }, configuration({ env }) { - const pr = env.TRAVIS_PULL_REQUEST === "false" ? undefined : env.TRAVIS_PULL_REQUEST; + const pr = + env.TRAVIS_PULL_REQUEST === "false" ? undefined : env.TRAVIS_PULL_REQUEST; const isPr = Boolean(pr); return { diff --git a/services/vela.js b/services/vela.js index 3d2419e..c0edbc2 100644 --- a/services/vela.js +++ b/services/vela.js @@ -1,6 +1,6 @@ // https://go-vela.github.io/docs/reference/environment/variables/ -module.exports = { +export default { detect({ env }) { return Boolean(env.VELA); }, diff --git a/services/vercel.js b/services/vercel.js index 7c19d7e..ec05218 100644 --- a/services/vercel.js +++ b/services/vercel.js @@ -1,6 +1,6 @@ // https://vercel.com/docs/environment-variables -module.exports = { +export default { detect({ env }) { return Boolean(env.VERCEL) || Boolean(env.NOW_GITHUB_DEPLOYMENT); }, diff --git a/services/wercker.js b/services/wercker.js index f17d36f..76b3fc6 100644 --- a/services/wercker.js +++ b/services/wercker.js @@ -1,6 +1,6 @@ // http://devcenter.wercker.com/docs/environment-variables/available-env-vars#hs_cos_wrapper_name -module.exports = { +export default { detect({ env }) { return Boolean(env.WERCKER_MAIN_PIPELINE_STARTED); }, diff --git a/services/woodpecker.js b/services/woodpecker.js index e38ef1e..c438025 100644 --- a/services/woodpecker.js +++ b/services/woodpecker.js @@ -1,6 +1,6 @@ // https://woodpecker-ci.org/docs/usage/environment#built-in-environment-variables -module.exports = { +export default { detect({ env }) { return env.CI && env.CI === "woodpecker"; }, diff --git a/test/helpers/git-utils.js b/test/helpers/git-utils.js index c66fbcc..e4ebfc7 100644 --- a/test/helpers/git-utils.js +++ b/test/helpers/git-utils.js @@ -1,6 +1,6 @@ -const tempy = require('tempy'); -const execa = require('execa'); -const fileUrl = require('file-url'); +import { temporaryDirectory } from "tempy"; +import { execa } from "execa"; +import fileUrl from "file-url"; /** * Create a temporary git repository. @@ -11,20 +11,20 @@ const fileUrl = require('file-url'); * @param {String} [branch='master'] The branch to initialize. * @return {String} The path of the clone if `withRemote` is `true`, the path of the repository otherwise. */ -async function gitRepo(withRemote, branch = 'master') { - let cwd = tempy.directory(); +export async function gitRepo(withRemote, branch = "master") { + let cwd = temporaryDirectory(); - await execa('git', ['init', ...(withRemote ? ['--bare'] : [])], {cwd}); + await execa("git", ["init", ...(withRemote ? ["--bare"] : [])], { cwd }); const repositoryUrl = fileUrl(cwd); if (withRemote) { await initBareRepo(repositoryUrl, branch); cwd = await gitShallowClone(repositoryUrl); } else { - await gitCheckout(branch, true, {cwd}); + await gitCheckout(branch, true, { cwd }); } - return {cwd, repositoryUrl}; + return { cwd, repositoryUrl }; } /** @@ -38,12 +38,12 @@ async function gitRepo(withRemote, branch = 'master') { * @param {String} origin The URL of the bare repository. * @param {String} [branch='master'] the branch to initialize. */ -async function initBareRepo(origin, branch = 'master') { - const cwd = tempy.directory(); - await execa('git', ['clone', '--no-hardlinks', origin, cwd], {cwd}); - await gitCheckout(branch, true, {cwd}); - await gitCommit('Initial commit', {cwd}); - await execa('git', ['push', origin, branch], {cwd}); +export async function initBareRepo(origin, branch = "master") { + const cwd = temporaryDirectory(); + await execa("git", ["clone", "--no-hardlinks", origin, cwd], { cwd }); + await gitCheckout(branch, true, { cwd }); + await gitCommit("Initial commit", { cwd }); + await execa("git", ["push", origin, branch], { cwd }); } /** @@ -56,12 +56,30 @@ async function initBareRepo(origin, branch = 'master') { * * @return {String} The path of the cloned repository. */ -async function gitShallowClone(repositoryUrl, branch = 'master', depth = 1) { - const cwd = tempy.directory(); +export async function gitShallowClone( + repositoryUrl, + branch = "master", + depth = 1 +) { + const cwd = temporaryDirectory(); - await execa('git', ['clone', '--no-hardlinks', '--no-tags', '-b', branch, '--depth', depth, repositoryUrl, cwd], { - cwd, - }); + await execa( + "git", + [ + "clone", + "--no-hardlinks", + "--no-tags", + "-b", + branch, + "--depth", + depth, + repositoryUrl, + cwd, + ], + { + cwd, + } + ); return cwd; } @@ -72,8 +90,12 @@ async function gitShallowClone(repositoryUrl, branch = 'master', depth = 1) { * @param {boolean} create to create the branche ans switch, `false` to only switch. * @param {Object} [options] Options to pass to `execa`. */ -async function gitCheckout(branch, create, options) { - await execa('git', create ? ['checkout', '-b', branch] : ['checkout', branch], options); +export async function gitCheckout(branch, create, options) { + await execa( + "git", + create ? ["checkout", "-b", branch] : ["checkout", branch], + options + ); } /** @@ -84,9 +106,13 @@ async function gitCheckout(branch, create, options) { * * @returns {String} The created commit sha. */ -async function gitCommit(message, options) { - await execa('git', ['commit', '-m', message, '--allow-empty', '--no-gpg-sign'], options); - const {stdout} = await execa('git', ['rev-parse', 'HEAD'], options); +export async function gitCommit(message, options) { + await execa( + "git", + ["commit", "-m", message, "--allow-empty", "--no-gpg-sign"], + options + ); + const { stdout } = await execa("git", ["rev-parse", "HEAD"], options); return stdout; } @@ -95,9 +121,7 @@ async function gitCommit(message, options) { * * @return {String} The sha of the head commit in the current git repository. */ -async function gitHead(options) { - const {stdout} = await execa('git', ['rev-parse', 'HEAD'], options); +export async function gitHead(options) { + const { stdout } = await execa("git", ["rev-parse", "HEAD"], options); return stdout; } - -module.exports = {gitRepo, initBareRepo, gitShallowClone, gitCheckout, gitCommit, gitHead}; diff --git a/test/index.test.js b/test/index.test.js index e64ff06..4cd77ee 100644 --- a/test/index.test.js +++ b/test/index.test.js @@ -1,110 +1,119 @@ -const test = require("ava"); -const tempy = require("tempy"); -const proxyquire = require("proxyquire"); +import test from "ava"; +import { temporaryDirectory } from "tempy"; -const m = require("../index.js"); -const { gitRepo, gitCommit } = require("./helpers/git-utils.js"); +import envCi from "../index.js"; +import { gitRepo, gitCommit } from "./helpers/git-utils.js"; test("Appveyor", (t) => { - const { isCi, service } = m({ env: { APPVEYOR: "true" } }); + const { isCi, service } = envCi({ env: { APPVEYOR: "true" } }); t.is(isCi, true); t.is(service, "appveyor"); }); test("Azure Pipelines", (t) => { - const { isCi, service } = m({ env: { BUILD_BUILDURI: "https://fabrikamfiber.visualstudio.com/_git/Scripts" } }); + const { isCi, service } = envCi({ + env: { + BUILD_BUILDURI: "https://fabrikamfiber.visualstudio.com/_git/Scripts", + }, + }); t.is(isCi, true); t.is(service, "azurePipelines"); }); test("Bamboo", (t) => { - const { isCi, service } = m({ env: { bamboo_agentId: "some bamboo agent id" } }); // eslint-disable-line camelcase + const { isCi, service } = envCi({ + env: { bamboo_agentId: "some bamboo agent id" }, + }); // eslint-disable-line camelcase t.is(isCi, true); t.is(service, "bamboo"); }); test("Bitbucket", (t) => { - const { isCi, service } = m({ env: { BITBUCKET_BUILD_NUMBER: "123456" } }); + const { isCi, service } = envCi({ + env: { BITBUCKET_BUILD_NUMBER: "123456" }, + }); t.is(isCi, true); t.is(service, "bitbucket"); }); test("Bitrise", (t) => { - const { isCi, service } = m({ env: { BITRISE_IO: "true" } }); + const { isCi, service } = envCi({ env: { BITRISE_IO: "true" } }); t.is(isCi, true); t.is(service, "bitrise"); }); test("Buddy", (t) => { - const { isCi, service } = m({ env: { BUDDY_WORKSPACE_ID: "1234" } }); + const { isCi, service } = envCi({ env: { BUDDY_WORKSPACE_ID: "1234" } }); t.is(isCi, true); t.is(service, "buddy"); }); test("Buildkite", (t) => { - const { isCi, service } = m({ env: { BUILDKITE: "true" } }); + const { isCi, service } = envCi({ env: { BUILDKITE: "true" } }); t.is(isCi, true); t.is(service, "buildkite"); }); test("Circle CI", (t) => { - const { isCi, service } = m({ env: { CIRCLECI: "true" } }); + const { isCi, service } = envCi({ env: { CIRCLECI: "true" } }); t.is(isCi, true); t.is(service, "circleci"); }); test("Cirrus CI", (t) => { - const { isCi, service } = m({ env: { CIRRUS_CI: "true" } }); + const { isCi, service } = envCi({ env: { CIRRUS_CI: "true" } }); t.is(isCi, true); t.is(service, "cirrus"); }); test("AWS CodeBuild", (t) => { - const { isCi, service } = m({ env: { CODEBUILD_BUILD_ID: "env-ci:40cc72d2-acd5-46f4-a86b-6a3dcd2a39a0" } }); + const { isCi, service } = envCi({ + env: { CODEBUILD_BUILD_ID: "env-ci:40cc72d2-acd5-46f4-a86b-6a3dcd2a39a0" }, + }); t.is(isCi, true); t.is(service, "codebuild"); }); test("Codefresh", (t) => { - const { isCi, service } = m({ env: { CF_BUILD_ID: "91011" } }); + const { isCi, service } = envCi({ env: { CF_BUILD_ID: "91011" } }); t.is(isCi, true); t.is(service, "codefresh"); }); test("Codeship", (t) => { - const { isCi, service } = m({ env: { CI_NAME: "codeship" } }); + const { isCi, service } = envCi({ env: { CI_NAME: "codeship" } }); t.is(isCi, true); t.is(service, "codeship"); }); test("Drone", (t) => { - const { isCi, service } = m({ env: { DRONE: "true" } }); + const { isCi, service } = envCi({ env: { DRONE: "true" } }); t.is(isCi, true); t.is(service, "drone"); }); test("GitHub", (t) => { - const { isCi, service } = m({ env: { GITHUB_ACTIONS: "true" } }); + const { isCi, service } = envCi({ env: { GITHUB_ACTIONS: "true" } }); t.is(isCi, true); t.is(service, "github"); }); test("GitLab", (t) => { - const { isCi, service } = m({ env: { GITLAB_CI: "true" } }); + const { isCi, service } = envCi({ env: { GITLAB_CI: "true" } }); t.is(isCi, true); t.is(service, "gitlab"); @@ -114,28 +123,31 @@ test("Jenkins", async (t) => { const { cwd } = await gitRepo(); await gitCommit("Test commit message", { cwd }); - const { isCi, service } = m({ env: { JENKINS_URL: "http://jenkins.jenkins.example/" }, cwd }); + const { isCi, service } = envCi({ + env: { JENKINS_URL: "http://jenkins.jenkins.example/" }, + cwd, + }); t.is(isCi, true); t.is(service, "jenkins"); }); test("Puppet", (t) => { - const { isCi, service } = m({ env: { DISTELLI_APPNAME: "app" } }); + const { isCi, service } = envCi({ env: { DISTELLI_APPNAME: "app" } }); t.is(isCi, true); t.is(service, "puppet"); }); test("Sail CI", (t) => { - const { isCi, service } = m({ env: { SAILCI: "true" } }); + const { isCi, service } = envCi({ env: { SAILCI: "true" } }); t.is(isCi, true); t.is(service, "sail"); }); test("Scrutinizer", (t) => { - const { isCi, service } = m({ env: { SCRUTINIZER: "true" } }); + const { isCi, service } = envCi({ env: { SCRUTINIZER: "true" } }); t.is(isCi, true); t.is(service, "scrutinizer"); @@ -145,49 +157,53 @@ test("Semaphore", async (t) => { const { cwd } = await gitRepo(); await gitCommit("Test commit message", { cwd }); - const { isCi, service } = m({ env: { SEMAPHORE: "true" } }); + const { isCi, service } = envCi({ env: { SEMAPHORE: "true" } }); t.is(isCi, true); t.is(service, "semaphore"); }); test("Shippable", (t) => { - const { isCi, service } = m({ env: { SHIPPABLE: "true" } }); + const { isCi, service } = envCi({ env: { SHIPPABLE: "true" } }); t.is(isCi, true); t.is(service, "shippable"); }); test("TeamCity", (t) => { - const { isCi, service } = m({ env: { TEAMCITY_VERSION: "2017.1.2 (build 46812)" } }); + const { isCi, service } = envCi({ + env: { TEAMCITY_VERSION: "2017.1.2 (build 46812)" }, + }); t.is(isCi, true); t.is(service, "teamcity"); }); test("Travis", (t) => { - const { isCi, service } = m({ env: { TRAVIS: "true" } }); + const { isCi, service } = envCi({ env: { TRAVIS: "true" } }); t.is(isCi, true); t.is(service, "travis"); }); test("Vela", (t) => { - const { isCi, service } = m({ env: { VELA: "true" } }); + const { isCi, service } = envCi({ env: { VELA: "true" } }); t.is(isCi, true); t.is(service, "vela"); }); test("Wercker", (t) => { - const { isCi, service } = m({ env: { WERCKER_MAIN_PIPELINE_STARTED: "123456" } }); + const { isCi, service } = envCi({ + env: { WERCKER_MAIN_PIPELINE_STARTED: "123456" }, + }); t.is(isCi, true); t.is(service, "wercker"); }); test("Woodpecker CI", (t) => { - const { isCi, service } = m({ env: { CI: "woodpecker" } }); + const { isCi, service } = envCi({ env: { CI: "woodpecker" } }); t.is(isCi, true); t.is(service, "woodpecker"); @@ -197,34 +213,38 @@ test("Unknown CI and Git repository", async (t) => { const { cwd } = await gitRepo(); await gitCommit("Test commit message", { cwd }); - const { isCi, service } = m({ env: { CI: "true" }, cwd }); + const { isCi, service } = envCi({ env: { CI: "true" }, cwd }); t.is(isCi, true); t.falsy(service); }); test("Unknown CI and not a Git repository", (t) => { - const cwd = tempy.directory(); + const cwd = temporaryDirectory(); - const { isCi, service } = m({ env: { CI: "true" }, cwd }); + const { isCi, service } = envCi({ env: { CI: "true" }, cwd }); t.is(isCi, true); t.falsy(service); }); test("Not CI", (t) => { - const cwd = tempy.directory(); + const cwd = temporaryDirectory(); - const { isCi, service } = m({ env: {}, cwd }); + const { isCi, service } = envCi({ env: {}, cwd }); t.is(isCi, false); t.falsy(service); }); -test("Default options", (t) => { - const m = proxyquire("..", { process: { env: {}, cwd: () => tempy.directory() } }); - - const { isCi, service } = m(); +test("Default options", async (t) => { + const previousCwd = process.Cwd; + const previousEnv = process.env; + process.env = {}; + process.cwd = () => temporaryDirectory(); + const { isCi, service } = envCi(); + process.Cwd = previousCwd; + process.env = previousEnv; t.is(isCi, false); t.falsy(service); diff --git a/test/lib/git.test.js b/test/lib/git.test.js index e8ea0cc..f05a96d 100644 --- a/test/lib/git.test.js +++ b/test/lib/git.test.js @@ -1,35 +1,40 @@ -const test = require('ava'); -const {head, branch} = require('../../lib/git.js'); -const {gitRepo, gitCommit, gitHead, gitCheckout} = require('../helpers/git-utils.js'); - -test('Git local repository', async (t) => { - const {cwd} = await gitRepo(); - const commit = await gitCommit('Test commit message', {cwd}); - - t.is(head({cwd}), commit); - t.is(branch({cwd}), 'master'); +import test from "ava"; +import { head, branch } from "../../lib/git.js"; +import { + gitRepo, + gitCommit, + gitHead, + gitCheckout, +} from "../helpers/git-utils.js"; + +test("Git local repository", async (t) => { + const { cwd } = await gitRepo(); + const commit = await gitCommit("Test commit message", { cwd }); + + t.is(head({ cwd }), commit); + t.is(branch({ cwd }), "master"); }); -test('Git cloned repository', async (t) => { - const {cwd} = await gitRepo(true); +test("Git cloned repository", async (t) => { + const { cwd } = await gitRepo(true); - t.is(head({cwd}), await gitHead({cwd})); - t.is(branch({cwd}), 'master'); + t.is(head({ cwd }), await gitHead({ cwd })); + t.is(branch({ cwd }), "master"); }); -test('Git local repository with detached head', async (t) => { - const {cwd} = await gitRepo(); - const commit = await gitCommit('Test commit message', {cwd}); - await gitCheckout('HEAD~0', false, {cwd}); +test("Git local repository with detached head", async (t) => { + const { cwd } = await gitRepo(); + const commit = await gitCommit("Test commit message", { cwd }); + await gitCheckout("HEAD~0", false, { cwd }); - t.is(head({cwd}), commit); - t.is(branch({cwd}), undefined); + t.is(head({ cwd }), commit); + t.is(branch({ cwd }), undefined); }); -test('Git cloned repository with detached head', async (t) => { - const {cwd} = await gitRepo(true); - await gitCheckout('HEAD~0', false, {cwd}); +test("Git cloned repository with detached head", async (t) => { + const { cwd } = await gitRepo(true); + await gitCheckout("HEAD~0", false, { cwd }); - t.is(head({cwd}), await gitHead({cwd})); - t.is(branch({cwd}), 'master'); + t.is(head({ cwd }), await gitHead({ cwd })); + t.is(branch({ cwd }), "master"); }); diff --git a/test/lib/utils.test.js b/test/lib/utils.test.js index dc7127a..f6ed402 100644 --- a/test/lib/utils.test.js +++ b/test/lib/utils.test.js @@ -1,8 +1,8 @@ -const test = require('ava'); -const {prNumber} = require('../../lib/utils.js'); +import test from "ava"; +import { prNumber } from "../../lib/utils.js"; -test('prNumber', (t) => { - t.is(prNumber('https://github.com/owner/repo/pull/10'), '10'); - t.is(prNumber('pull/10'), '10'); - t.is(prNumber('https://gitlab.com/owner/repo/merge_requests/10'), '10'); +test("prNumber", (t) => { + t.is(prNumber("https://github.com/owner/repo/pull/10"), "10"); + t.is(prNumber("pull/10"), "10"); + t.is(prNumber("https://gitlab.com/owner/repo/merge_requests/10"), "10"); }); diff --git a/test/services/appveyor.test.js b/test/services/appveyor.test.js index 1ea190b..e94e6fe 100644 --- a/test/services/appveyor.test.js +++ b/test/services/appveyor.test.js @@ -1,59 +1,63 @@ -const test = require('ava'); -const appveyor = require('../../services/appveyor.js'); +import test from "ava"; +import appveyor from "../../services/appveyor.js"; const env = { - APPVEYOR: 'true', - APPVEYOR_JOB_NUMBER: '1234', - APPVEYOR_JOB_ID: 'job_id', - APPVEYOR_BUILD_VERSION: '100', - APPVEYOR_REPO_COMMIT: '5678', - APPVEYOR_REPO_TAG_NAME: 'tag_name', - APPVEYOR_BUILD_NUMBER: '91011', - APPVEYOR_REPO_BRANCH: 'master', - APPVEYOR_REPO_NAME: 'owner/repo', - APPVEYOR_PROJECT_SLUG: 'owner/repo', - APPVEYOR_BUILD_FOLDER: '/', + APPVEYOR: "true", + APPVEYOR_JOB_NUMBER: "1234", + APPVEYOR_JOB_ID: "job_id", + APPVEYOR_BUILD_VERSION: "100", + APPVEYOR_REPO_COMMIT: "5678", + APPVEYOR_REPO_TAG_NAME: "tag_name", + APPVEYOR_BUILD_NUMBER: "91011", + APPVEYOR_REPO_BRANCH: "master", + APPVEYOR_REPO_NAME: "owner/repo", + APPVEYOR_PROJECT_SLUG: "owner/repo", + APPVEYOR_BUILD_FOLDER: "/", }; -test('Push', (t) => { - t.deepEqual(appveyor.configuration({env}), { - name: 'Appveyor', - service: 'appveyor', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://ci.appveyor.com/project/owner/repo/build/100', - branch: 'master', - root: '/', - job: '1234', - jobUrl: 'https://ci.appveyor.com/project/owner/repo/build/job/job_id', +test("Push", (t) => { + t.deepEqual(appveyor.configuration({ env }), { + name: "Appveyor", + service: "appveyor", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://ci.appveyor.com/project/owner/repo/build/100", + branch: "master", + root: "/", + job: "1234", + jobUrl: "https://ci.appveyor.com/project/owner/repo/build/job/job_id", pr: undefined, isPr: false, prBranch: undefined, - slug: 'owner/repo', + slug: "owner/repo", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( appveyor.configuration({ - env: {...env, APPVEYOR_PULL_REQUEST_NUMBER: '10', APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH: 'pr-branch'}, + env: { + ...env, + APPVEYOR_PULL_REQUEST_NUMBER: "10", + APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH: "pr-branch", + }, }), { - name: 'Appveyor', - service: 'appveyor', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://ci.appveyor.com/project/owner/repo/build/100', - branch: 'master', - root: '/', - job: '1234', - jobUrl: 'https://ci.appveyor.com/project/owner/repo/build/job/job_id', - pr: '10', + name: "Appveyor", + service: "appveyor", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://ci.appveyor.com/project/owner/repo/build/100", + branch: "master", + root: "/", + job: "1234", + jobUrl: "https://ci.appveyor.com/project/owner/repo/build/job/job_id", + pr: "10", isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', + prBranch: "pr-branch", + slug: "owner/repo", } ); }); diff --git a/test/services/azure-pipelines.test.js b/test/services/azure-pipelines.test.js index 3e8aa19..a6feb16 100644 --- a/test/services/azure-pipelines.test.js +++ b/test/services/azure-pipelines.test.js @@ -1,62 +1,67 @@ -const test = require('ava'); -const azurePipelines = require('../../services/azure-pipelines.js'); +import test from "ava"; +import azurePipelines from "../../services/azure-pipelines.js"; const env = { - BUILD_BUILDURI: 'https://fabrikamfiber.visualstudio.com/_git/Scripts', - BUILD_SOURCEVERSION: '5678', - BUILD_BUILDNUMBER: '1234', - BUILD_SOURCEBRANCH: 'master', - BUILD_REPOSITORY_LOCALPATH: '/', + BUILD_BUILDURI: "https://fabrikamfiber.visualstudio.com/_git/Scripts", + BUILD_SOURCEVERSION: "5678", + BUILD_BUILDNUMBER: "1234", + BUILD_SOURCEBRANCH: "master", + BUILD_REPOSITORY_LOCALPATH: "/", }; -test('Push', (t) => { - t.deepEqual(azurePipelines.configuration({env}), { - name: 'Azure Pipelines', - service: 'azurePipelines', - commit: '5678', - build: '1234', - branch: 'master', +test("Push", (t) => { + t.deepEqual(azurePipelines.configuration({ env }), { + name: "Azure Pipelines", + service: "azurePipelines", + commit: "5678", + build: "1234", + branch: "master", pr: undefined, isPr: false, prBranch: undefined, - root: '/', + root: "/", }); }); -test('Push - with long branch name', (t) => { - t.deepEqual(azurePipelines.configuration({env: {...env, BUILD_SOURCEBRANCH: 'refs/heads/master'}}), { - name: 'Azure Pipelines', - service: 'azurePipelines', - commit: '5678', - build: '1234', - branch: 'master', - pr: undefined, - isPr: false, - prBranch: undefined, - root: '/', - }); +test("Push - with long branch name", (t) => { + t.deepEqual( + azurePipelines.configuration({ + env: { ...env, BUILD_SOURCEBRANCH: "refs/heads/master" }, + }), + { + name: "Azure Pipelines", + service: "azurePipelines", + commit: "5678", + build: "1234", + branch: "master", + pr: undefined, + isPr: false, + prBranch: undefined, + root: "/", + } + ); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( azurePipelines.configuration({ env: { ...env, - SYSTEM_PULLREQUEST_PULLREQUESTID: '9', - SYSTEM_PULLREQUEST_TARGETBRANCH: 'master', - SYSTEM_PULLREQUEST_SOURCEBRANCH: 'pr-branch', + SYSTEM_PULLREQUEST_PULLREQUESTID: "9", + SYSTEM_PULLREQUEST_TARGETBRANCH: "master", + SYSTEM_PULLREQUEST_SOURCEBRANCH: "pr-branch", }, }), { - name: 'Azure Pipelines', - service: 'azurePipelines', - commit: '5678', - build: '1234', - branch: 'master', - pr: '9', + name: "Azure Pipelines", + service: "azurePipelines", + commit: "5678", + build: "1234", + branch: "master", + pr: "9", isPr: true, - prBranch: 'pr-branch', - root: '/', + prBranch: "pr-branch", + root: "/", } ); }); diff --git a/test/services/bamboo.test.js b/test/services/bamboo.test.js index d5f124e..dc52690 100644 --- a/test/services/bamboo.test.js +++ b/test/services/bamboo.test.js @@ -1,27 +1,27 @@ -const test = require('ava'); -const bamboo = require('../../services/bamboo.js'); +import test from "ava"; +import bamboo from "../../services/bamboo.js"; /* eslint-disable camelcase */ const env = { - bamboo_buildKey: '1234', - bamboo_planRepository_1_revision: '5678', - bamboo_buildNumber: '91011', - bamboo_planRepository_1_branchName: 'master', - bamboo_build_working_directory: '/some/working/dir', - bamboo_buildResultsUrl: 'https://server.com/buildresult', + bamboo_buildKey: "1234", + bamboo_planRepository_1_revision: "5678", + bamboo_buildNumber: "91011", + bamboo_planRepository_1_branchName: "master", + bamboo_build_working_directory: "/some/working/dir", + bamboo_buildResultsUrl: "https://server.com/buildresult", }; -test('Push', (t) => { - t.deepEqual(bamboo.configuration({env}), { - name: 'Bamboo', - service: 'bamboo', - commit: '5678', - build: '91011', - buildUrl: 'https://server.com/buildresult', - branch: 'master', - job: '1234', - root: '/some/working/dir', +test("Push", (t) => { + t.deepEqual(bamboo.configuration({ env }), { + name: "Bamboo", + service: "bamboo", + commit: "5678", + build: "91011", + buildUrl: "https://server.com/buildresult", + branch: "master", + job: "1234", + root: "/some/working/dir", }); }); diff --git a/test/services/bitbucket.test.js b/test/services/bitbucket.test.js index d390ffd..f73a0c2 100644 --- a/test/services/bitbucket.test.js +++ b/test/services/bitbucket.test.js @@ -1,25 +1,26 @@ -const test = require('ava'); -const bitbucket = require('../../services/bitbucket.js'); +import test from "ava"; +import bitbucket from "../../services/bitbucket.js"; const env = { - BITBUCKET_COMMIT: 'b5ce5ce', - BITBUCKET_TAG: 'tag_name', - BITBUCKET_BUILD_NUMBER: '1964', - BITBUCKET_BRANCH: 'master', - BITBUCKET_REPO_SLUG: 'owner/repo', - BITBUCKET_CLONE_DIR: '/', + BITBUCKET_COMMIT: "b5ce5ce", + BITBUCKET_TAG: "tag_name", + BITBUCKET_BUILD_NUMBER: "1964", + BITBUCKET_BRANCH: "master", + BITBUCKET_REPO_SLUG: "owner/repo", + BITBUCKET_CLONE_DIR: "/", }; -test('Push', (t) => { - t.deepEqual(bitbucket.configuration({env}), { - name: 'Bitbucket Pipelines', - service: 'bitbucket', - commit: 'b5ce5ce', - tag: 'tag_name', - build: '1964', - buildUrl: 'https://bitbucket.org/owner/repo/addon/pipelines/home#!/results/1964', - branch: 'master', - slug: 'owner/repo', - root: '/', +test("Push", (t) => { + t.deepEqual(bitbucket.configuration({ env }), { + name: "Bitbucket Pipelines", + service: "bitbucket", + commit: "b5ce5ce", + tag: "tag_name", + build: "1964", + buildUrl: + "https://bitbucket.org/owner/repo/addon/pipelines/home#!/results/1964", + branch: "master", + slug: "owner/repo", + root: "/", }); }); diff --git a/test/services/bitrise.test.js b/test/services/bitrise.test.js index 4803e44..3a76272 100644 --- a/test/services/bitrise.test.js +++ b/test/services/bitrise.test.js @@ -1,50 +1,55 @@ -const test = require('ava'); -const bitrise = require('../../services/bitrise.js'); +import test from "ava"; +import bitrise from "../../services/bitrise.js"; const env = { - BITRISE_IO: 'true', - BITRISE_GIT_COMMIT: '5678', - BITRISE_GIT_TAG: 'tag_name', - BITRISE_BUILD_NUMBER: '91011', - BITRISE_BUILD_URL: 'https://server.com/buildresult', - BITRISE_GIT_BRANCH: 'master', - BITRISE_PULL_REQUEST: 'false', - BITRISE_APP_SLUG: 'owner/repo', + BITRISE_IO: "true", + BITRISE_GIT_COMMIT: "5678", + BITRISE_GIT_TAG: "tag_name", + BITRISE_BUILD_NUMBER: "91011", + BITRISE_BUILD_URL: "https://server.com/buildresult", + BITRISE_GIT_BRANCH: "master", + BITRISE_PULL_REQUEST: "false", + BITRISE_APP_SLUG: "owner/repo", }; -test('Push', (t) => { - t.deepEqual(bitrise.configuration({env}), { - name: 'Bitrise', - service: 'bitrise', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://server.com/buildresult', - branch: 'master', +test("Push", (t) => { + t.deepEqual(bitrise.configuration({ env }), { + name: "Bitrise", + service: "bitrise", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://server.com/buildresult", + branch: "master", pr: undefined, isPr: false, prBranch: undefined, - slug: 'owner/repo', + slug: "owner/repo", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( bitrise.configuration({ - env: {...env, BITRISE_PULL_REQUEST: '10', BITRISEIO_GIT_BRANCH_DEST: 'master', BITRISE_GIT_BRANCH: 'pr-branch'}, + env: { + ...env, + BITRISE_PULL_REQUEST: "10", + BITRISEIO_GIT_BRANCH_DEST: "master", + BITRISE_GIT_BRANCH: "pr-branch", + }, }), { - name: 'Bitrise', - service: 'bitrise', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://server.com/buildresult', - branch: 'master', - pr: '10', + name: "Bitrise", + service: "bitrise", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://server.com/buildresult", + branch: "master", + pr: "10", isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', + prBranch: "pr-branch", + slug: "owner/repo", } ); }); diff --git a/test/services/buddy.test.js b/test/services/buddy.test.js index 547628b..d0b8950 100644 --- a/test/services/buddy.test.js +++ b/test/services/buddy.test.js @@ -1,50 +1,54 @@ -const test = require('ava'); -const buddy = require('../../services/buddy.js'); +import test from "ava"; +import buddy from "../../services/buddy.js"; const env = { - BUDDY_WORKSPACE_ID: '111', - BUDDY_EXECUTION_ID: '5', + BUDDY_WORKSPACE_ID: "111", + BUDDY_EXECUTION_ID: "5", BUDDY_EXECUTION_URL: - 'https://app.buddy.works/pierredenisvanduynslager/playground/pipelines/pipeline/1111/execution/5b92a93863115e06fe4f7129', - BUDDY_EXECUTION_REVISION: '5678', - BUDDY_EXECUTION_TAG: 'tag_name', - BUDDY_EXECUTION_BRANCH: 'master', - BUDDY_REPO_SLUG: 'owner/repo', + "https://app.buddy.works/pierredenisvanduynslager/playground/pipelines/pipeline/1111/execution/5b92a93863115e06fe4f7129", + BUDDY_EXECUTION_REVISION: "5678", + BUDDY_EXECUTION_TAG: "tag_name", + BUDDY_EXECUTION_BRANCH: "master", + BUDDY_REPO_SLUG: "owner/repo", }; -test('Push', (t) => { - t.deepEqual(buddy.configuration({env}), { - name: 'Buddy', - service: 'buddy', - commit: '5678', - tag: 'tag_name', - build: '5', +test("Push", (t) => { + t.deepEqual(buddy.configuration({ env }), { + name: "Buddy", + service: "buddy", + commit: "5678", + tag: "tag_name", + build: "5", buildUrl: - 'https://app.buddy.works/pierredenisvanduynslager/playground/pipelines/pipeline/1111/execution/5b92a93863115e06fe4f7129', - branch: 'master', + "https://app.buddy.works/pierredenisvanduynslager/playground/pipelines/pipeline/1111/execution/5b92a93863115e06fe4f7129", + branch: "master", pr: undefined, isPr: false, - slug: 'owner/repo', + slug: "owner/repo", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( buddy.configuration({ - env: {...env, BUDDY_EXECUTION_PULL_REQUEST_ID: 'pull/10', BUDDY_EXECUTION_BRANCH: undefined}, + env: { + ...env, + BUDDY_EXECUTION_PULL_REQUEST_ID: "pull/10", + BUDDY_EXECUTION_BRANCH: undefined, + }, }), { - name: 'Buddy', - service: 'buddy', - commit: '5678', - tag: 'tag_name', - build: '5', + name: "Buddy", + service: "buddy", + commit: "5678", + tag: "tag_name", + build: "5", buildUrl: - 'https://app.buddy.works/pierredenisvanduynslager/playground/pipelines/pipeline/1111/execution/5b92a93863115e06fe4f7129', + "https://app.buddy.works/pierredenisvanduynslager/playground/pipelines/pipeline/1111/execution/5b92a93863115e06fe4f7129", branch: undefined, - pr: '10', + pr: "10", isPr: true, - slug: 'owner/repo', + slug: "owner/repo", } ); }); diff --git a/test/services/buildkite.test.js b/test/services/buildkite.test.js index 1e781e2..7f7cf63 100644 --- a/test/services/buildkite.test.js +++ b/test/services/buildkite.test.js @@ -1,59 +1,59 @@ -const test = require('ava'); -const buildkite = require('../../services/buildkite.js'); +import test from "ava"; +import buildkite from "../../services/buildkite.js"; const env = { - BUILDKITE: 'true', - BUILDKITE_COMMIT: '5678', - BUILDKITE_TAG: 'tag_name', - BUILDKITE_BUILD_NUMBER: '91011', - BUILDKITE_BUILD_URL: 'https://server.com/buildresult', - BUILDKITE_BRANCH: 'master', - BUILDKITE_PULL_REQUEST: 'false', - BUILDKITE_BUILD_CHECKOUT_PATH: '/', - BUILDKITE_ORGANIZATION_SLUG: 'owner', - BUILDKITE_PROJECT_SLUG: 'repo', + BUILDKITE: "true", + BUILDKITE_COMMIT: "5678", + BUILDKITE_TAG: "tag_name", + BUILDKITE_BUILD_NUMBER: "91011", + BUILDKITE_BUILD_URL: "https://server.com/buildresult", + BUILDKITE_BRANCH: "master", + BUILDKITE_PULL_REQUEST: "false", + BUILDKITE_BUILD_CHECKOUT_PATH: "/", + BUILDKITE_ORGANIZATION_SLUG: "owner", + BUILDKITE_PROJECT_SLUG: "repo", }; -test('Push', (t) => { - t.deepEqual(buildkite.configuration({env}), { - name: 'Buildkite', - service: 'buildkite', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://server.com/buildresult', - branch: 'master', - root: '/', +test("Push", (t) => { + t.deepEqual(buildkite.configuration({ env }), { + name: "Buildkite", + service: "buildkite", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://server.com/buildresult", + branch: "master", + root: "/", pr: undefined, isPr: false, prBranch: undefined, - slug: 'owner/repo', + slug: "owner/repo", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( buildkite.configuration({ env: { ...env, - BUILDKITE_PULL_REQUEST: '10', - BUILDKITE_PULL_REQUEST_BASE_BRANCH: 'master', - BUILDKITE_BRANCH: 'pr-branch', + BUILDKITE_PULL_REQUEST: "10", + BUILDKITE_PULL_REQUEST_BASE_BRANCH: "master", + BUILDKITE_BRANCH: "pr-branch", }, }), { - name: 'Buildkite', - service: 'buildkite', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://server.com/buildresult', - branch: 'master', - root: '/', - pr: '10', + name: "Buildkite", + service: "buildkite", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://server.com/buildresult", + branch: "master", + root: "/", + pr: "10", isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', + prBranch: "pr-branch", + slug: "owner/repo", } ); }); diff --git a/test/services/circleci.test.js b/test/services/circleci.test.js index 1b03adf..7257d2f 100644 --- a/test/services/circleci.test.js +++ b/test/services/circleci.test.js @@ -1,82 +1,101 @@ -const test = require('ava'); -const circleci = require('../../services/circleci.js'); +import test from "ava"; +import circleci from "../../services/circleci.js"; const env = { - CIRCLECI: 'true', - CIRCLE_BUILD_NUM: '1234', - CIRCLE_BUILD_URL: 'https://server.com/buildresult', - CIRCLE_SHA1: '5678', - CIRCLE_TAG: 'tag_name', - CIRCLE_BRANCH: 'master', - CIRCLE_NODE_INDEX: '1', - CIRCLE_PROJECT_USERNAME: 'owner', - CIRCLE_PROJECT_REPONAME: 'repo', + CIRCLECI: "true", + CIRCLE_BUILD_NUM: "1234", + CIRCLE_BUILD_URL: "https://server.com/buildresult", + CIRCLE_SHA1: "5678", + CIRCLE_TAG: "tag_name", + CIRCLE_BRANCH: "master", + CIRCLE_NODE_INDEX: "1", + CIRCLE_PROJECT_USERNAME: "owner", + CIRCLE_PROJECT_REPONAME: "repo", }; -test('Push', (t) => { - t.deepEqual(circleci.configuration({env}), { - name: 'CircleCI', - service: 'circleci', - commit: '5678', - tag: 'tag_name', - build: '1234', - buildUrl: 'https://server.com/buildresult', - job: '1234.1', - branch: 'master', +test("Push", (t) => { + t.deepEqual(circleci.configuration({ env }), { + name: "CircleCI", + service: "circleci", + commit: "5678", + tag: "tag_name", + build: "1234", + buildUrl: "https://server.com/buildresult", + job: "1234.1", + branch: "master", pr: undefined, isPr: false, prBranch: undefined, - slug: 'owner/repo', + slug: "owner/repo", }); }); -test('PR 1.0', (t) => { - t.deepEqual(circleci.configuration({env: {...env, CIRCLE_BRANCH: 'pr-branch', CI_PULL_REQUEST: 'uri/pr/10'}}), { - name: 'CircleCI', - service: 'circleci', - commit: '5678', - tag: 'tag_name', - build: '1234', - buildUrl: 'https://server.com/buildresult', - job: '1234.1', - branch: undefined, - pr: '10', - isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', - }); +test("PR 1.0", (t) => { + t.deepEqual( + circleci.configuration({ + env: { ...env, CIRCLE_BRANCH: "pr-branch", CI_PULL_REQUEST: "uri/pr/10" }, + }), + { + name: "CircleCI", + service: "circleci", + commit: "5678", + tag: "tag_name", + build: "1234", + buildUrl: "https://server.com/buildresult", + job: "1234.1", + branch: undefined, + pr: "10", + isPr: true, + prBranch: "pr-branch", + slug: "owner/repo", + } + ); }); -test('PR 2.0', (t) => { - t.deepEqual(circleci.configuration({env: {...env, CIRCLE_BRANCH: 'pr-branch', CIRCLE_PULL_REQUEST: 'uri/pr/10'}}), { - name: 'CircleCI', - service: 'circleci', - commit: '5678', - tag: 'tag_name', - build: '1234', - buildUrl: 'https://server.com/buildresult', - job: '1234.1', - branch: undefined, - pr: '10', - isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', - }); +test("PR 2.0", (t) => { + t.deepEqual( + circleci.configuration({ + env: { + ...env, + CIRCLE_BRANCH: "pr-branch", + CIRCLE_PULL_REQUEST: "uri/pr/10", + }, + }), + { + name: "CircleCI", + service: "circleci", + commit: "5678", + tag: "tag_name", + build: "1234", + buildUrl: "https://server.com/buildresult", + job: "1234.1", + branch: undefined, + pr: "10", + isPr: true, + prBranch: "pr-branch", + slug: "owner/repo", + } + ); }); -test('PR 2.0 without pull uri', (t) => { - t.deepEqual(circleci.configuration({env: {...env, CIRCLE_BRANCH: 'pr-branch', CIRCLE_PR_NUMBER: '10'}}), { - name: 'CircleCI', - service: 'circleci', - commit: '5678', - tag: 'tag_name', - build: '1234', - buildUrl: 'https://server.com/buildresult', - job: '1234.1', - branch: undefined, - pr: '10', - isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', - }); +test("PR 2.0 without pull uri", (t) => { + t.deepEqual( + circleci.configuration({ + env: { ...env, CIRCLE_BRANCH: "pr-branch", CIRCLE_PR_NUMBER: "10" }, + }), + { + name: "CircleCI", + service: "circleci", + commit: "5678", + tag: "tag_name", + build: "1234", + buildUrl: "https://server.com/buildresult", + job: "1234.1", + branch: undefined, + pr: "10", + isPr: true, + prBranch: "pr-branch", + slug: "owner/repo", + } + ); }); diff --git a/test/services/cirrus.test.js b/test/services/cirrus.test.js index b9c93c9..4d012ef 100644 --- a/test/services/cirrus.test.js +++ b/test/services/cirrus.test.js @@ -1,56 +1,61 @@ -const test = require('ava'); -const cirrus = require('../../services/cirrus.js'); +import test from "ava"; +import cirrus from "../../services/cirrus.js"; const env = { - CIRRUS_CI: 'true', - CIRRUS_BUILD_ID: '1234', - CIRRUS_CHANGE_IN_REPO: '5678', - CIRRUS_TAG: 'tag_name', - CIRRUS_TASK_ID: '91011', - CIRRUS_BRANCH: 'master', - CIRRUS_REPO_FULL_NAME: 'owner/repo', - CIRRUS_WORKING_DIR: '/', + CIRRUS_CI: "true", + CIRRUS_BUILD_ID: "1234", + CIRRUS_CHANGE_IN_REPO: "5678", + CIRRUS_TAG: "tag_name", + CIRRUS_TASK_ID: "91011", + CIRRUS_BRANCH: "master", + CIRRUS_REPO_FULL_NAME: "owner/repo", + CIRRUS_WORKING_DIR: "/", }; -test('Push', (t) => { - t.deepEqual(cirrus.configuration({env}), { - name: 'Cirrus CI', - service: 'cirrus', - commit: '5678', - tag: 'tag_name', - build: '1234', - buildUrl: 'https://cirrus-ci.com/build/1234', - job: '91011', - jobUrl: 'https://cirrus-ci.com/task/91011', - branch: 'master', +test("Push", (t) => { + t.deepEqual(cirrus.configuration({ env }), { + name: "Cirrus CI", + service: "cirrus", + commit: "5678", + tag: "tag_name", + build: "1234", + buildUrl: "https://cirrus-ci.com/build/1234", + job: "91011", + jobUrl: "https://cirrus-ci.com/task/91011", + branch: "master", pr: undefined, isPr: false, prBranch: undefined, - slug: 'owner/repo', - root: '/', + slug: "owner/repo", + root: "/", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( cirrus.configuration({ - env: {...env, CIRRUS_PR: '239', CIRRUS_BASE_BRANCH: 'master', CIRRUS_BRANCH: 'pr-branch'}, + env: { + ...env, + CIRRUS_PR: "239", + CIRRUS_BASE_BRANCH: "master", + CIRRUS_BRANCH: "pr-branch", + }, }), { - name: 'Cirrus CI', - service: 'cirrus', - commit: '5678', - tag: 'tag_name', - build: '1234', - buildUrl: 'https://cirrus-ci.com/build/1234', - job: '91011', - jobUrl: 'https://cirrus-ci.com/task/91011', - branch: 'master', - pr: '239', + name: "Cirrus CI", + service: "cirrus", + commit: "5678", + tag: "tag_name", + build: "1234", + buildUrl: "https://cirrus-ci.com/build/1234", + job: "91011", + jobUrl: "https://cirrus-ci.com/task/91011", + branch: "master", + pr: "239", isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', - root: '/', + prBranch: "pr-branch", + slug: "owner/repo", + root: "/", } ); }); diff --git a/test/services/cloudflare-pages.test.js b/test/services/cloudflare-pages.test.js index a8cec44..488765e 100644 --- a/test/services/cloudflare-pages.test.js +++ b/test/services/cloudflare-pages.test.js @@ -1,19 +1,19 @@ -const test = require('ava'); -const cloudflarePages = require('../../services/cloudflare-pages.js'); +import test from "ava"; +import cloudflarePages from "../../services/cloudflare-pages.js"; const env = { - CF_PAGES: '1', - CF_PAGES_COMMIT_SHA: '6792f396eadca08926a7c810b7b77fa3815db1f4', - CF_PAGES_BRANCH: 'main', - PWD: '/opt/buildhome/repo', + CF_PAGES: "1", + CF_PAGES_COMMIT_SHA: "6792f396eadca08926a7c810b7b77fa3815db1f4", + CF_PAGES_BRANCH: "main", + PWD: "/opt/buildhome/repo", }; -test('Push', (t) => { - t.deepEqual(cloudflarePages.configuration({env}), { - name: 'Cloudflare Pages', - service: 'cloudflarePages', - commit: '6792f396eadca08926a7c810b7b77fa3815db1f4', - branch: 'main', - root: '/opt/buildhome/repo', +test("Push", (t) => { + t.deepEqual(cloudflarePages.configuration({ env }), { + name: "Cloudflare Pages", + service: "cloudflarePages", + commit: "6792f396eadca08926a7c810b7b77fa3815db1f4", + branch: "main", + root: "/opt/buildhome/repo", }); }); diff --git a/test/services/codebuild.test.js b/test/services/codebuild.test.js index 39f8ad3..0c7a15e 100644 --- a/test/services/codebuild.test.js +++ b/test/services/codebuild.test.js @@ -1,24 +1,24 @@ -const test = require('ava'); -const codebuild = require('../../services/codebuild.js'); -const {gitRepo, gitHead} = require('../helpers/git-utils.js'); +import test from "ava"; +import codebuild from "../../services/codebuild.js"; +import { gitRepo, gitHead } from "../helpers/git-utils.js"; const env = { - CODEBUILD_BUILD_ID: 'env-ci:40cc72d2-acd5-46f4-a86b-6a3dcd2a39a0', - AWS_REGION: 'us-east-1', - PWD: '/codebuild/output/src807365521/src/github.com/owner/repo', + CODEBUILD_BUILD_ID: "env-ci:40cc72d2-acd5-46f4-a86b-6a3dcd2a39a0", + AWS_REGION: "us-east-1", + PWD: "/codebuild/output/src807365521/src/github.com/owner/repo", }; -test('Push', async (t) => { - const {cwd} = await gitRepo(true); +test("Push", async (t) => { + const { cwd } = await gitRepo(true); - t.deepEqual(codebuild.configuration({env, cwd}), { - name: 'AWS CodeBuild', - service: 'codebuild', - commit: await gitHead({cwd}), - build: 'env-ci:40cc72d2-acd5-46f4-a86b-6a3dcd2a39a0', - branch: 'master', + t.deepEqual(codebuild.configuration({ env, cwd }), { + name: "AWS CodeBuild", + service: "codebuild", + commit: await gitHead({ cwd }), + build: "env-ci:40cc72d2-acd5-46f4-a86b-6a3dcd2a39a0", + branch: "master", buildUrl: - 'https://console.aws.amazon.com/codebuild/home?region=us-east-1#/builds/env-ci:40cc72d2-acd5-46f4-a86b-6a3dcd2a39a0/view/new', - root: '/codebuild/output/src807365521/src/github.com/owner/repo', + "https://console.aws.amazon.com/codebuild/home?region=us-east-1#/builds/env-ci:40cc72d2-acd5-46f4-a86b-6a3dcd2a39a0/view/new", + root: "/codebuild/output/src807365521/src/github.com/owner/repo", }); }); diff --git a/test/services/codefresh.test.js b/test/services/codefresh.test.js index 8c85b65..eb4b701 100644 --- a/test/services/codefresh.test.js +++ b/test/services/codefresh.test.js @@ -1,49 +1,54 @@ -const test = require('ava'); -const codefresh = require('../../services/codefresh.js'); +import test from "ava"; +import codefresh from "../../services/codefresh.js"; const env = { - CF_BUILD_ID: '91011', - CF_REVISION: '5678', - CF_BUILD_URL: 'https://g.codefresh.io//build/91011', - CF_BRANCH: 'master', - CF_REPO_OWNER: 'owner', - CF_REPO_NAME: 'repo', - CF_VOLUME_PATH: '/', + CF_BUILD_ID: "91011", + CF_REVISION: "5678", + CF_BUILD_URL: "https://g.codefresh.io//build/91011", + CF_BRANCH: "master", + CF_REPO_OWNER: "owner", + CF_REPO_NAME: "repo", + CF_VOLUME_PATH: "/", }; -test('Push', (t) => { - t.deepEqual(codefresh.configuration({env}), { - name: 'Codefresh', - service: 'codefresh', - commit: '5678', - build: '91011', - buildUrl: 'https://g.codefresh.io//build/91011', - branch: 'master', +test("Push", (t) => { + t.deepEqual(codefresh.configuration({ env }), { + name: "Codefresh", + service: "codefresh", + commit: "5678", + build: "91011", + buildUrl: "https://g.codefresh.io//build/91011", + branch: "master", pr: undefined, isPr: false, prBranch: undefined, - root: '/', - slug: 'owner/repo', + root: "/", + slug: "owner/repo", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( codefresh.configuration({ - env: {...env, CF_PULL_REQUEST_NUMBER: '10', CF_PULL_REQUEST_TARGET: 'master', CF_BRANCH: 'pr-branch'}, + env: { + ...env, + CF_PULL_REQUEST_NUMBER: "10", + CF_PULL_REQUEST_TARGET: "master", + CF_BRANCH: "pr-branch", + }, }), { - name: 'Codefresh', - service: 'codefresh', - commit: '5678', - build: '91011', - buildUrl: 'https://g.codefresh.io//build/91011', - branch: 'master', - pr: '10', + name: "Codefresh", + service: "codefresh", + commit: "5678", + build: "91011", + buildUrl: "https://g.codefresh.io//build/91011", + branch: "master", + pr: "10", isPr: true, - prBranch: 'pr-branch', - root: '/', - slug: 'owner/repo', + prBranch: "pr-branch", + root: "/", + slug: "owner/repo", } ); }); diff --git a/test/services/codeship.test.js b/test/services/codeship.test.js index 6d1db1f..e702a2e 100644 --- a/test/services/codeship.test.js +++ b/test/services/codeship.test.js @@ -1,23 +1,23 @@ -const test = require('ava'); -const codeship = require('../../services/codeship.js'); +import test from "ava"; +import codeship from "../../services/codeship.js"; const env = { - CI_NAME: 'codeship', - CI_BUILD_NUMBER: '91011', - CI_BUILD_URL: 'https://server.com/buildresult', - CI_COMMIT_ID: '5678', - CI_BRANCH: 'master', - CI_REPO_NAME: 'owner/repo', + CI_NAME: "codeship", + CI_BUILD_NUMBER: "91011", + CI_BUILD_URL: "https://server.com/buildresult", + CI_COMMIT_ID: "5678", + CI_BRANCH: "master", + CI_REPO_NAME: "owner/repo", }; -test('Push', (t) => { - t.deepEqual(codeship.configuration({env}), { - name: 'Codeship', - service: 'codeship', - commit: '5678', - build: '91011', - buildUrl: 'https://server.com/buildresult', - branch: 'master', - slug: 'owner/repo', +test("Push", (t) => { + t.deepEqual(codeship.configuration({ env }), { + name: "Codeship", + service: "codeship", + commit: "5678", + build: "91011", + buildUrl: "https://server.com/buildresult", + branch: "master", + slug: "owner/repo", }); }); diff --git a/test/services/drone.test.js b/test/services/drone.test.js index a48ce5d..c6b87f6 100644 --- a/test/services/drone.test.js +++ b/test/services/drone.test.js @@ -1,64 +1,64 @@ -const test = require('ava'); -const drone = require('../../services/drone.js'); +import test from "ava"; +import drone from "../../services/drone.js"; const env = { - DRONE: 'true', - DRONE_JOB_NUMBER: '1234', - DRONE_BUILD_LINK: 'https://drone.example.com/owner/repo/91011', - DRONE_COMMIT_SHA: '5678', - DRONE_TAG: 'tag_name', - DRONE_BUILD_NUMBER: '91011', - DRONE_BRANCH: 'master', - DRONE_REPO_OWNER: 'owner', - DRONE_REPO_NAME: 'repo', - DRONE_WORKSPACE: '/drone/src/github.com/owner/repo', + DRONE: "true", + DRONE_JOB_NUMBER: "1234", + DRONE_BUILD_LINK: "https://drone.example.com/owner/repo/91011", + DRONE_COMMIT_SHA: "5678", + DRONE_TAG: "tag_name", + DRONE_BUILD_NUMBER: "91011", + DRONE_BRANCH: "master", + DRONE_REPO_OWNER: "owner", + DRONE_REPO_NAME: "repo", + DRONE_WORKSPACE: "/drone/src/github.com/owner/repo", }; -test('Push', (t) => { - t.deepEqual(drone.configuration({env}), { - name: 'Drone', - service: 'drone', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://drone.example.com/owner/repo/91011', - branch: 'master', - job: '1234', - jobUrl: 'https://drone.example.com/owner/repo/91011', +test("Push", (t) => { + t.deepEqual(drone.configuration({ env }), { + name: "Drone", + service: "drone", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://drone.example.com/owner/repo/91011", + branch: "master", + job: "1234", + jobUrl: "https://drone.example.com/owner/repo/91011", pr: undefined, isPr: false, prBranch: undefined, - slug: 'owner/repo', - root: '/drone/src/github.com/owner/repo', + slug: "owner/repo", + root: "/drone/src/github.com/owner/repo", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( drone.configuration({ env: { ...env, - DRONE_PULL_REQUEST: '10', - DRONE_BUILD_EVENT: 'pull_request', - DRONE_TARGET_BRANCH: 'master', - DRONE_SOURCE_BRANCH: 'pr-branch', + DRONE_PULL_REQUEST: "10", + DRONE_BUILD_EVENT: "pull_request", + DRONE_TARGET_BRANCH: "master", + DRONE_SOURCE_BRANCH: "pr-branch", }, }), { - name: 'Drone', - service: 'drone', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://drone.example.com/owner/repo/91011', - branch: 'master', - job: '1234', - jobUrl: 'https://drone.example.com/owner/repo/91011', - pr: '10', + name: "Drone", + service: "drone", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://drone.example.com/owner/repo/91011", + branch: "master", + job: "1234", + jobUrl: "https://drone.example.com/owner/repo/91011", + pr: "10", isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', - root: '/drone/src/github.com/owner/repo', + prBranch: "pr-branch", + slug: "owner/repo", + root: "/drone/src/github.com/owner/repo", } ); }); diff --git a/test/services/git.test.js b/test/services/git.test.js index bd124af..0846bdb 100644 --- a/test/services/git.test.js +++ b/test/services/git.test.js @@ -1,10 +1,10 @@ -const test = require('ava'); -const git = require('../../services/git.js'); -const {gitRepo, gitCommit} = require('../helpers/git-utils.js'); +import test from "ava"; +import git from "../../services/git.js"; +import { gitRepo, gitCommit } from "../helpers/git-utils.js"; test('Return "commit" and "branch" from local repository', async (t) => { - const {cwd} = await gitRepo(); - const commit = await gitCommit('Test commit message', {cwd}); + const { cwd } = await gitRepo(); + const commit = await gitCommit("Test commit message", { cwd }); - t.deepEqual(git.configuration({cwd}), {commit, branch: 'master'}); + t.deepEqual(git.configuration({ cwd }), { commit, branch: "master" }); }); diff --git a/test/services/github.test.js b/test/services/github.test.js index e6bbf12..bc2e42f 100644 --- a/test/services/github.test.js +++ b/test/services/github.test.js @@ -1,181 +1,190 @@ -const fs = require('fs'); -const test = require('ava'); -const tempy = require('tempy'); -const github = require('../../services/github.js'); +import fs from "node:fs"; + +import test from "ava"; +import { temporaryFile } from "tempy"; +import github from "../../services/github.js"; /* eslint camelcase: ["error", {properties: "never"}] */ const env = { - GITHUB_ACTIONS: 'true', - GITHUB_SHA: '1234', - GITHUB_REF: 'refs/heads/master', - GITHUB_REPOSITORY: 'owner/repo', - GITHUB_WORKSPACE: '/workspace', - GITHUB_RUN_ID: '1246789', + GITHUB_ACTIONS: "true", + GITHUB_SHA: "1234", + GITHUB_REF: "refs/heads/master", + GITHUB_REPOSITORY: "owner/repo", + GITHUB_WORKSPACE: "/workspace", + GITHUB_RUN_ID: "1246789", }; -test('Push', (t) => { - t.deepEqual(github.configuration({env}), { - name: 'GitHub Actions', - service: 'github', - commit: '1234', - build: '1246789', - branch: 'master', +test("Push", (t) => { + t.deepEqual(github.configuration({ env }), { + name: "GitHub Actions", + service: "github", + commit: "1234", + build: "1246789", + branch: "master", isPr: false, prBranch: undefined, - root: '/workspace', - slug: 'owner/repo', + root: "/workspace", + slug: "owner/repo", }); }); -test('Push - with short branch name', (t) => { - t.deepEqual(github.configuration({env: {...env, GITHUB_REF: 'master'}}), { - name: 'GitHub Actions', - service: 'github', - commit: '1234', - build: '1246789', - branch: 'master', +test("Push - with short branch name", (t) => { + t.deepEqual(github.configuration({ env: { ...env, GITHUB_REF: "master" } }), { + name: "GitHub Actions", + service: "github", + commit: "1234", + build: "1246789", + branch: "master", isPr: false, prBranch: undefined, - root: '/workspace', - slug: 'owner/repo', + root: "/workspace", + slug: "owner/repo", }); }); -test('PR - with event.json file', (t) => { - const eventFile = tempy.file({extension: 'json'}); - const event = {pull_request: {number: '10', base: {ref: 'refs/heads/master'}}}; +test("PR - with event.json file", (t) => { + const eventFile = temporaryFile({ extension: "json" }); + const event = { + pull_request: { number: "10", base: { ref: "refs/heads/master" } }, + }; fs.writeFileSync(eventFile, JSON.stringify(event)); t.deepEqual( github.configuration({ env: { ...env, - GITHUB_EVENT_NAME: 'pull_request', - GITHUB_REF: 'refs/pull/10/merge', + GITHUB_EVENT_NAME: "pull_request", + GITHUB_REF: "refs/pull/10/merge", GITHUB_EVENT_PATH: eventFile, }, }), { - name: 'GitHub Actions', - service: 'github', - commit: '1234', - build: '1246789', - branch: 'master', + name: "GitHub Actions", + service: "github", + commit: "1234", + build: "1246789", + branch: "master", isPr: true, - prBranch: 'refs/pull/10/merge', - pr: '10', - root: '/workspace', - slug: 'owner/repo', + prBranch: "refs/pull/10/merge", + pr: "10", + root: "/workspace", + slug: "owner/repo", } ); }); -test('PR - target', (t) => { - const eventFile = tempy.file({extension: 'json'}); - const event = {pull_request: {number: '10', base: {ref: 'refs/heads/master'}}}; +test("PR - target", (t) => { + const eventFile = temporaryFile({ extension: "json" }); + const event = { + pull_request: { number: "10", base: { ref: "refs/heads/master" } }, + }; fs.writeFileSync(eventFile, JSON.stringify(event)); t.deepEqual( github.configuration({ env: { ...env, - GITHUB_EVENT_NAME: 'pull_request_target', - GITHUB_REF: 'refs/heads/master', + GITHUB_EVENT_NAME: "pull_request_target", + GITHUB_REF: "refs/heads/master", GITHUB_EVENT_PATH: eventFile, }, }), { - name: 'GitHub Actions', - service: 'github', - commit: '1234', - build: '1246789', - branch: 'master', + name: "GitHub Actions", + service: "github", + commit: "1234", + build: "1246789", + branch: "master", isPr: true, - prBranch: 'refs/pull/10/merge', - pr: '10', - root: '/workspace', - slug: 'owner/repo', + prBranch: "refs/pull/10/merge", + pr: "10", + root: "/workspace", + slug: "owner/repo", } ); }); -test('PR - with event.json file and short branch name', (t) => { - const eventFile = tempy.file({extension: 'json'}); - const event = {pull_request: {number: '10', base: {ref: 'master'}}}; +test("PR - with event.json file and short branch name", (t) => { + const eventFile = temporaryFile({ extension: "json" }); + const event = { pull_request: { number: "10", base: { ref: "master" } } }; fs.writeFileSync(eventFile, JSON.stringify(event)); t.deepEqual( github.configuration({ env: { ...env, - GITHUB_EVENT_NAME: 'pull_request', - GITHUB_REF: 'refs/pull/10/merge', + GITHUB_EVENT_NAME: "pull_request", + GITHUB_REF: "refs/pull/10/merge", GITHUB_EVENT_PATH: eventFile, }, }), { - name: 'GitHub Actions', - service: 'github', - commit: '1234', - build: '1246789', - branch: 'master', + name: "GitHub Actions", + service: "github", + commit: "1234", + build: "1246789", + branch: "master", isPr: true, - prBranch: 'refs/pull/10/merge', - pr: '10', - root: '/workspace', - slug: 'owner/repo', + prBranch: "refs/pull/10/merge", + pr: "10", + root: "/workspace", + slug: "owner/repo", } ); }); -test('PR - with missing event.json file', (t) => { +test("PR - with missing event.json file", (t) => { t.deepEqual( github.configuration({ env: { ...env, - GITHUB_EVENT_NAME: 'pull_request', - GITHUB_REF: 'refs/pull/10/merge', - GITHUB_EVENT_PATH: '/tmp/null', + GITHUB_EVENT_NAME: "pull_request", + GITHUB_REF: "refs/pull/10/merge", + GITHUB_EVENT_PATH: "/tmp/null", }, }), { - name: 'GitHub Actions', - service: 'github', - commit: '1234', - build: '1246789', + name: "GitHub Actions", + service: "github", + commit: "1234", + build: "1246789", branch: undefined, isPr: true, - prBranch: 'refs/pull/10/merge', + prBranch: "refs/pull/10/merge", pr: undefined, - root: '/workspace', - slug: 'owner/repo', + root: "/workspace", + slug: "owner/repo", } ); }); -test('PR - with missing event.json file path', (t) => { +test("PR - with missing event.json file path", (t) => { t.deepEqual( github.configuration({ - env: {...env, GITHUB_EVENT_NAME: 'pull_request', GITHUB_REF: 'refs/pull/10/merge'}, + env: { + ...env, + GITHUB_EVENT_NAME: "pull_request", + GITHUB_REF: "refs/pull/10/merge", + }, }), { - name: 'GitHub Actions', - service: 'github', - commit: '1234', - build: '1246789', + name: "GitHub Actions", + service: "github", + commit: "1234", + build: "1246789", branch: undefined, isPr: true, - prBranch: 'refs/pull/10/merge', + prBranch: "refs/pull/10/merge", pr: undefined, - root: '/workspace', - slug: 'owner/repo', + root: "/workspace", + slug: "owner/repo", } ); }); test('PR - with missing "pull_request" in event.json file', (t) => { - const eventFile = tempy.file({extension: 'json'}); + const eventFile = temporaryFile({ extension: "json" }); const event = {}; fs.writeFileSync(eventFile, JSON.stringify(event)); @@ -183,65 +192,65 @@ test('PR - with missing "pull_request" in event.json file', (t) => { github.configuration({ env: { ...env, - GITHUB_EVENT_NAME: 'pull_request', - GITHUB_REF: 'refs/pull/10/merge', + GITHUB_EVENT_NAME: "pull_request", + GITHUB_REF: "refs/pull/10/merge", GITHUB_EVENT_PATH: eventFile, }, }), { - name: 'GitHub Actions', - service: 'github', - commit: '1234', - build: '1246789', + name: "GitHub Actions", + service: "github", + commit: "1234", + build: "1246789", branch: undefined, isPr: true, - prBranch: 'refs/pull/10/merge', + prBranch: "refs/pull/10/merge", pr: undefined, - root: '/workspace', - slug: 'owner/repo', + root: "/workspace", + slug: "owner/repo", } ); }); test('PR - with missing "pull_request.base" in event.json file', (t) => { - const eventFile = tempy.file({extension: 'json'}); - const event = {pull_request: {number: '10'}}; + const eventFile = temporaryFile({ extension: "json" }); + const event = { pull_request: { number: "10" } }; fs.writeFileSync(eventFile, JSON.stringify(event)); t.deepEqual( github.configuration({ env: { ...env, - GITHUB_EVENT_NAME: 'pull_request', - GITHUB_REF: 'refs/pull/10/merge', + GITHUB_EVENT_NAME: "pull_request", + GITHUB_REF: "refs/pull/10/merge", GITHUB_EVENT_PATH: eventFile, }, }), { - name: 'GitHub Actions', - service: 'github', - commit: '1234', - build: '1246789', + name: "GitHub Actions", + service: "github", + commit: "1234", + build: "1246789", branch: undefined, isPr: true, - prBranch: 'refs/pull/10/merge', - pr: '10', - root: '/workspace', - slug: 'owner/repo', + prBranch: "refs/pull/10/merge", + pr: "10", + root: "/workspace", + slug: "owner/repo", } ); }); -test('Push - with incorrect branch name', (t) => { - t.deepEqual(github.configuration({env: {...env, GITHUB_REF: ''}}), { - name: 'GitHub Actions', - service: 'github', - commit: '1234', - build: '1246789', +test("Push - with incorrect branch name", (t) => { + t.deepEqual(github.configuration({ env: { ...env, GITHUB_REF: "" } }), { + name: "GitHub Actions", + service: "github", + commit: "1234", + build: "1246789", branch: undefined, isPr: false, prBranch: undefined, - root: '/workspace', - slug: 'owner/repo', + root: "/workspace", + slug: "owner/repo", }); }); diff --git a/test/services/gitlab.test.js b/test/services/gitlab.test.js index d579c58..ef3cdb7 100644 --- a/test/services/gitlab.test.js +++ b/test/services/gitlab.test.js @@ -1,62 +1,62 @@ -const test = require('ava'); -const gitlab = require('../../services/gitlab.js'); +import test from "ava"; +import gitlab from "../../services/gitlab.js"; const env = { - GITLAB_CI: 'true', - CI_COMMIT_SHA: '5678', - CI_COMMIT_TAG: 'tag_name', - CI_PIPELINE_ID: '91011', - CI_JOB_ID: '1213', - CI_PROJECT_URL: 'https://gitlab.com/owner/repo', - CI_COMMIT_REF_NAME: 'master', - CI_PROJECT_PATH: 'owner/repo', - CI_PROJECT_DIR: '/', + GITLAB_CI: "true", + CI_COMMIT_SHA: "5678", + CI_COMMIT_TAG: "tag_name", + CI_PIPELINE_ID: "91011", + CI_JOB_ID: "1213", + CI_PROJECT_URL: "https://gitlab.com/owner/repo", + CI_COMMIT_REF_NAME: "master", + CI_PROJECT_PATH: "owner/repo", + CI_PROJECT_DIR: "/", }; -test('Push', (t) => { - t.deepEqual(gitlab.configuration({env}), { - name: 'GitLab CI/CD', - service: 'gitlab', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://gitlab.com/owner/repo/pipelines/91011', - branch: 'master', - root: '/', - job: '1213', - jobUrl: 'https://gitlab.com/owner/repo/-/jobs/1213', +test("Push", (t) => { + t.deepEqual(gitlab.configuration({ env }), { + name: "GitLab CI/CD", + service: "gitlab", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://gitlab.com/owner/repo/pipelines/91011", + branch: "master", + root: "/", + job: "1213", + jobUrl: "https://gitlab.com/owner/repo/-/jobs/1213", pr: undefined, isPr: false, prBranch: undefined, - slug: 'owner/repo', + slug: "owner/repo", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( gitlab.configuration({ env: { ...env, - CI_MERGE_REQUEST_ID: '10', - CI_MERGE_REQUEST_TARGET_BRANCH_NAME: 'master', - CI_MERGE_REQUEST_SOURCE_BRANCH_NAME: 'pr-branch', + CI_MERGE_REQUEST_ID: "10", + CI_MERGE_REQUEST_TARGET_BRANCH_NAME: "master", + CI_MERGE_REQUEST_SOURCE_BRANCH_NAME: "pr-branch", }, }), { - name: 'GitLab CI/CD', - service: 'gitlab', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://gitlab.com/owner/repo/pipelines/91011', - branch: 'master', - root: '/', - job: '1213', - jobUrl: 'https://gitlab.com/owner/repo/-/jobs/1213', - pr: '10', + name: "GitLab CI/CD", + service: "gitlab", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://gitlab.com/owner/repo/pipelines/91011", + branch: "master", + root: "/", + job: "1213", + jobUrl: "https://gitlab.com/owner/repo/-/jobs/1213", + pr: "10", isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', + prBranch: "pr-branch", + slug: "owner/repo", } ); }); diff --git a/test/services/jenkins.test.js b/test/services/jenkins.test.js index f9071b1..2c1232c 100644 --- a/test/services/jenkins.test.js +++ b/test/services/jenkins.test.js @@ -1,79 +1,97 @@ -const test = require('ava'); -const jenkins = require('../../services/jenkins.js'); +import test from "ava"; +import jenkins from "../../services/jenkins.js"; const env = { - JENKINS_URL: 'http://jenkins.jenkins.example/', - GIT_COMMIT: '5678', - BUILD_NUMBER: '91011', - BUILD_URL: 'http://jenkins.jenkins.example/buildResult', - WORKSPACE: '/', + JENKINS_URL: "http://jenkins.jenkins.example/", + GIT_COMMIT: "5678", + BUILD_NUMBER: "91011", + BUILD_URL: "http://jenkins.jenkins.example/buildResult", + WORKSPACE: "/", }; -test('Push', (t) => { - t.deepEqual(jenkins.configuration({env: {...env, GIT_BRANCH: 'master'}}), { - name: 'Jenkins', - service: 'jenkins', - commit: '5678', - build: '91011', - buildUrl: 'http://jenkins.jenkins.example/buildResult', - branch: 'master', - root: '/', - pr: undefined, - prBranch: undefined, - isPr: false, - }); +test("Push", (t) => { + t.deepEqual( + jenkins.configuration({ env: { ...env, GIT_BRANCH: "master" } }), + { + name: "Jenkins", + service: "jenkins", + commit: "5678", + build: "91011", + buildUrl: "http://jenkins.jenkins.example/buildResult", + branch: "master", + root: "/", + pr: undefined, + prBranch: undefined, + isPr: false, + } + ); }); -test('PR', (t) => { - t.deepEqual(jenkins.configuration({env: {...env, BRANCH_NAME: 'pr-branch', CHANGE_ID: '10'}}), { - name: 'Jenkins', - service: 'jenkins', - commit: '5678', - build: '91011', - buildUrl: 'http://jenkins.jenkins.example/buildResult', - branch: undefined, - root: '/', - pr: '10', - prBranch: 'pr-branch', - isPr: true, - }); +test("PR", (t) => { + t.deepEqual( + jenkins.configuration({ + env: { ...env, BRANCH_NAME: "pr-branch", CHANGE_ID: "10" }, + }), + { + name: "Jenkins", + service: "jenkins", + commit: "5678", + build: "91011", + buildUrl: "http://jenkins.jenkins.example/buildResult", + branch: undefined, + root: "/", + pr: "10", + prBranch: "pr-branch", + isPr: true, + } + ); }); -test('PR (PR ghprb-plugin)', (t) => { +test("PR (PR ghprb-plugin)", (t) => { t.deepEqual( jenkins.configuration({ - env: {...env, ghprbSourceBranch: 'pr-branch', ghprbTargetBranch: 'master', ghprbPullId: '10'}, + env: { + ...env, + ghprbSourceBranch: "pr-branch", + ghprbTargetBranch: "master", + ghprbPullId: "10", + }, }), { - name: 'Jenkins', - service: 'jenkins', - commit: '5678', - build: '91011', - buildUrl: 'http://jenkins.jenkins.example/buildResult', - branch: 'master', - root: '/', - pr: '10', - prBranch: 'pr-branch', + name: "Jenkins", + service: "jenkins", + commit: "5678", + build: "91011", + buildUrl: "http://jenkins.jenkins.example/buildResult", + branch: "master", + root: "/", + pr: "10", + prBranch: "pr-branch", isPr: true, } ); }); -test('PR (gitlab-plugin)', (t) => { +test("PR (gitlab-plugin)", (t) => { t.deepEqual( jenkins.configuration({ - env: {...env, ghprbSourceBranch: 'pr-branch', gitlabTargetBranch: 'master', gitlabMergeRequestId: '10'}, + env: { + ...env, + ghprbSourceBranch: "pr-branch", + gitlabTargetBranch: "master", + gitlabMergeRequestId: "10", + }, }), { - name: 'Jenkins', - service: 'jenkins', - commit: '5678', - build: '91011', - buildUrl: 'http://jenkins.jenkins.example/buildResult', - branch: 'master', - root: '/', - pr: '10', - prBranch: 'pr-branch', + name: "Jenkins", + service: "jenkins", + commit: "5678", + build: "91011", + buildUrl: "http://jenkins.jenkins.example/buildResult", + branch: "master", + root: "/", + pr: "10", + prBranch: "pr-branch", isPr: true, } ); diff --git a/test/services/jetbrains-space.test.js b/test/services/jetbrains-space.test.js index f1faec2..c1e076d 100644 --- a/test/services/jetbrains-space.test.js +++ b/test/services/jetbrains-space.test.js @@ -1,22 +1,22 @@ -const test = require('ava'); -const jetbrainsSpace = require('../../services/jetbrains-space.js'); +import test from "ava"; +import jetbrainsSpace from "../../services/jetbrains-space.js"; const env = { - JB_SPACE_PROJECT_ID: '1', - JB_SPACE_PROJECT_KEY: 'TEST-PROJECT', - JB_SPACE_EXECUTION_NUMBER: '123', - JB_SPACE_GIT_REVISION: '12345', - JB_SPACE_GIT_BRANCH: 'refs/heads/some_branch', - JB_SPACE_GIT_REPOSITORY_NAME: 'test-repository', + JB_SPACE_PROJECT_ID: "1", + JB_SPACE_PROJECT_KEY: "TEST-PROJECT", + JB_SPACE_EXECUTION_NUMBER: "123", + JB_SPACE_GIT_REVISION: "12345", + JB_SPACE_GIT_BRANCH: "refs/heads/some_branch", + JB_SPACE_GIT_REPOSITORY_NAME: "test-repository", }; -test('Push', (t) => { - t.deepEqual(jetbrainsSpace.configuration({env}), { - name: 'JetBrains Space', - service: 'jetbrainsSpace', - commit: '12345', - build: '123', - branch: 'some_branch', - slug: 'test-project/test-repository', +test("Push", (t) => { + t.deepEqual(jetbrainsSpace.configuration({ env }), { + name: "JetBrains Space", + service: "jetbrainsSpace", + commit: "12345", + build: "123", + branch: "some_branch", + slug: "test-project/test-repository", }); }); diff --git a/test/services/netlify.test.js b/test/services/netlify.test.js index eac7f3b..b37cab6 100644 --- a/test/services/netlify.test.js +++ b/test/services/netlify.test.js @@ -1,62 +1,64 @@ -const test = require('ava'); -const netlify = require('../../services/netlify.js'); +import test from "ava"; +import netlify from "../../services/netlify.js"; const env = { - CI: 'true', - NETLIFY: 'true', - SITE_NAME: 'website-name', - SITE_ID: '37597ed0-087c-4d3e-960f-1d5c8fbac75e', - URL: 'https://example.com', - COMMIT_REF: '495d988cee629dbf63dca717e0vd1e4f77afd034', - HEAD: 'test-page', - BRANCH: 'test-page', - BUILD_ID: '60106253d15c6600087018ef', - DEPLOY_ID: '60106253d13f6600587118d1', - DEPLOY_URL: 'https://60106253d13f6600587118d1--website-name.netlify.app', - DEPLOY_PRIME_URL: 'https://website-name.netlify.app', - REPOSITORY_URL: 'https://github.com/owner/repo', - PWD: '/opt/build/repo', + CI: "true", + NETLIFY: "true", + SITE_NAME: "website-name", + SITE_ID: "37597ed0-087c-4d3e-960f-1d5c8fbac75e", + URL: "https://example.com", + COMMIT_REF: "495d988cee629dbf63dca717e0vd1e4f77afd034", + HEAD: "test-page", + BRANCH: "test-page", + BUILD_ID: "60106253d15c6600087018ef", + DEPLOY_ID: "60106253d13f6600587118d1", + DEPLOY_URL: "https://60106253d13f6600587118d1--website-name.netlify.app", + DEPLOY_PRIME_URL: "https://website-name.netlify.app", + REPOSITORY_URL: "https://github.com/owner/repo", + PWD: "/opt/build/repo", }; -test('Push', (t) => { - t.deepEqual(netlify.configuration({env}), { - name: 'Netlify', - service: 'netlify', - commit: '495d988cee629dbf63dca717e0vd1e4f77afd034', - branch: 'test-page', - build: '60106253d13f6600587118d1', - buildUrl: 'https://app.netlify.com/sites/website-name/deploys/60106253d13f6600587118d1', +test("Push", (t) => { + t.deepEqual(netlify.configuration({ env }), { + name: "Netlify", + service: "netlify", + commit: "495d988cee629dbf63dca717e0vd1e4f77afd034", + branch: "test-page", + build: "60106253d13f6600587118d1", + buildUrl: + "https://app.netlify.com/sites/website-name/deploys/60106253d13f6600587118d1", pr: undefined, isPr: false, prBranch: undefined, - slug: 'owner/repo', - root: '/opt/build/repo', + slug: "owner/repo", + root: "/opt/build/repo", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( netlify.configuration({ env: { ...env, - BRANCH: 'pull/12/head', - PULL_REQUEST: 'true', - REVIEW_ID: '12', - DEPLOY_PRIME_URL: 'https://deploy-preview-12--website-name.netlify.app', + BRANCH: "pull/12/head", + PULL_REQUEST: "true", + REVIEW_ID: "12", + DEPLOY_PRIME_URL: "https://deploy-preview-12--website-name.netlify.app", }, }), { - name: 'Netlify', - service: 'netlify', - commit: '495d988cee629dbf63dca717e0vd1e4f77afd034', + name: "Netlify", + service: "netlify", + commit: "495d988cee629dbf63dca717e0vd1e4f77afd034", branch: undefined, - build: '60106253d13f6600587118d1', - buildUrl: 'https://app.netlify.com/sites/website-name/deploys/60106253d13f6600587118d1', - pr: '12', + build: "60106253d13f6600587118d1", + buildUrl: + "https://app.netlify.com/sites/website-name/deploys/60106253d13f6600587118d1", + pr: "12", isPr: true, - prBranch: 'test-page', - slug: 'owner/repo', - root: '/opt/build/repo', + prBranch: "test-page", + slug: "owner/repo", + root: "/opt/build/repo", } ); }); diff --git a/test/services/puppet.test.js b/test/services/puppet.test.js index cbfc4da..714037b 100644 --- a/test/services/puppet.test.js +++ b/test/services/puppet.test.js @@ -1,22 +1,22 @@ -const test = require('ava'); -const puppet = require('../../services/puppet.js'); +import test from "ava"; +import puppet from "../../services/puppet.js"; const env = { - DISTELLI_BUILDNUM: '1234', - DISTELLI_RELEASE: 'https://server.com/buildresult', - DISTELLI_RELREVISION: '5678', - DISTELLI_RELBRANCH: 'master', - DISTELLI_INSTALLHOME: '/opt/distelli', + DISTELLI_BUILDNUM: "1234", + DISTELLI_RELEASE: "https://server.com/buildresult", + DISTELLI_RELREVISION: "5678", + DISTELLI_RELBRANCH: "master", + DISTELLI_INSTALLHOME: "/opt/distelli", }; -test('Push', (t) => { - t.deepEqual(puppet.configuration({env}), { - name: 'Puppet', - service: 'puppet', - build: '1234', - buildUrl: 'https://server.com/buildresult', - commit: '5678', - branch: 'master', - root: '/opt/distelli', +test("Push", (t) => { + t.deepEqual(puppet.configuration({ env }), { + name: "Puppet", + service: "puppet", + build: "1234", + buildUrl: "https://server.com/buildresult", + commit: "5678", + branch: "master", + root: "/opt/distelli", }); }); diff --git a/test/services/sail.test.js b/test/services/sail.test.js index 2b9f206..bf22bfc 100644 --- a/test/services/sail.test.js +++ b/test/services/sail.test.js @@ -1,36 +1,45 @@ -const test = require('ava'); -const sail = require('../../services/sail.js'); +import test from "ava"; +import sail from "../../services/sail.js"; const env = { - SAIL_COMMIT_SHA: 'full-commit-sha', - SAIL_COMMIT_BRANCH: 'master', - SAIL_REPO_OWNER: 'owner', - SAIL_REPO_NAME: 'repo', - SAIL_CLONE_DIR: '/workspace/repo', + SAIL_COMMIT_SHA: "full-commit-sha", + SAIL_COMMIT_BRANCH: "master", + SAIL_REPO_OWNER: "owner", + SAIL_REPO_NAME: "repo", + SAIL_CLONE_DIR: "/workspace/repo", }; -test('Push', (t) => { - t.deepEqual(sail.configuration({env}), { - name: 'Sail CI', - service: 'sail', - commit: 'full-commit-sha', - branch: 'master', - slug: 'owner/repo', +test("Push", (t) => { + t.deepEqual(sail.configuration({ env }), { + name: "Sail CI", + service: "sail", + commit: "full-commit-sha", + branch: "master", + slug: "owner/repo", pr: undefined, isPr: false, - root: '/workspace/repo', + root: "/workspace/repo", }); }); -test('PR', (t) => { - t.deepEqual(sail.configuration({env: {...env, SAIL_PULL_REQUEST_NUMBER: '10', SAIL_COMMIT_BRANCH: 'pull/10'}}), { - name: 'Sail CI', - service: 'sail', - commit: 'full-commit-sha', - branch: undefined, - slug: 'owner/repo', - root: '/workspace/repo', - pr: '10', - isPr: true, - }); +test("PR", (t) => { + t.deepEqual( + sail.configuration({ + env: { + ...env, + SAIL_PULL_REQUEST_NUMBER: "10", + SAIL_COMMIT_BRANCH: "pull/10", + }, + }), + { + name: "Sail CI", + service: "sail", + commit: "full-commit-sha", + branch: undefined, + slug: "owner/repo", + root: "/workspace/repo", + pr: "10", + isPr: true, + } + ); }); diff --git a/test/services/scrutinizer.test.js b/test/services/scrutinizer.test.js index ccb7397..19e8963 100644 --- a/test/services/scrutinizer.test.js +++ b/test/services/scrutinizer.test.js @@ -1,40 +1,44 @@ -const test = require('ava'); -const scrutinizer = require('../../services/scrutinizer.js'); +import test from "ava"; +import scrutinizer from "../../services/scrutinizer.js"; const env = { - SCRUTINIZER: 'true', - SCRUTINIZER_SHA1: '5678', - SCRUTINIZER_INSPECTION_UUID: '91011', - SCRUTINIZER_BRANCH: 'master', + SCRUTINIZER: "true", + SCRUTINIZER_SHA1: "5678", + SCRUTINIZER_INSPECTION_UUID: "91011", + SCRUTINIZER_BRANCH: "master", }; -test('Push', (t) => { - t.deepEqual(scrutinizer.configuration({env}), { - name: 'Scrutinizer', - service: 'scrutinizer', - commit: '5678', - build: '91011', - branch: 'master', +test("Push", (t) => { + t.deepEqual(scrutinizer.configuration({ env }), { + name: "Scrutinizer", + service: "scrutinizer", + commit: "5678", + build: "91011", + branch: "master", pr: undefined, isPr: false, prBranch: undefined, }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( scrutinizer.configuration({ - env: {...env, SCRUTINIZER_PR_NUMBER: '10', SCRUTINIZER_PR_SOURCE_BRANCH: 'pr-branch'}, + env: { + ...env, + SCRUTINIZER_PR_NUMBER: "10", + SCRUTINIZER_PR_SOURCE_BRANCH: "pr-branch", + }, }), { - name: 'Scrutinizer', - service: 'scrutinizer', - commit: '5678', - build: '91011', - branch: 'master', - pr: '10', + name: "Scrutinizer", + service: "scrutinizer", + commit: "5678", + build: "91011", + branch: "master", + pr: "10", isPr: true, - prBranch: 'pr-branch', + prBranch: "pr-branch", } ); }); diff --git a/test/services/semaphore.test.js b/test/services/semaphore.test.js index add0685..4a61a39 100644 --- a/test/services/semaphore.test.js +++ b/test/services/semaphore.test.js @@ -1,93 +1,110 @@ -const test = require('ava'); -const semaphore = require('../../services/semaphore.js'); -const {gitRepo, gitCommit} = require('../helpers/git-utils.js'); +import test from "ava"; +import semaphore from "../../services/semaphore.js"; +import { gitRepo, gitCommit } from "../helpers/git-utils.js"; const env1 = { - SEMAPHORE: 'true', - SEMAPHORE_BUILD_NUMBER: '91011', - BRANCH_NAME: 'master', - SEMAPHORE_PROJECT_DIR: '/', - SEMAPHORE_REPO_SLUG: 'owner/repo', + SEMAPHORE: "true", + SEMAPHORE_BUILD_NUMBER: "91011", + BRANCH_NAME: "master", + SEMAPHORE_PROJECT_DIR: "/", + SEMAPHORE_REPO_SLUG: "owner/repo", }; const env2 = { - SEMAPHORE: 'true', - SEMAPHORE_GIT_SHA: '5678', - SEMAPHORE_JOB_ID: '91011', - SEMAPHORE_GIT_BRANCH: 'master', - SEMAPHORE_GIT_DIR: '/', - SEMAPHORE_GIT_REPO_SLUG: 'owner/repo', + SEMAPHORE: "true", + SEMAPHORE_GIT_SHA: "5678", + SEMAPHORE_JOB_ID: "91011", + SEMAPHORE_GIT_BRANCH: "master", + SEMAPHORE_GIT_DIR: "/", + SEMAPHORE_GIT_REPO_SLUG: "owner/repo", }; -test('Push 1.0', async (t) => { - const {cwd} = await gitRepo(true); - const commit = await gitCommit('Test commit message', {cwd}); +test("Push 1.0", async (t) => { + const { cwd } = await gitRepo(true); + const commit = await gitCommit("Test commit message", { cwd }); - t.deepEqual(semaphore.configuration({env: env1, cwd}), { - name: 'Semaphore', - service: 'semaphore', + t.deepEqual(semaphore.configuration({ env: env1, cwd }), { + name: "Semaphore", + service: "semaphore", commit, tag: undefined, - build: '91011', - branch: 'master', - root: '/', + build: "91011", + branch: "master", + root: "/", pr: undefined, isPr: false, prBranch: undefined, - slug: 'owner/repo', + slug: "owner/repo", }); }); -test('PR 1.0', async (t) => { - const {cwd} = await gitRepo(true); - const commit = await gitCommit('Test commit message', {cwd}); +test("PR 1.0", async (t) => { + const { cwd } = await gitRepo(true); + const commit = await gitCommit("Test commit message", { cwd }); - t.deepEqual(semaphore.configuration({env: {...env1, PULL_REQUEST_NUMBER: '10', BRANCH_NAME: 'pr-branch'}, cwd}), { - name: 'Semaphore', - service: 'semaphore', - commit, - tag: undefined, - build: '91011', - branch: undefined, - root: '/', - pr: '10', - isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', - }); + t.deepEqual( + semaphore.configuration({ + env: { ...env1, PULL_REQUEST_NUMBER: "10", BRANCH_NAME: "pr-branch" }, + cwd, + }), + { + name: "Semaphore", + service: "semaphore", + commit, + tag: undefined, + build: "91011", + branch: undefined, + root: "/", + pr: "10", + isPr: true, + prBranch: "pr-branch", + slug: "owner/repo", + } + ); }); -test('Push 2.0', (t) => { - t.deepEqual(semaphore.configuration({env: {...env2, SEMAPHORE_GIT_TAG_NAME: 'v1.0.0'}}), { - name: 'Semaphore', - service: 'semaphore', - commit: '5678', - tag: 'v1.0.0', - build: '91011', - branch: 'master', - root: '/', - pr: undefined, - isPr: false, - prBranch: undefined, - slug: 'owner/repo', - }); +test("Push 2.0", (t) => { + t.deepEqual( + semaphore.configuration({ + env: { ...env2, SEMAPHORE_GIT_TAG_NAME: "v1.0.0" }, + }), + { + name: "Semaphore", + service: "semaphore", + commit: "5678", + tag: "v1.0.0", + build: "91011", + branch: "master", + root: "/", + pr: undefined, + isPr: false, + prBranch: undefined, + slug: "owner/repo", + } + ); }); -test('PR 2.0', (t) => { +test("PR 2.0", (t) => { t.deepEqual( - semaphore.configuration({env: {...env2, SEMAPHORE_GIT_PR_NUMBER: '10', SEMAPHORE_GIT_PR_BRANCH: 'pr-branch'}}), + semaphore.configuration({ + env: { + ...env2, + SEMAPHORE_GIT_PR_NUMBER: "10", + SEMAPHORE_GIT_PR_BRANCH: "pr-branch", + }, + }), { - name: 'Semaphore', - service: 'semaphore', - commit: '5678', + name: "Semaphore", + service: "semaphore", + commit: "5678", tag: undefined, - build: '91011', - branch: 'master', - root: '/', - pr: '10', + build: "91011", + branch: "master", + root: "/", + pr: "10", isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', + prBranch: "pr-branch", + slug: "owner/repo", } ); }); diff --git a/test/services/shippable.test.js b/test/services/shippable.test.js index 6bbeb54..5133c2a 100644 --- a/test/services/shippable.test.js +++ b/test/services/shippable.test.js @@ -1,57 +1,63 @@ -const test = require('ava'); -const shippable = require('../../services/shippable.js'); +import test from "ava"; +import shippable from "../../services/shippable.js"; const env = { - SHIPPABLE: 'true', - JOB_NUMBER: '1234', - COMMIT: '5678', - GIT_TAG_NAME: 'tag_name', - BUILD_NUMBER: '91011', - BRANCH: 'master', - BUILD_URL: 'https://server.com/buildresult', - PULL_REQUEST: 'false', - IS_PULL_REQUEST: 'false', - SHIPPABLE_BUILD_DIR: '/', - SHIPPABLE_REPO_SLUG: 'owner/repo', + SHIPPABLE: "true", + JOB_NUMBER: "1234", + COMMIT: "5678", + GIT_TAG_NAME: "tag_name", + BUILD_NUMBER: "91011", + BRANCH: "master", + BUILD_URL: "https://server.com/buildresult", + PULL_REQUEST: "false", + IS_PULL_REQUEST: "false", + SHIPPABLE_BUILD_DIR: "/", + SHIPPABLE_REPO_SLUG: "owner/repo", }; -test('Push', (t) => { - t.deepEqual(shippable.configuration({env}), { - name: 'Shippable', - service: 'shippable', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://server.com/buildresult', - branch: 'master', - root: '/', - job: '1234', +test("Push", (t) => { + t.deepEqual(shippable.configuration({ env }), { + name: "Shippable", + service: "shippable", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://server.com/buildresult", + branch: "master", + root: "/", + job: "1234", pr: undefined, isPr: false, prBranch: undefined, - slug: 'owner/repo', + slug: "owner/repo", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( shippable.configuration({ - env: {...env, BASE_BRANCH: 'master', HEAD_BRANCH: 'pr-branch', IS_PULL_REQUEST: 'true', PULL_REQUEST: '10'}, + env: { + ...env, + BASE_BRANCH: "master", + HEAD_BRANCH: "pr-branch", + IS_PULL_REQUEST: "true", + PULL_REQUEST: "10", + }, }), { - name: 'Shippable', - service: 'shippable', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://server.com/buildresult', - branch: 'master', - root: '/', - job: '1234', - pr: '10', + name: "Shippable", + service: "shippable", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://server.com/buildresult", + branch: "master", + root: "/", + job: "1234", + pr: "10", isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', + prBranch: "pr-branch", + slug: "owner/repo", } ); }); diff --git a/test/services/teamcity.test.js b/test/services/teamcity.test.js index a140ee8..52b6b5d 100644 --- a/test/services/teamcity.test.js +++ b/test/services/teamcity.test.js @@ -1,116 +1,153 @@ -const fs = require('fs'); -const test = require('ava'); -const tempy = require('tempy'); -const teamcity = require('../../services/teamcity.js'); -const {gitRepo} = require('../helpers/git-utils.js'); +import fs from "node:fs"; + +import test from "ava"; +import { temporaryFile } from "tempy"; +import teamcity from "../../services/teamcity.js"; +import { gitRepo } from "../helpers/git-utils.js"; const env = { - TEAMCITY_VERSION: '2017.1.2 (build 46812)', - BUILD_VCS_NUMBER: '5678', - BUILD_NUMBER: '91011', - TEAMCITY_BUILDCONF_NAME: 'owner/repo', + TEAMCITY_VERSION: "2017.1.2 (build 46812)", + BUILD_VCS_NUMBER: "5678", + BUILD_NUMBER: "91011", + TEAMCITY_BUILDCONF_NAME: "owner/repo", }; -test('Push - with build properties file', (t) => { - const buildFile = tempy.file({extension: 'properties'}); - const buildProperties = ['teamcity.build.branch=master', 'teamcity.build.workingDir=/']; - fs.writeFileSync(buildFile, buildProperties.join('\n') + '\n'); +test("Push - with build properties file", (t) => { + const buildFile = temporaryFile({ extension: "properties" }); + const buildProperties = [ + "teamcity.build.branch=master", + "teamcity.build.workingDir=/", + ]; + fs.writeFileSync(buildFile, buildProperties.join("\n") + "\n"); - t.deepEqual(teamcity.configuration({env: {...env, TEAMCITY_BUILD_PROPERTIES_FILE: buildFile}}), { - name: 'TeamCity', - service: 'teamcity', - commit: '5678', - build: '91011', - branch: 'master', - root: '/', - slug: 'owner/repo', - }); + t.deepEqual( + teamcity.configuration({ + env: { ...env, TEAMCITY_BUILD_PROPERTIES_FILE: buildFile }, + }), + { + name: "TeamCity", + service: "teamcity", + commit: "5678", + build: "91011", + branch: "master", + root: "/", + slug: "owner/repo", + } + ); }); -test('Push - with build and config properties files', (t) => { - const buildFile = tempy.file({extension: 'properties'}); - const configFile = tempy.file({extension: 'properties'}); - const buildProperties = ['teamcity.build.branch=master', `teamcity.configuration.properties.file=${configFile}`]; - const configProperties = ['teamcity.build.workingDir=/']; - fs.writeFileSync(buildFile, buildProperties.join('\n') + '\n'); - fs.writeFileSync(configFile, configProperties.join('\n') + '\n'); +test("Push - with build and config properties files", (t) => { + const buildFile = temporaryFile({ extension: "properties" }); + const configFile = temporaryFile({ extension: "properties" }); + const buildProperties = [ + "teamcity.build.branch=master", + `teamcity.configuration.properties.file=${configFile}`, + ]; + const configProperties = ["teamcity.build.workingDir=/"]; + fs.writeFileSync(buildFile, buildProperties.join("\n") + "\n"); + fs.writeFileSync(configFile, configProperties.join("\n") + "\n"); - t.deepEqual(teamcity.configuration({env: {...env, TEAMCITY_BUILD_PROPERTIES_FILE: buildFile}}), { - name: 'TeamCity', - service: 'teamcity', - commit: '5678', - build: '91011', - branch: 'master', - root: '/', - slug: 'owner/repo', - }); + t.deepEqual( + teamcity.configuration({ + env: { ...env, TEAMCITY_BUILD_PROPERTIES_FILE: buildFile }, + }), + { + name: "TeamCity", + service: "teamcity", + commit: "5678", + build: "91011", + branch: "master", + root: "/", + slug: "owner/repo", + } + ); }); -test('Push - prioritize build properties file values', (t) => { - const buildFile = tempy.file({extension: 'properties'}); - const configFile = tempy.file({extension: 'properties'}); +test("Push - prioritize build properties file values", (t) => { + const buildFile = temporaryFile({ extension: "properties" }); + const configFile = temporaryFile({ extension: "properties" }); const buildProperties = [ - 'teamcity.build.workingDir=/', - 'teamcity.build.branch=master', + "teamcity.build.workingDir=/", + "teamcity.build.branch=master", `teamcity.configuration.properties.file=${configFile}`, ]; - const configProperties = ['teamcity.build.branch=other']; - fs.writeFileSync(buildFile, buildProperties.join('\n') + '\n'); - fs.writeFileSync(configFile, configProperties.join('\n') + '\n'); + const configProperties = ["teamcity.build.branch=other"]; + fs.writeFileSync(buildFile, buildProperties.join("\n") + "\n"); + fs.writeFileSync(configFile, configProperties.join("\n") + "\n"); - t.deepEqual(teamcity.configuration({env: {...env, TEAMCITY_BUILD_PROPERTIES_FILE: buildFile}}), { - name: 'TeamCity', - service: 'teamcity', - commit: '5678', - build: '91011', - branch: 'master', - root: '/', - slug: 'owner/repo', - }); + t.deepEqual( + teamcity.configuration({ + env: { ...env, TEAMCITY_BUILD_PROPERTIES_FILE: buildFile }, + }), + { + name: "TeamCity", + service: "teamcity", + commit: "5678", + build: "91011", + branch: "master", + root: "/", + slug: "owner/repo", + } + ); }); -test('Push - without build properties file', async (t) => { - const {cwd} = await gitRepo(true); +test("Push - without build properties file", async (t) => { + const { cwd } = await gitRepo(true); - t.deepEqual(teamcity.configuration({env, cwd}), { - name: 'TeamCity', - service: 'teamcity', - commit: '5678', - build: '91011', - branch: 'master', + t.deepEqual(teamcity.configuration({ env, cwd }), { + name: "TeamCity", + service: "teamcity", + commit: "5678", + build: "91011", + branch: "master", root: undefined, - slug: 'owner/repo', + slug: "owner/repo", }); }); -test('Push - with build and missing config properties files', async (t) => { - const {cwd} = await gitRepo(true); +test("Push - with build and missing config properties files", async (t) => { + const { cwd } = await gitRepo(true); - const buildFile = tempy.file({extension: 'properties'}); - const buildProperties = ['teamcity.build.branch=master', 'teamcity.configuration.properties.file=/tmp/null']; - fs.writeFileSync(buildFile, buildProperties.join('\n') + '\n'); + const buildFile = temporaryFile({ extension: "properties" }); + const buildProperties = [ + "teamcity.build.branch=master", + "teamcity.configuration.properties.file=/tmp/null", + ]; + fs.writeFileSync(buildFile, buildProperties.join("\n") + "\n"); - t.deepEqual(teamcity.configuration({env: {...env, TEAMCITY_BUILD_PROPERTIES_FILE: buildFile}, cwd}), { - name: 'TeamCity', - service: 'teamcity', - commit: '5678', - build: '91011', - branch: 'master', - root: undefined, - slug: 'owner/repo', - }); + t.deepEqual( + teamcity.configuration({ + env: { ...env, TEAMCITY_BUILD_PROPERTIES_FILE: buildFile }, + cwd, + }), + { + name: "TeamCity", + service: "teamcity", + commit: "5678", + build: "91011", + branch: "master", + root: undefined, + slug: "owner/repo", + } + ); }); -test('Push - with missing build properties files', async (t) => { - const {cwd} = await gitRepo(true); +test("Push - with missing build properties files", async (t) => { + const { cwd } = await gitRepo(true); - t.deepEqual(teamcity.configuration({env: {...env, TEAMCITY_BUILD_PROPERTIES_FILE: '/tmp/null'}, cwd}), { - name: 'TeamCity', - service: 'teamcity', - commit: '5678', - build: '91011', - branch: 'master', - root: undefined, - slug: 'owner/repo', - }); + t.deepEqual( + teamcity.configuration({ + env: { ...env, TEAMCITY_BUILD_PROPERTIES_FILE: "/tmp/null" }, + cwd, + }), + { + name: "TeamCity", + service: "teamcity", + commit: "5678", + build: "91011", + branch: "master", + root: undefined, + slug: "owner/repo", + } + ); }); diff --git a/test/services/travis.test.js b/test/services/travis.test.js index 9c8bfce..fc1e49f 100644 --- a/test/services/travis.test.js +++ b/test/services/travis.test.js @@ -1,59 +1,63 @@ -const test = require('ava'); -const travis = require('../../services/travis.js'); +import test from "ava"; +import travis from "../../services/travis.js"; const env = { - TRAVIS: 'true', - TRAVIS_JOB_NUMBER: '1234', - TRAVIS_JOB_WEB_URL: 'https://travis-ci.com/owner/repo/jobs/1234', - TRAVIS_COMMIT: '5678', - TRAVIS_TAG: 'tag_name', - TRAVIS_BUILD_NUMBER: '91011', - TRAVIS_BUILD_WEB_URL: 'https://travis-ci.com/owner/repo/builds/91011', - TRAVIS_BRANCH: 'master', - TRAVIS_PULL_REQUEST: 'false', - TRAVIS_BUILD_DIR: '/', - TRAVIS_REPO_SLUG: 'owner/repo', + TRAVIS: "true", + TRAVIS_JOB_NUMBER: "1234", + TRAVIS_JOB_WEB_URL: "https://travis-ci.com/owner/repo/jobs/1234", + TRAVIS_COMMIT: "5678", + TRAVIS_TAG: "tag_name", + TRAVIS_BUILD_NUMBER: "91011", + TRAVIS_BUILD_WEB_URL: "https://travis-ci.com/owner/repo/builds/91011", + TRAVIS_BRANCH: "master", + TRAVIS_PULL_REQUEST: "false", + TRAVIS_BUILD_DIR: "/", + TRAVIS_REPO_SLUG: "owner/repo", }; -test('Push', (t) => { - t.deepEqual(travis.configuration({env}), { - name: 'Travis CI', - service: 'travis', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://travis-ci.com/owner/repo/builds/91011', - branch: 'master', - root: '/', - job: '1234', - jobUrl: 'https://travis-ci.com/owner/repo/jobs/1234', +test("Push", (t) => { + t.deepEqual(travis.configuration({ env }), { + name: "Travis CI", + service: "travis", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://travis-ci.com/owner/repo/builds/91011", + branch: "master", + root: "/", + job: "1234", + jobUrl: "https://travis-ci.com/owner/repo/jobs/1234", pr: undefined, isPr: false, prBranch: undefined, - slug: 'owner/repo', + slug: "owner/repo", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( travis.configuration({ - env: {...env, TRAVIS_PULL_REQUEST: '10', TRAVIS_PULL_REQUEST_BRANCH: 'pr-branch'}, + env: { + ...env, + TRAVIS_PULL_REQUEST: "10", + TRAVIS_PULL_REQUEST_BRANCH: "pr-branch", + }, }), { - name: 'Travis CI', - service: 'travis', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://travis-ci.com/owner/repo/builds/91011', - branch: 'master', - root: '/', - job: '1234', - jobUrl: 'https://travis-ci.com/owner/repo/jobs/1234', - pr: '10', + name: "Travis CI", + service: "travis", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://travis-ci.com/owner/repo/builds/91011", + branch: "master", + root: "/", + job: "1234", + jobUrl: "https://travis-ci.com/owner/repo/jobs/1234", + pr: "10", isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', + prBranch: "pr-branch", + slug: "owner/repo", } ); }); diff --git a/test/services/vela.test.js b/test/services/vela.test.js index e6d80e3..11c9a1e 100644 --- a/test/services/vela.test.js +++ b/test/services/vela.test.js @@ -1,91 +1,91 @@ -const test = require('ava'); -const vela = require('../../services/vela.js'); +import test from "ava"; +import vela from "../../services/vela.js"; const env = { - VELA: 'true', - VELA_BUILD_EVENT: 'push', - VELA_BUILD_BRANCH: 'my-branch', - VELA_BUILD_COMMIT: 'a1b2c3', - VELA_BUILD_NUMBER: '25', - VELA_BUILD_LINK: 'https://some-vela-instance.com/Org/Project/25', - VELA_REPO_FULL_NAME: 'Org/Project', - VELA_BUILD_WORKSPACE: '/home/Org/Project', + VELA: "true", + VELA_BUILD_EVENT: "push", + VELA_BUILD_BRANCH: "my-branch", + VELA_BUILD_COMMIT: "a1b2c3", + VELA_BUILD_NUMBER: "25", + VELA_BUILD_LINK: "https://some-vela-instance.com/Org/Project/25", + VELA_REPO_FULL_NAME: "Org/Project", + VELA_BUILD_WORKSPACE: "/home/Org/Project", }; -test('Push', (t) => { - t.deepEqual(vela.configuration({env}), { - name: 'Vela', - service: 'vela', - commit: 'a1b2c3', +test("Push", (t) => { + t.deepEqual(vela.configuration({ env }), { + name: "Vela", + service: "vela", + commit: "a1b2c3", tag: undefined, - build: '25', - buildUrl: 'https://some-vela-instance.com/Org/Project/25', - branch: 'my-branch', + build: "25", + buildUrl: "https://some-vela-instance.com/Org/Project/25", + branch: "my-branch", job: undefined, jobUrl: undefined, isPr: false, pr: undefined, prBranch: undefined, - slug: 'Org/Project', - root: '/home/Org/Project', + slug: "Org/Project", + root: "/home/Org/Project", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( vela.configuration({ env: { ...env, - VELA_BUILD_EVENT: 'pull_request', - VELA_BUILD_PULL_REQUEST: '1', - VELA_PULL_REQUEST_TARGET: 'main', - VELA_PULL_REQUEST_SOURCE: 'my-branch', - VELA_BUILD_BRANCH: 'my-branch', + VELA_BUILD_EVENT: "pull_request", + VELA_BUILD_PULL_REQUEST: "1", + VELA_PULL_REQUEST_TARGET: "main", + VELA_PULL_REQUEST_SOURCE: "my-branch", + VELA_BUILD_BRANCH: "my-branch", }, }), { - name: 'Vela', - service: 'vela', - commit: 'a1b2c3', + name: "Vela", + service: "vela", + commit: "a1b2c3", tag: undefined, - build: '25', - buildUrl: 'https://some-vela-instance.com/Org/Project/25', - branch: 'main', + build: "25", + buildUrl: "https://some-vela-instance.com/Org/Project/25", + branch: "main", job: undefined, jobUrl: undefined, isPr: true, - pr: '1', - prBranch: 'my-branch', - slug: 'Org/Project', - root: '/home/Org/Project', + pr: "1", + prBranch: "my-branch", + slug: "Org/Project", + root: "/home/Org/Project", } ); }); -test('Tag', (t) => { +test("Tag", (t) => { t.deepEqual( vela.configuration({ env: { ...env, - VELA_BUILD_EVENT: 'tag', - VELA_BUILD_TAG: 'v1.0.2', + VELA_BUILD_EVENT: "tag", + VELA_BUILD_TAG: "v1.0.2", }, }), { - name: 'Vela', - service: 'vela', - commit: 'a1b2c3', - tag: 'v1.0.2', - build: '25', - buildUrl: 'https://some-vela-instance.com/Org/Project/25', - branch: 'my-branch', + name: "Vela", + service: "vela", + commit: "a1b2c3", + tag: "v1.0.2", + build: "25", + buildUrl: "https://some-vela-instance.com/Org/Project/25", + branch: "my-branch", job: undefined, jobUrl: undefined, isPr: false, pr: undefined, prBranch: undefined, - slug: 'Org/Project', - root: '/home/Org/Project', + slug: "Org/Project", + root: "/home/Org/Project", } ); }); diff --git a/test/services/vercel.test.js b/test/services/vercel.test.js index 93a672b..256b5b3 100644 --- a/test/services/vercel.test.js +++ b/test/services/vercel.test.js @@ -1,38 +1,38 @@ -const test = require('ava'); -const vercel = require('../../services/vercel.js'); +import test from "ava"; +import vercel from "../../services/vercel.js"; const VERCEL_ENVS = { - VERCEL: 'true', - VERCEL_GIT_COMMIT_SHA: 'abc123', - VERCEL_GIT_COMMIT_REF: 'master', - VERCEL_GIT_REPO_OWNER: 'owner', - VERCEL_GIT_REPO_SLUG: 'repo', + VERCEL: "true", + VERCEL_GIT_COMMIT_SHA: "abc123", + VERCEL_GIT_COMMIT_REF: "master", + VERCEL_GIT_REPO_OWNER: "owner", + VERCEL_GIT_REPO_SLUG: "repo", }; const VERCEL_OBSOLETE_ENVS = { - NOW_GITHUB_DEPLOYMENT: '1', - NOW_GITHUB_COMMIT_SHA: 'abc123', - NOW_GITHUB_COMMIT_REF: 'master', - NOW_GITHUB_ORG: 'owner', - NOW_GITHUB_REPO: 'repo', + NOW_GITHUB_DEPLOYMENT: "1", + NOW_GITHUB_COMMIT_SHA: "abc123", + NOW_GITHUB_COMMIT_REF: "master", + NOW_GITHUB_ORG: "owner", + NOW_GITHUB_REPO: "repo", }; -test('Push on Vercel', (t) => { - t.deepEqual(vercel.configuration({env: VERCEL_ENVS}), { - name: 'Vercel', - service: 'vercel', - commit: 'abc123', - branch: 'master', - slug: 'owner/repo', +test("Push on Vercel", (t) => { + t.deepEqual(vercel.configuration({ env: VERCEL_ENVS }), { + name: "Vercel", + service: "vercel", + commit: "abc123", + branch: "master", + slug: "owner/repo", }); }); -test('Push on Now', (t) => { - t.deepEqual(vercel.configuration({env: VERCEL_OBSOLETE_ENVS}), { - name: 'Vercel', - service: 'vercel', - commit: 'abc123', - branch: 'master', - slug: 'owner/repo', +test("Push on Now", (t) => { + t.deepEqual(vercel.configuration({ env: VERCEL_OBSOLETE_ENVS }), { + name: "Vercel", + service: "vercel", + commit: "abc123", + branch: "master", + slug: "owner/repo", }); }); diff --git a/test/services/wercker.test.js b/test/services/wercker.test.js index 94d6c9f..f12ffee 100644 --- a/test/services/wercker.test.js +++ b/test/services/wercker.test.js @@ -1,25 +1,25 @@ -const test = require('ava'); -const wercker = require('../../services/wercker.js'); +import test from "ava"; +import wercker from "../../services/wercker.js"; const env = { - WERCKER_MAIN_PIPELINE_STARTED: '123456', - WERCKER_RUN_URL: 'https://server.com/buildresult', - WERCKER_GIT_COMMIT: '5678', - WERCKER_GIT_BRANCH: 'master', - WERCKER_ROOT: '/', - WERCKER_GIT_OWNER: 'owner', - WERCKER_GIT_REPOSITORY: 'repo', + WERCKER_MAIN_PIPELINE_STARTED: "123456", + WERCKER_RUN_URL: "https://server.com/buildresult", + WERCKER_GIT_COMMIT: "5678", + WERCKER_GIT_BRANCH: "master", + WERCKER_ROOT: "/", + WERCKER_GIT_OWNER: "owner", + WERCKER_GIT_REPOSITORY: "repo", }; -test('Push', (t) => { - t.deepEqual(wercker.configuration({env}), { - name: 'Wercker', - service: 'wercker', - commit: '5678', - build: '123456', - buildUrl: 'https://server.com/buildresult', - branch: 'master', - root: '/', - slug: 'owner/repo', +test("Push", (t) => { + t.deepEqual(wercker.configuration({ env }), { + name: "Wercker", + service: "wercker", + commit: "5678", + build: "123456", + buildUrl: "https://server.com/buildresult", + branch: "master", + root: "/", + slug: "owner/repo", }); }); diff --git a/test/services/woodpecker.test.js b/test/services/woodpecker.test.js index bf8935b..3e41743 100644 --- a/test/services/woodpecker.test.js +++ b/test/services/woodpecker.test.js @@ -1,64 +1,64 @@ -const test = require('ava'); -const woodpecker = require('../../services/woodpecker.js'); +import test from "ava"; +import woodpecker from "../../services/woodpecker.js"; const env = { - CI: 'woodpecker', - CI_JOB_NUMBER: '1234', - CI_BUILD_LINK: 'https://woodpecker-ci.example.com/owner/repo/91011', - CI_COMMIT_SHA: '5678', - CI_COMMIT_TAG: 'tag_name', - CI_BUILD_NUMBER: '91011', - CI_COMMIT_BRANCH: 'main', - CI_REPO_OWNER: 'owner', - CI_REPO_NAME: 'repo', - CI_WORKSPACE: '/woodpecker/src/github.com/owner/repo', + CI: "woodpecker", + CI_JOB_NUMBER: "1234", + CI_BUILD_LINK: "https://woodpecker-ci.example.com/owner/repo/91011", + CI_COMMIT_SHA: "5678", + CI_COMMIT_TAG: "tag_name", + CI_BUILD_NUMBER: "91011", + CI_COMMIT_BRANCH: "main", + CI_REPO_OWNER: "owner", + CI_REPO_NAME: "repo", + CI_WORKSPACE: "/woodpecker/src/github.com/owner/repo", }; -test('Push', (t) => { - t.deepEqual(woodpecker.configuration({env}), { - name: 'Woodpecker CI', - service: 'woodpecker', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://woodpecker-ci.example.com/owner/repo/91011', - branch: 'main', - job: '1234', - jobUrl: 'https://woodpecker-ci.example.com/owner/repo/91011', +test("Push", (t) => { + t.deepEqual(woodpecker.configuration({ env }), { + name: "Woodpecker CI", + service: "woodpecker", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://woodpecker-ci.example.com/owner/repo/91011", + branch: "main", + job: "1234", + jobUrl: "https://woodpecker-ci.example.com/owner/repo/91011", pr: undefined, isPr: false, prBranch: undefined, - slug: 'owner/repo', - root: '/woodpecker/src/github.com/owner/repo', + slug: "owner/repo", + root: "/woodpecker/src/github.com/owner/repo", }); }); -test('PR', (t) => { +test("PR", (t) => { t.deepEqual( woodpecker.configuration({ env: { ...env, - CI_COMMIT_PULL_REQUEST: '10', - CI_BUILD_EVENT: 'pull_request', - CI_COMMIT_TARGET_BRANCH: 'main', - CI_COMMIT_SOURCE_BRANCH: 'pr-branch', + CI_COMMIT_PULL_REQUEST: "10", + CI_BUILD_EVENT: "pull_request", + CI_COMMIT_TARGET_BRANCH: "main", + CI_COMMIT_SOURCE_BRANCH: "pr-branch", }, }), { - name: 'Woodpecker CI', - service: 'woodpecker', - commit: '5678', - tag: 'tag_name', - build: '91011', - buildUrl: 'https://woodpecker-ci.example.com/owner/repo/91011', - branch: 'main', - job: '1234', - jobUrl: 'https://woodpecker-ci.example.com/owner/repo/91011', - pr: '10', + name: "Woodpecker CI", + service: "woodpecker", + commit: "5678", + tag: "tag_name", + build: "91011", + buildUrl: "https://woodpecker-ci.example.com/owner/repo/91011", + branch: "main", + job: "1234", + jobUrl: "https://woodpecker-ci.example.com/owner/repo/91011", + pr: "10", isPr: true, - prBranch: 'pr-branch', - slug: 'owner/repo', - root: '/woodpecker/src/github.com/owner/repo', + prBranch: "pr-branch", + slug: "owner/repo", + root: "/woodpecker/src/github.com/owner/repo", } ); });