Repository: codecov/uploader
Pull request #753 (2022-05-05 13:39:21)

Release 0.2.1
## What's Changed
### Bug Fixes

* **deps:** update dependency https-proxy-agent to v5.0.1 ([90a68c0](https://github.com/codecov/uploader/commit/90a68c021b0cc7f098fb644934b1d29771e4fd88))
* **deps:** update dependency yargs to v17.4.1 ([d0d9548](https://github.com/codecov/uploader/commit/d0d95483cc1aa5a7da86969af3f42d7824d280ef))
* increase maxBuffer of spawnSync ([c121446](https://github.com/codecov/uploader/commit/c12144697e95051b061488feae60db4b98d600c2))
* store upload file contents on a Buffer ([0209be2](https://github.com/codecov/uploader/commit/0209be276dc9df75b41da8436f5d7209ae368a11))
* fix coveragepy autorun [0773002](https://github.com/codecov/uploader/commit/0773002388faad66cf155ef36d968d718c03cd87)

**Full Changelog**: https://github.com/codecov/uploader/compare/v0.2.0...v0.2.1


Patch:
diff --git a/.circleci/config.yml b/.circleci/config.yml
index f14bcb0..1db1609 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,7 +1,7 @@
 version: 2.1
 
 orbs:
-  win: circleci/windows@4.0.0
+  win: circleci/windows@4.1.1
 
 jobs:
   build-linux-and-osx:
@@ -439,7 +439,7 @@ jobs:
             - release_tag
   release:
     docker:
-      - image: google/cloud-sdk:381.0.0-slim@sha256:ea7b1824492df16b411489045f3d59bff365f9ac2c9c80f238e1115fd502c0e3
+      - image: google/cloud-sdk:384.0.1-slim@sha256:be1f4039ffd7ffc363fd063ddc33c2361d86b5979d1fb0195f6d624f0eba12e6
     steps:
       - attach_workspace:
           at: .
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 0f2babf..2b387c7 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -38,11 +38,11 @@ jobs:
 
     steps:
     - name: Checkout repository
-      uses: actions/checkout@dcd71f646680f2efd8db4afa5ad64fdcba30e748 # tag=v3
+      uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
 
     # Initializes the CodeQL tools for scanning.
     - name: Initialize CodeQL
-      uses: github/codeql-action/init@v1
+      uses: github/codeql-action/init@1ed1437484560351c5be56cf73a48a279d116b78 # tag=v2
       with:
         languages: ${{ matrix.language }}
         # If you wish to specify custom queries, you can do so here or in a config file.
@@ -53,7 +53,7 @@ jobs:
     # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).
     # If this step fails, then you should remove it and run the build manually (see below)
     - name: Autobuild
-      uses: github/codeql-action/autobuild@v1
+      uses: github/codeql-action/autobuild@1ed1437484560351c5be56cf73a48a279d116b78 # tag=v2
 
     # ℹ️ Command-line programs to run using the OS shell.
     # 📚 https://git.io/JvXDl
@@ -67,4 +67,4 @@ jobs:
     #   make release
 
     - name: Perform CodeQL Analysis
-      uses: github/codeql-action/analyze@v1
+      uses: github/codeql-action/analyze@1ed1437484560351c5be56cf73a48a279d116b78 # tag=v2
diff --git a/.nvmrc b/.nvmrc
index d9f8800..99cdd80 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1,1 +1,1 @@
-16.14.2
+16.15.0
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 12819a9..b640e58 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,17 @@
 
 All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
 
+### [0.2.1](https://github.com/codecov/uploader/compare/v0.2.0...v0.2.1) (2022-05-05)
+
+
+### Bug Fixes
+
+* **deps:** update dependency https-proxy-agent to v5.0.1 ([90a68c0](https://github.com/codecov/uploader/commit/90a68c021b0cc7f098fb644934b1d29771e4fd88))
+* **deps:** update dependency yargs to v17.4.1 ([d0d9548](https://github.com/codecov/uploader/commit/d0d95483cc1aa5a7da86969af3f42d7824d280ef))
+* increase maxBuffer of spawnSync ([c121446](https://github.com/codecov/uploader/commit/c12144697e95051b061488feae60db4b98d600c2))
+* store upload file contents on a Buffer ([0209be2](https://github.com/codecov/uploader/commit/0209be276dc9df75b41da8436f5d7209ae368a11))
+* fix coveragepy autorun ([0773002](https://github.com/codecov/uploader/commit/0773002388faad66cf155ef36d968d718c03cd87))
+
 ### [0.2.0](https://github.com/codecov/uploader/compare/v0.1.21...v0.2.0) (2022-04-21)
 
 
diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json
index 47c61f8..410b550 100644
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -1,51 +1,51 @@
 {
   "name": "@codecov/uploader",
-  "version": "0.2.0",
+  "version": "0.2.1",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
       "name": "@codecov/uploader",
-      "version": "0.2.0",
+      "version": "0.2.1",
       "license": "ISC",
       "dependencies": {
         "fast-glob": "3.2.11",
-        "https-proxy-agent": "5.0.0",
+        "https-proxy-agent": "5.0.1",
         "js-yaml": "4.1.0",
         "line-reader": "0.4.0",
         "node-fetch": "2.6.7",
         "snake-case": "3.0.4",
         "validator": "13.7.0",
-        "yargs": "17.4.0"
+        "yargs": "17.4.1"
       },
       "bin": {
         "codecov": "dist/bin/codecov.js"
       },
       "devDependencies": {
-        "@commitlint/cli": "16.2.3",
-        "@commitlint/config-conventional": "16.2.1",
+        "@commitlint/cli": "16.2.4",
+        "@commitlint/config-conventional": "16.2.4",
         "@types/jest": "27.4.1",
         "@types/js-yaml": "4.0.5",
         "@types/micromatch": "4.0.2",
         "@types/mock-fs": "4.13.1",
-        "@types/node": "16.11.26",
+        "@types/node": "16.11.31",
         "@types/node-fetch": "2.6.1",
         "@types/validator": "13.7.2",
         "@types/yargs": "17.0.10",
-        "@typescript-eslint/eslint-plugin": "5.16.0",
-        "@typescript-eslint/parser": "5.16.0",
-        "eslint": "8.12.0",
+        "@typescript-eslint/eslint-plugin": "5.21.0",
+        "@typescript-eslint/parser": "5.21.0",
+        "eslint": "8.14.0",
         "eslint-config-prettier": "8.5.0",
         "husky": "7.0.4",
         "jest": "27.5.1",
         "jest-spec-reporter": "1.0.17",
-        "lint-staged": "12.3.7",
+        "lint-staged": "12.4.1",
         "mock-fs": "5.1.2",
         "nock": "13.2.4",
-        "pkg": "5.5.2",
-        "prettier": "2.6.1",
+        "pkg": "5.6.0",
+        "prettier": "2.6.2",
         "standard-version": "9.3.2",
-        "testdouble": "3.16.4",
+        "testdouble": "3.16.5",
         "testdouble-jest": "2.0.0",
         "ts-jest": "27.1.4",
         "typescript": "4.6.3"
@@ -639,14 +639,14 @@
       "dev": true
     },
     "node_modules/@commitlint/cli": {
-      "version": "16.2.3",
-      "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-16.2.3.tgz",
-      "integrity": "sha512-VsJBQLvhhlOgEfxs/Z5liYuK0dXqLE5hz1VJzLBxiOxG31kL/X5Q4OvK292BmO7IGZcm1yJE3XQPWSiFaEHbWA==",
+      "version": "16.2.4",
+      "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-16.2.4.tgz",
+      "integrity": "sha512-rbvqvz9JI+uiKxV2nH65BtSU01fsADd3bxe9fWtO3rM0c+CI/H9FfzKkDLvSRmXjvk1G2/wXlCGeqO9IBT4X9g==",
       "dev": true,
       "dependencies": {
         "@commitlint/format": "^16.2.1",
-        "@commitlint/lint": "^16.2.1",
-        "@commitlint/load": "^16.2.3",
+        "@commitlint/lint": "^16.2.4",
+        "@commitlint/load": "^16.2.4",
         "@commitlint/read": "^16.2.1",
         "@commitlint/types": "^16.2.1",
         "lodash": "^4.17.19",
@@ -662,9 +662,9 @@
       }
     },
     "node_modules/@commitlint/config-conventional": {
-      "version": "16.2.1",
-      "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-16.2.1.tgz",
-      "integrity": "sha512-cP9gArx7gnaj4IqmtCIcHdRjTYdRUi6lmGE+lOzGGjGe45qGOS8nyQQNvkNy2Ey2VqoSWuXXkD8zCUh6EHf1Ww==",
+      "version": "16.2.4",
+      "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-16.2.4.tgz",
+      "integrity": "sha512-av2UQJa3CuE5P0dzxj/o/B9XVALqYzEViHrMXtDrW9iuflrqCStWBAioijppj9URyz6ONpohJKAtSdgAOE0gkA==",
       "dev": true,
       "dependencies": {
         "conventional-changelog-conventionalcommits": "^4.3.1"
@@ -722,27 +722,27 @@
       }
     },
     "node_modules/@commitlint/is-ignored": {
-      "version": "16.2.1",
-      "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-16.2.1.tgz",
-      "integrity": "sha512-exl8HRzTIfb1YvDJp2b2HU5z1BT+9tmgxR2XF0YEzkMiCIuEKh+XLeocPr1VcvAKXv3Cmv5X/OfNRp+i+/HIhQ==",
+      "version": "16.2.4",
+      "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-16.2.4.tgz",
+      "integrity": "sha512-Lxdq9aOAYCOOOjKi58ulbwK/oBiiKz+7Sq0+/SpFIEFwhHkIVugvDvWjh2VRBXmRC/x5lNcjDcYEwS/uYUvlYQ==",
       "dev": true,
       "dependencies": {
         "@commitlint/types": "^16.2.1",
-        "semver": "7.3.5"
+        "semver": "7.3.7"
       },
       "engines": {
         "node": ">=v12"
       }
     },
     "node_modules/@commitlint/lint": {
-      "version": "16.2.1",
-      "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-16.2.1.tgz",
-      "integrity": "sha512-fNINQ3X2ZqsCkNB3Z0Z8ElmhewqrS3gy2wgBTx97BkcjOWiyPAGwDJ752hwrsUnWAVBRztgw826n37xPzxsOgg==",
+      "version": "16.2.4",
+      "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-16.2.4.tgz",
+      "integrity": "sha512-AUDuwOxb2eGqsXbTMON3imUGkc1jRdtXrbbohiLSCSk3jFVXgJLTMaEcr39pR00N8nE9uZ+V2sYaiILByZVmxQ==",
       "dev": true,
       "dependencies": {
-        "@commitlint/is-ignored": "^16.2.1",
+        "@commitlint/is-ignored": "^16.2.4",
         "@commitlint/parse": "^16.2.1",
-        "@commitlint/rules": "^16.2.1",
+        "@commitlint/rules": "^16.2.4",
         "@commitlint/types": "^16.2.1"
       },
       "engines": {
@@ -750,9 +750,9 @@
       }
     },
     "node_modules/@commitlint/load": {
-      "version": "16.2.3",
-      "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-16.2.3.tgz",
-      "integrity": "sha512-Hb4OUlMnBUK6UxJEZ/VJ5k0LocIS7PtEMbRXEAA7eSpOgORIFexC4K/RaRpVd5UTtu3M0ST3ddPPijF9rdW6nw==",
+      "version": "16.2.4",
+      "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-16.2.4.tgz",
+      "integrity": "sha512-HjANm3/29ROV+zt4yfaY/K6gpr9Dbzgtlp0kSwZGW0poDXlD/yqVYgPQ6JolJzZii5FUz5R4yVLC15hVL/w60w==",
       "dev": true,
       "dependencies": {
         "@commitlint/config-validator": "^16.2.1",
@@ -827,9 +827,9 @@
       }
     },
     "node_modules/@commitlint/rules": {
-      "version": "16.2.1",
-      "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-16.2.1.tgz",
-      "integrity": "sha512-ZFezJXQaBBso+BOTre/+1dGCuCzlWVaeLiVRGypI53qVgPMzQqZhkCcrxBFeqB87qeyzr4A4EoG++IvITwwpIw==",
+      "version": "16.2.4",
+      "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-16.2.4.tgz",
+      "integrity": "sha512-rK5rNBIN2ZQNQK+I6trRPK3dWa0MtaTN4xnwOma1qxa4d5wQMQJtScwTZjTJeallFxhOgbNOgr48AMHkdounVg==",
       "dev": true,
       "dependencies": {
         "@commitlint/ensure": "^16.2.1",
@@ -897,9 +897,9 @@
       }
     },
     "node_modules/@eslint/eslintrc": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz",
-      "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==",
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz",
+      "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==",
       "dev": true,
       "dependencies": {
         "ajv": "^6.12.4",
@@ -1473,9 +1473,9 @@
       "dev": true
     },
     "node_modules/@types/json-schema": {
-      "version": "7.0.10",
-      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz",
-      "integrity": "sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A==",
+      "version": "7.0.11",
+      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+      "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
       "dev": true
     },
     "node_modules/@types/micromatch": {
@@ -1503,9 +1503,9 @@
       }
     },
     "node_modules/@types/node": {
-      "version": "16.11.26",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz",
-      "integrity": "sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ==",
+      "version": "16.11.31",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.31.tgz",
+      "integrity": "sha512-wh/d0pcu/Ie2mqTIqh4tjd0mLAB4JWxOjHQtLN20HS7sjMHiV4Afr+90hITTyZcxowwha5wjv32jGEn1zkEFMg==",
       "dev": true
     },
     "node_modules/@types/node-fetch": {
@@ -1564,14 +1564,14 @@
       "dev": true
     },
     "node_modules/@typescript-eslint/eslint-plugin": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz",
-      "integrity": "sha512-SJoba1edXvQRMmNI505Uo4XmGbxCK9ARQpkvOd00anxzri9RNQk0DDCxD+LIl+jYhkzOJiOMMKYEHnHEODjdCw==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz",
+      "integrity": "sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/scope-manager": "5.16.0",
-        "@typescript-eslint/type-utils": "5.16.0",
-        "@typescript-eslint/utils": "5.16.0",
+        "@typescript-eslint/scope-manager": "5.21.0",
+        "@typescript-eslint/type-utils": "5.21.0",
+        "@typescript-eslint/utils": "5.21.0",
         "debug": "^4.3.2",
         "functional-red-black-tree": "^1.0.1",
         "ignore": "^5.1.8",
@@ -1597,14 +1597,14 @@
       }
     },
     "node_modules/@typescript-eslint/parser": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz",
-      "integrity": "sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.21.0.tgz",
+      "integrity": "sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/scope-manager": "5.16.0",
-        "@typescript-eslint/types": "5.16.0",
-        "@typescript-eslint/typescript-estree": "5.16.0",
+        "@typescript-eslint/scope-manager": "5.21.0",
+        "@typescript-eslint/types": "5.21.0",
+        "@typescript-eslint/typescript-estree": "5.21.0",
         "debug": "^4.3.2"
       },
       "engines": {
@@ -1624,13 +1624,13 @@
       }
     },
     "node_modules/@typescript-eslint/scope-manager": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz",
-      "integrity": "sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz",
+      "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "5.16.0",
-        "@typescript-eslint/visitor-keys": "5.16.0"
+        "@typescript-eslint/types": "5.21.0",
+        "@typescript-eslint/visitor-keys": "5.21.0"
       },
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -1641,12 +1641,12 @@
       }
     },
     "node_modules/@typescript-eslint/type-utils": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.16.0.tgz",
-      "integrity": "sha512-SKygICv54CCRl1Vq5ewwQUJV/8padIWvPgCxlWPGO/OgQLCijY9G7lDu6H+mqfQtbzDNlVjzVWQmeqbLMBLEwQ==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz",
+      "integrity": "sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/utils": "5.16.0",
+        "@typescript-eslint/utils": "5.21.0",
         "debug": "^4.3.2",
         "tsutils": "^3.21.0"
       },
@@ -1667,9 +1667,9 @@
       }
     },
     "node_modules/@typescript-eslint/types": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz",
-      "integrity": "sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz",
+      "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==",
       "dev": true,
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -1680,13 +1680,13 @@
       }
     },
     "node_modules/@typescript-eslint/typescript-estree": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz",
-      "integrity": "sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz",
+      "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "5.16.0",
-        "@typescript-eslint/visitor-keys": "5.16.0",
+        "@typescript-eslint/types": "5.21.0",
+        "@typescript-eslint/visitor-keys": "5.21.0",
         "debug": "^4.3.2",
         "globby": "^11.0.4",
         "is-glob": "^4.0.3",
@@ -1707,15 +1707,15 @@
       }
     },
     "node_modules/@typescript-eslint/utils": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz",
-      "integrity": "sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.21.0.tgz",
+      "integrity": "sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==",
       "dev": true,
       "dependencies": {
         "@types/json-schema": "^7.0.9",
-        "@typescript-eslint/scope-manager": "5.16.0",
-        "@typescript-eslint/types": "5.16.0",
-        "@typescript-eslint/typescript-estree": "5.16.0",
+        "@typescript-eslint/scope-manager": "5.21.0",
+        "@typescript-eslint/types": "5.21.0",
+        "@typescript-eslint/typescript-estree": "5.21.0",
         "eslint-scope": "^5.1.1",
         "eslint-utils": "^3.0.0"
       },
@@ -1731,12 +1731,12 @@
       }
     },
     "node_modules/@typescript-eslint/visitor-keys": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz",
-      "integrity": "sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz",
+      "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==",
       "dev": true,
       "dependencies": {
-        "@typescript-eslint/types": "5.16.0",
+        "@typescript-eslint/types": "5.21.0",
         "eslint-visitor-keys": "^3.0.0"
       },
       "engines": {
@@ -3490,12 +3490,12 @@
       }
     },
     "node_modules/eslint": {
-      "version": "8.12.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz",
-      "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==",
+      "version": "8.14.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz",
+      "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==",
       "dev": true,
       "dependencies": {
-        "@eslint/eslintrc": "^1.2.1",
+        "@eslint/eslintrc": "^1.2.2",
         "@humanwhocodes/config-array": "^0.9.2",
         "ajv": "^6.10.0",
         "chalk": "^4.0.0",
@@ -4433,9 +4433,9 @@
       }
     },
     "node_modules/https-proxy-agent": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
-      "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
+      "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==",
       "dependencies": {
         "agent-base": "6",
         "debug": "4"
@@ -5729,9 +5729,9 @@
       "dev": true
     },
     "node_modules/lint-staged": {
-      "version": "12.3.7",
-      "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.7.tgz",
-      "integrity": "sha512-/S4D726e2GIsDVWIk1XGvheCaDm1SJRQp8efamZFWJxQMVEbOwSysp7xb49Oo73KYCdy97mIWinhlxcoNqIfIQ==",
+      "version": "12.4.1",
+      "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.4.1.tgz",
+      "integrity": "sha512-PTXgzpflrQ+pODQTG116QNB+Q6uUTDg5B5HqGvNhoQSGt8Qy+MA/6zSnR8n38+sxP5TapzeQGTvoKni0KRS8Vg==",
       "dev": true,
       "dependencies": {
         "cli-truncate": "^3.1.0",
@@ -5760,9 +5760,9 @@
       }
     },
     "node_modules/lint-staged/node_modules/supports-color": {
-      "version": "9.2.1",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz",
-      "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==",
+      "version": "9.2.2",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz",
+      "integrity": "sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==",
       "dev": true,
       "engines": {
         "node": ">=12"
@@ -6749,9 +6749,9 @@
       }
     },
     "node_modules/pkg": {
-      "version": "5.5.2",
-      "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.5.2.tgz",
-      "integrity": "sha512-pD0UB2ud01C6pVv2wpGsTYJrXI/bnvGRYvMLd44wFzA1p+A2jrlTGFPAYa7YEYzmitXhx23PqalaG1eUEnSwcA==",
+      "version": "5.6.0",
+      "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.6.0.tgz",
+      "integrity": "sha512-mHrAVSQWmHA41RnUmRpC7pK9lNnMfdA16CF3cqOI22a8LZxOQzF7M8YWtA2nfs+d7I0MTDXOtkDsAsFXeCpYjg==",
       "dev": true,
       "dependencies": {
         "@babel/parser": "7.16.2",
@@ -6763,7 +6763,7 @@
         "into-stream": "^6.0.0",
         "minimist": "^1.2.5",
         "multistream": "^4.1.0",
-        "pkg-fetch": "3.2.6",
+        "pkg-fetch": "3.3.0",
         "prebuild-install": "6.1.4",
         "progress": "^2.0.3",
         "resolve": "^1.20.0",
@@ -6847,9 +6847,9 @@
       }
     },
     "node_modules/pkg-fetch": {
-      "version": "3.2.6",
-      "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.2.6.tgz",
-      "integrity": "sha512-Q8fx6SIT022g0cdSE4Axv/xpfHeltspo2gg1KsWRinLQZOTRRAtOOaEFghA1F3jJ8FVsh8hGrL/Pb6Ea5XHIFw==",
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.3.0.tgz",
+      "integrity": "sha512-xJnIZ1KP+8rNN+VLafwu4tEeV4m8IkFBDdCFqmAJz9K1aiXEtbARmdbEe6HlXWGSVuShSHjFXpfkKRkDBQ5kiA==",
       "dev": true,
       "dependencies": {
         "chalk": "^4.1.2",
@@ -7004,9 +7004,9 @@
       }
     },
     "node_modules/prettier": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz",
-      "integrity": "sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==",
+      "version": "2.6.2",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
+      "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
       "dev": true,
       "bin": {
         "prettier": "bin-prettier.js"
@@ -7523,9 +7523,9 @@
       }
     },
     "node_modules/semver": {
-      "version": "7.3.5",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
-      "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+      "version": "7.3.7",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+      "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
       "dev": true,
       "dependencies": {
         "lru-cache": "^6.0.0"
@@ -8199,9 +8199,9 @@
       }
     },
     "node_modules/testdouble": {
-      "version": "3.16.4",
-      "resolved": "https://registry.npmjs.org/testdouble/-/testdouble-3.16.4.tgz",
-      "integrity": "sha512-NM8gzFurcf3tgf9miWx3ussoJWUxtT1MwJ7Xpe+sqJBbiwgqLDBqh64bnuDmGCHqhQ3Vou3Z5HtRjiAs7U/mug==",
+      "version": "3.16.5",
+      "resolved": "https://registry.npmjs.org/testdouble/-/testdouble-3.16.5.tgz",
+      "integrity": "sha512-2/0vR503/X/6LuZzQObpcBtu+KycyEnw7AdX/NPboR7sam1NTuYc128UMW8n7tBDpOPGAKqCUtKVBzvgV6C3bA==",
       "dev": true,
       "dependencies": {
         "lodash": "^4.17.15",
@@ -8883,9 +8883,9 @@
       }
     },
     "node_modules/yargs": {
-      "version": "17.4.0",
-      "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.0.tgz",
-      "integrity": "sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==",
+      "version": "17.4.1",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz",
+      "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==",
       "dependencies": {
         "cliui": "^7.0.2",
         "escalade": "^3.1.1",
@@ -9412,14 +9412,14 @@
       "dev": true
     },
     "@commitlint/cli": {
-      "version": "16.2.3",
-      "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-16.2.3.tgz",
-      "integrity": "sha512-VsJBQLvhhlOgEfxs/Z5liYuK0dXqLE5hz1VJzLBxiOxG31kL/X5Q4OvK292BmO7IGZcm1yJE3XQPWSiFaEHbWA==",
+      "version": "16.2.4",
+      "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-16.2.4.tgz",
+      "integrity": "sha512-rbvqvz9JI+uiKxV2nH65BtSU01fsADd3bxe9fWtO3rM0c+CI/H9FfzKkDLvSRmXjvk1G2/wXlCGeqO9IBT4X9g==",
       "dev": true,
       "requires": {
         "@commitlint/format": "^16.2.1",
-        "@commitlint/lint": "^16.2.1",
-        "@commitlint/load": "^16.2.3",
+        "@commitlint/lint": "^16.2.4",
+        "@commitlint/load": "^16.2.4",
         "@commitlint/read": "^16.2.1",
         "@commitlint/types": "^16.2.1",
         "lodash": "^4.17.19",
@@ -9429,9 +9429,9 @@
       }
     },
     "@commitlint/config-conventional": {
-      "version": "16.2.1",
-      "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-16.2.1.tgz",
-      "integrity": "sha512-cP9gArx7gnaj4IqmtCIcHdRjTYdRUi6lmGE+lOzGGjGe45qGOS8nyQQNvkNy2Ey2VqoSWuXXkD8zCUh6EHf1Ww==",
+      "version": "16.2.4",
+      "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-16.2.4.tgz",
+      "integrity": "sha512-av2UQJa3CuE5P0dzxj/o/B9XVALqYzEViHrMXtDrW9iuflrqCStWBAioijppj9URyz6ONpohJKAtSdgAOE0gkA==",
       "dev": true,
       "requires": {
         "conventional-changelog-conventionalcommits": "^4.3.1"
@@ -9474,31 +9474,31 @@
       }
     },
     "@commitlint/is-ignored": {
-      "version": "16.2.1",
-      "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-16.2.1.tgz",
-      "integrity": "sha512-exl8HRzTIfb1YvDJp2b2HU5z1BT+9tmgxR2XF0YEzkMiCIuEKh+XLeocPr1VcvAKXv3Cmv5X/OfNRp+i+/HIhQ==",
+      "version": "16.2.4",
+      "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-16.2.4.tgz",
+      "integrity": "sha512-Lxdq9aOAYCOOOjKi58ulbwK/oBiiKz+7Sq0+/SpFIEFwhHkIVugvDvWjh2VRBXmRC/x5lNcjDcYEwS/uYUvlYQ==",
       "dev": true,
       "requires": {
         "@commitlint/types": "^16.2.1",
-        "semver": "7.3.5"
+        "semver": "7.3.7"
       }
     },
     "@commitlint/lint": {
-      "version": "16.2.1",
-      "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-16.2.1.tgz",
-      "integrity": "sha512-fNINQ3X2ZqsCkNB3Z0Z8ElmhewqrS3gy2wgBTx97BkcjOWiyPAGwDJ752hwrsUnWAVBRztgw826n37xPzxsOgg==",
+      "version": "16.2.4",
+      "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-16.2.4.tgz",
+      "integrity": "sha512-AUDuwOxb2eGqsXbTMON3imUGkc1jRdtXrbbohiLSCSk3jFVXgJLTMaEcr39pR00N8nE9uZ+V2sYaiILByZVmxQ==",
       "dev": true,
       "requires": {
-        "@commitlint/is-ignored": "^16.2.1",
+        "@commitlint/is-ignored": "^16.2.4",
         "@commitlint/parse": "^16.2.1",
-        "@commitlint/rules": "^16.2.1",
+        "@commitlint/rules": "^16.2.4",
         "@commitlint/types": "^16.2.1"
       }
     },
     "@commitlint/load": {
-      "version": "16.2.3",
-      "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-16.2.3.tgz",
-      "integrity": "sha512-Hb4OUlMnBUK6UxJEZ/VJ5k0LocIS7PtEMbRXEAA7eSpOgORIFexC4K/RaRpVd5UTtu3M0ST3ddPPijF9rdW6nw==",
+      "version": "16.2.4",
+      "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-16.2.4.tgz",
+      "integrity": "sha512-HjANm3/29ROV+zt4yfaY/K6gpr9Dbzgtlp0kSwZGW0poDXlD/yqVYgPQ6JolJzZii5FUz5R4yVLC15hVL/w60w==",
       "dev": true,
       "requires": {
         "@commitlint/config-validator": "^16.2.1",
@@ -9558,9 +9558,9 @@
       }
     },
     "@commitlint/rules": {
-      "version": "16.2.1",
-      "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-16.2.1.tgz",
-      "integrity": "sha512-ZFezJXQaBBso+BOTre/+1dGCuCzlWVaeLiVRGypI53qVgPMzQqZhkCcrxBFeqB87qeyzr4A4EoG++IvITwwpIw==",
+      "version": "16.2.4",
+      "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-16.2.4.tgz",
+      "integrity": "sha512-rK5rNBIN2ZQNQK+I6trRPK3dWa0MtaTN4xnwOma1qxa4d5wQMQJtScwTZjTJeallFxhOgbNOgr48AMHkdounVg==",
       "dev": true,
       "requires": {
         "@commitlint/ensure": "^16.2.1",
@@ -9610,9 +9610,9 @@
       }
     },
     "@eslint/eslintrc": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz",
-      "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==",
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz",
+      "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==",
       "dev": true,
       "requires": {
         "ajv": "^6.12.4",
@@ -10096,9 +10096,9 @@
       "dev": true
     },
     "@types/json-schema": {
-      "version": "7.0.10",
-      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz",
-      "integrity": "sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A==",
+      "version": "7.0.11",
+      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+      "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
       "dev": true
     },
     "@types/micromatch": {
@@ -10126,9 +10126,9 @@
       }
     },
     "@types/node": {
-      "version": "16.11.26",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz",
-      "integrity": "sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ==",
+      "version": "16.11.31",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.31.tgz",
+      "integrity": "sha512-wh/d0pcu/Ie2mqTIqh4tjd0mLAB4JWxOjHQtLN20HS7sjMHiV4Afr+90hITTyZcxowwha5wjv32jGEn1zkEFMg==",
       "dev": true
     },
     "@types/node-fetch": {
@@ -10187,14 +10187,14 @@
       "dev": true
     },
     "@typescript-eslint/eslint-plugin": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz",
-      "integrity": "sha512-SJoba1edXvQRMmNI505Uo4XmGbxCK9ARQpkvOd00anxzri9RNQk0DDCxD+LIl+jYhkzOJiOMMKYEHnHEODjdCw==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.21.0.tgz",
+      "integrity": "sha512-fTU85q8v5ZLpoZEyn/u1S2qrFOhi33Edo2CZ0+q1gDaWWm0JuPh3bgOyU8lM0edIEYgKLDkPFiZX2MOupgjlyg==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/scope-manager": "5.16.0",
-        "@typescript-eslint/type-utils": "5.16.0",
-        "@typescript-eslint/utils": "5.16.0",
+        "@typescript-eslint/scope-manager": "5.21.0",
+        "@typescript-eslint/type-utils": "5.21.0",
+        "@typescript-eslint/utils": "5.21.0",
         "debug": "^4.3.2",
         "functional-red-black-tree": "^1.0.1",
         "ignore": "^5.1.8",
@@ -10204,52 +10204,52 @@
       }
     },
     "@typescript-eslint/parser": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.16.0.tgz",
-      "integrity": "sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.21.0.tgz",
+      "integrity": "sha512-8RUwTO77hstXUr3pZoWZbRQUxXcSXafZ8/5gpnQCfXvgmP9gpNlRGlWzvfbEQ14TLjmtU8eGnONkff8U2ui2Eg==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/scope-manager": "5.16.0",
-        "@typescript-eslint/types": "5.16.0",
-        "@typescript-eslint/typescript-estree": "5.16.0",
+        "@typescript-eslint/scope-manager": "5.21.0",
+        "@typescript-eslint/types": "5.21.0",
+        "@typescript-eslint/typescript-estree": "5.21.0",
         "debug": "^4.3.2"
       }
     },
     "@typescript-eslint/scope-manager": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz",
-      "integrity": "sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.21.0.tgz",
+      "integrity": "sha512-XTX0g0IhvzcH/e3393SvjRCfYQxgxtYzL3UREteUneo72EFlt7UNoiYnikUtmGVobTbhUDByhJ4xRBNe+34kOQ==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "5.16.0",
-        "@typescript-eslint/visitor-keys": "5.16.0"
+        "@typescript-eslint/types": "5.21.0",
+        "@typescript-eslint/visitor-keys": "5.21.0"
       }
     },
     "@typescript-eslint/type-utils": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.16.0.tgz",
-      "integrity": "sha512-SKygICv54CCRl1Vq5ewwQUJV/8padIWvPgCxlWPGO/OgQLCijY9G7lDu6H+mqfQtbzDNlVjzVWQmeqbLMBLEwQ==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.21.0.tgz",
+      "integrity": "sha512-MxmLZj0tkGlkcZCSE17ORaHl8Th3JQwBzyXL/uvC6sNmu128LsgjTX0NIzy+wdH2J7Pd02GN8FaoudJntFvSOw==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/utils": "5.16.0",
+        "@typescript-eslint/utils": "5.21.0",
         "debug": "^4.3.2",
         "tsutils": "^3.21.0"
       }
     },
     "@typescript-eslint/types": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.16.0.tgz",
-      "integrity": "sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.21.0.tgz",
+      "integrity": "sha512-XnOOo5Wc2cBlq8Lh5WNvAgHzpjnEzxn4CJBwGkcau7b/tZ556qrWXQz4DJyChYg8JZAD06kczrdgFPpEQZfDsA==",
       "dev": true
     },
     "@typescript-eslint/typescript-estree": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz",
-      "integrity": "sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.21.0.tgz",
+      "integrity": "sha512-Y8Y2T2FNvm08qlcoSMoNchh9y2Uj3QmjtwNMdRQkcFG7Muz//wfJBGBxh8R7HAGQFpgYpdHqUpEoPQk+q9Kjfg==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "5.16.0",
-        "@typescript-eslint/visitor-keys": "5.16.0",
+        "@typescript-eslint/types": "5.21.0",
+        "@typescript-eslint/visitor-keys": "5.21.0",
         "debug": "^4.3.2",
         "globby": "^11.0.4",
         "is-glob": "^4.0.3",
@@ -10258,26 +10258,26 @@
       }
     },
     "@typescript-eslint/utils": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.16.0.tgz",
-      "integrity": "sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.21.0.tgz",
+      "integrity": "sha512-q/emogbND9wry7zxy7VYri+7ydawo2HDZhRZ5k6yggIvXa7PvBbAAZ4PFH/oZLem72ezC4Pr63rJvDK/sTlL8Q==",
       "dev": true,
       "requires": {
         "@types/json-schema": "^7.0.9",
-        "@typescript-eslint/scope-manager": "5.16.0",
-        "@typescript-eslint/types": "5.16.0",
-        "@typescript-eslint/typescript-estree": "5.16.0",
+        "@typescript-eslint/scope-manager": "5.21.0",
+        "@typescript-eslint/types": "5.21.0",
+        "@typescript-eslint/typescript-estree": "5.21.0",
         "eslint-scope": "^5.1.1",
         "eslint-utils": "^3.0.0"
       }
     },
     "@typescript-eslint/visitor-keys": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz",
-      "integrity": "sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==",
+      "version": "5.21.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.21.0.tgz",
+      "integrity": "sha512-SX8jNN+iHqAF0riZQMkm7e8+POXa/fXw5cxL+gjpyP+FI+JVNhii53EmQgDAfDcBpFekYSlO0fGytMQwRiMQCA==",
       "dev": true,
       "requires": {
-        "@typescript-eslint/types": "5.16.0",
+        "@typescript-eslint/types": "5.21.0",
         "eslint-visitor-keys": "^3.0.0"
       }
     },
@@ -11612,12 +11612,12 @@
       }
     },
     "eslint": {
-      "version": "8.12.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz",
-      "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==",
+      "version": "8.14.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz",
+      "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==",
       "dev": true,
       "requires": {
-        "@eslint/eslintrc": "^1.2.1",
+        "@eslint/eslintrc": "^1.2.2",
         "@humanwhocodes/config-array": "^0.9.2",
         "ajv": "^6.10.0",
         "chalk": "^4.0.0",
@@ -12336,9 +12336,9 @@
       }
     },
     "https-proxy-agent": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
-      "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
+      "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==",
       "requires": {
         "agent-base": "6",
         "debug": "4"
@@ -13317,9 +13317,9 @@
       "dev": true
     },
     "lint-staged": {
-      "version": "12.3.7",
-      "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.3.7.tgz",
-      "integrity": "sha512-/S4D726e2GIsDVWIk1XGvheCaDm1SJRQp8efamZFWJxQMVEbOwSysp7xb49Oo73KYCdy97mIWinhlxcoNqIfIQ==",
+      "version": "12.4.1",
+      "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.4.1.tgz",
+      "integrity": "sha512-PTXgzpflrQ+pODQTG116QNB+Q6uUTDg5B5HqGvNhoQSGt8Qy+MA/6zSnR8n38+sxP5TapzeQGTvoKni0KRS8Vg==",
       "dev": true,
       "requires": {
         "cli-truncate": "^3.1.0",
@@ -13339,9 +13339,9 @@
       },
       "dependencies": {
         "supports-color": {
-          "version": "9.2.1",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz",
-          "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==",
+          "version": "9.2.2",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz",
+          "integrity": "sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==",
           "dev": true
         }
       }
@@ -14079,9 +14079,9 @@
       "dev": true
     },
     "pkg": {
-      "version": "5.5.2",
-      "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.5.2.tgz",
-      "integrity": "sha512-pD0UB2ud01C6pVv2wpGsTYJrXI/bnvGRYvMLd44wFzA1p+A2jrlTGFPAYa7YEYzmitXhx23PqalaG1eUEnSwcA==",
+      "version": "5.6.0",
+      "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.6.0.tgz",
+      "integrity": "sha512-mHrAVSQWmHA41RnUmRpC7pK9lNnMfdA16CF3cqOI22a8LZxOQzF7M8YWtA2nfs+d7I0MTDXOtkDsAsFXeCpYjg==",
       "dev": true,
       "requires": {
         "@babel/parser": "7.16.2",
@@ -14093,7 +14093,7 @@
         "into-stream": "^6.0.0",
         "minimist": "^1.2.5",
         "multistream": "^4.1.0",
-        "pkg-fetch": "3.2.6",
+        "pkg-fetch": "3.3.0",
         "prebuild-install": "6.1.4",
         "progress": "^2.0.3",
         "resolve": "^1.20.0",
@@ -14180,9 +14180,9 @@
       }
     },
     "pkg-fetch": {
-      "version": "3.2.6",
-      "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.2.6.tgz",
-      "integrity": "sha512-Q8fx6SIT022g0cdSE4Axv/xpfHeltspo2gg1KsWRinLQZOTRRAtOOaEFghA1F3jJ8FVsh8hGrL/Pb6Ea5XHIFw==",
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.3.0.tgz",
+      "integrity": "sha512-xJnIZ1KP+8rNN+VLafwu4tEeV4m8IkFBDdCFqmAJz9K1aiXEtbARmdbEe6HlXWGSVuShSHjFXpfkKRkDBQ5kiA==",
       "dev": true,
       "requires": {
         "chalk": "^4.1.2",
@@ -14275,9 +14275,9 @@
       "dev": true
     },
     "prettier": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz",
-      "integrity": "sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==",
+      "version": "2.6.2",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
+      "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
       "dev": true
     },
     "pretty-format": {
@@ -14648,9 +14648,9 @@
       }
     },
     "semver": {
-      "version": "7.3.5",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
-      "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+      "version": "7.3.7",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+      "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
       "dev": true,
       "requires": {
         "lru-cache": "^6.0.0"
@@ -15175,9 +15175,9 @@
       }
     },
     "testdouble": {
-      "version": "3.16.4",
-      "resolved": "https://registry.npmjs.org/testdouble/-/testdouble-3.16.4.tgz",
-      "integrity": "sha512-NM8gzFurcf3tgf9miWx3ussoJWUxtT1MwJ7Xpe+sqJBbiwgqLDBqh64bnuDmGCHqhQ3Vou3Z5HtRjiAs7U/mug==",
+      "version": "3.16.5",
+      "resolved": "https://registry.npmjs.org/testdouble/-/testdouble-3.16.5.tgz",
+      "integrity": "sha512-2/0vR503/X/6LuZzQObpcBtu+KycyEnw7AdX/NPboR7sam1NTuYc128UMW8n7tBDpOPGAKqCUtKVBzvgV6C3bA==",
       "dev": true,
       "requires": {
         "lodash": "^4.17.15",
@@ -15690,9 +15690,9 @@
       "dev": true
     },
     "yargs": {
-      "version": "17.4.0",
-      "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.0.tgz",
-      "integrity": "sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==",
+      "version": "17.4.1",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz",
+      "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==",
       "requires": {
         "cliui": "^7.0.2",
         "escalade": "^3.1.1",
diff --git a/package.json b/package.json
index fdba896..ee1773f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@codecov/uploader",
-  "version": "0.2.0",
+  "version": "0.2.1",
   "description": "Codecov Report Uploader",
   "private": true,
   "bin": {
@@ -34,39 +34,39 @@
   "homepage": "https://github.com/codecov/uploader#readme",
   "dependencies": {
     "fast-glob": "3.2.11",
-    "https-proxy-agent": "5.0.0",
+    "https-proxy-agent": "5.0.1",
     "js-yaml": "4.1.0",
     "line-reader": "0.4.0",
     "node-fetch": "2.6.7",
     "snake-case": "3.0.4",
     "validator": "13.7.0",
-    "yargs": "17.4.0"
+    "yargs": "17.4.1"
   },
   "devDependencies": {
-    "@commitlint/cli": "16.2.3",
-    "@commitlint/config-conventional": "16.2.1",
+    "@commitlint/cli": "16.2.4",
+    "@commitlint/config-conventional": "16.2.4",
     "@types/jest": "27.4.1",
     "@types/js-yaml": "4.0.5",
     "@types/micromatch": "4.0.2",
     "@types/mock-fs": "4.13.1",
-    "@types/node": "16.11.26",
+    "@types/node": "16.11.31",
     "@types/node-fetch": "2.6.1",
     "@types/validator": "13.7.2",
     "@types/yargs": "17.0.10",
-    "@typescript-eslint/eslint-plugin": "5.16.0",
-    "@typescript-eslint/parser": "5.16.0",
-    "eslint": "8.12.0",
+    "@typescript-eslint/eslint-plugin": "5.21.0",
+    "@typescript-eslint/parser": "5.21.0",
+    "eslint": "8.14.0",
     "eslint-config-prettier": "8.5.0",
     "husky": "7.0.4",
     "jest": "27.5.1",
     "jest-spec-reporter": "1.0.17",
-    "lint-staged": "12.3.7",
+    "lint-staged": "12.4.1",
     "mock-fs": "5.1.2",
     "nock": "13.2.4",
-    "pkg": "5.5.2",
-    "prettier": "2.6.1",
+    "pkg": "5.6.0",
+    "prettier": "2.6.2",
     "standard-version": "9.3.2",
-    "testdouble": "3.16.4",
+    "testdouble": "3.16.5",
     "testdouble-jest": "2.0.0",
     "ts-jest": "27.1.4",
     "typescript": "4.6.3"
diff --git a/src/helpers/constansts.ts b/src/helpers/constansts.ts
index 841860c..c29d6ff 100644
--- a/src/helpers/constansts.ts
+++ b/src/helpers/constansts.ts
@@ -1,1 +1,3 @@
 export const DEFAULT_UPLOAD_HOST = 'https://codecov.io'
+
+export const SPAWNPROCESSBUFFERSIZE = 1_048_576 * 100 // 100 MiB
diff --git a/src/helpers/coveragepy.ts b/src/helpers/coveragepy.ts
index fd507e4..dc24073 100644
--- a/src/helpers/coveragepy.ts
+++ b/src/helpers/coveragepy.ts
@@ -1,9 +1,23 @@
+import glob from 'fast-glob'
+
 import { isProgramInstalled, runExternalProgram } from "./util"
 import { info } from './logger'
 
-export async function generateCoveragePyFile(): Promise<string> {
+export async function generateCoveragePyFile(projectRoot: string, overrideFiles: string[]): Promise<string> {
     if (!isProgramInstalled('coverage')) {
-        throw new Error('coveragepy is not installed')
+        return 'coveragepy is not installed'
+    }
+
+    if (overrideFiles.length > 0) {
+        return `Skipping coveragepy, files already specified`
+    }
+
+    const dotCoverage = await glob(
+        ['.coverage', '.coverage.*'],
+        {cwd: projectRoot, dot: true, onlyFiles: true},
+    )
+    if (dotCoverage.length == 0) {
+        return 'Skipping coveragepy, no .coverage file found.'
     }
 
     info('Running coverage xml...')
diff --git a/src/helpers/files.ts b/src/helpers/files.ts
index b2ac57e..b3084f3 100644
--- a/src/helpers/files.ts
+++ b/src/helpers/files.ts
@@ -7,6 +7,7 @@ import { UploaderArgs } from '../types'
 import { logError, UploadLogger } from './logger'
 import { runExternalProgram } from './util'
 import micromatch from "../vendor/micromatch/index.js";
+import { SPAWNPROCESSBUFFERSIZE } from './constansts'
 
 export const MARKER_NETWORK_END = '\n<<<<<< network\n'
 export const MARKER_FILE_END = '<<<<<< EOF\n'
@@ -235,11 +236,11 @@ export function getAllFiles(
 ): string[] {
   UploadLogger.verbose(`Searching for files in ${dirPath}`)
 
-  const {
-    stdout,
-    status,
-    error,
-  } = spawnSync('git', ['-C', dirPath, 'ls-files'], { encoding: 'utf8' })
+  const { stdout, status, error } = spawnSync(
+    'git',
+    ['-C', dirPath, 'ls-files'],
+    { encoding: 'utf8', maxBuffer: SPAWNPROCESSBUFFERSIZE },
+  )
 
   let files = []
   if (error instanceof Error || status !== 0) {
diff --git a/src/helpers/util.ts b/src/helpers/util.ts
index d5d8cdf..3d861a2 100644
--- a/src/helpers/util.ts
+++ b/src/helpers/util.ts
@@ -1,6 +1,8 @@
 import childprocess from 'child_process'
+import { SPAWNPROCESSBUFFERSIZE } from './constansts'
+export { SPAWNPROCESSBUFFERSIZE } from './constansts'
+
 
-export const SPAWNPROCESSBUFFERSIZE = 1_048_576 * 10 // 10 MiB
 
 export function isProgramInstalled(programName: string): boolean {
   return !childprocess.spawnSync(programName).error
diff --git a/src/index.ts b/src/index.ts
index 53517d5..07fb486 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -138,7 +138,7 @@ export async function main(
 
   // #endregion
   // #region == Step 4: get network
-  let uploadFile = ''
+  const uploadFileChunks: Buffer[] = []
 
   if (!args.feature || args.feature.split(',').includes('network') === false) {
     UploadLogger.verbose('Start of network processing...')
@@ -149,7 +149,8 @@ export async function main(
       throw new Error(`Error getting file listing: ${error}`)
     }
 
-    uploadFile = uploadFile.concat(fileListing).concat(MARKER_NETWORK_END)
+    uploadFileChunks.push(Buffer.from(fileListing))
+    uploadFileChunks.push(Buffer.from(MARKER_NETWORK_END))
   }
 
   // #endregion
@@ -178,15 +179,16 @@ export async function main(
     }
   }
 
+  let coverageFilePaths: string[] = []
+  requestedPaths = argAsArray(args.file)
+
   try {
-    await generateCoveragePyFile()
+    const coveragePyLogs = await generateCoveragePyFile(projectRoot, requestedPaths)
+    UploadLogger.verbose(`${coveragePyLogs}`)
   } catch (error) {
     UploadLogger.verbose(`Skipping coveragepy conversion: ${error}`)
   }
 
-  let coverageFilePaths: string[] = []
-  requestedPaths = argAsArray(args.file)
-
   coverageFilePaths = requestedPaths
 
   if (!args.feature || args.feature.split(',').includes('search') === false) {
@@ -269,10 +271,9 @@ export async function main(
       continue
     }
 
-    uploadFile = uploadFile
-      .concat(fileHeader(coverageFile))
-      .concat(fileContents)
-      .concat(MARKER_FILE_END)
+    uploadFileChunks.push(Buffer.from(fileHeader(coverageFile)))
+    uploadFileChunks.push(Buffer.from(fileContents))
+    uploadFileChunks.push(Buffer.from(MARKER_FILE_END))
     coverageFileAdded = true
   }
   if (!coverageFileAdded) {
@@ -294,9 +295,11 @@ export async function main(
       .filter(Boolean)
       .map(evar => `${evar}=${process.env[evar] || ''}\n`)
       .join('')
-    uploadFile = uploadFile.concat(vars).concat(MARKER_ENV_END)
+    uploadFileChunks.push(Buffer.from(vars))
+    uploadFileChunks.push(Buffer.from(MARKER_ENV_END))
   }
 
+  const uploadFile = Buffer.concat(uploadFileChunks)
   const gzippedFile = zlib.gzipSync(uploadFile)
 
   // #endregion
@@ -323,7 +326,7 @@ export async function main(
   const query = webHelpers.generateQuery(buildParams)
 
   if (args.dryRun) {
-    dryRun(uploadHost, token, query, uploadFile, args.source || '')
+    dryRun(uploadHost, token, query, uploadFile.toString(), args.source || '')
     return
   }
 


Test patch:
diff --git a/test/fixtures/coveragepy/.coverage.test b/test/fixtures/coveragepy/.coverage.test
new file mode 100644
index 0000000..2691857
--- /dev/null
+++ b/test/fixtures/coveragepy/.coverage.test
@@ -0,0 +1,1 @@
+testfile
diff --git a/test/helpers/coveragepy.test.ts b/test/helpers/coveragepy.test.ts
index 884d0e6..050549b 100644
--- a/test/helpers/coveragepy.test.ts
+++ b/test/helpers/coveragepy.test.ts
@@ -1,6 +1,8 @@
-import td from 'testdouble'
+import path from 'path'
 import childProcess from 'child_process'
+import td from 'testdouble'
 import { generateCoveragePyFile } from '../../src/helpers/coveragepy'
+import * as fileHelpers from '../../src/helpers/files'
 import { SPAWNPROCESSBUFFERSIZE } from '../../src/helpers/util'
 
 describe('generateCoveragePyFile()', () => {
@@ -9,6 +11,11 @@ describe('generateCoveragePyFile()', () => {
     })
 
     it('should run when coveragepy is asked for', async () => {
+        const fixturesCoveragePyDir = path.join(
+            fileHelpers.fetchGitRoot(),
+            'test/fixtures/coveragepy',
+        )
+
         const spawnSync = td.replace(childProcess, 'spawnSync')
         td.when(spawnSync('coverage')).thenReturn({
             stdout: 'coverage installed',
@@ -19,13 +26,40 @@ describe('generateCoveragePyFile()', () => {
             error: null
         })
 
-        expect(await generateCoveragePyFile()).toBe('xml')
+        expect(await generateCoveragePyFile(fixturesCoveragePyDir, [])).toBe('xml')
+    })
+
+    it('should return if a file is provided', async () => {
+        const spawnSync = td.replace(childProcess, 'spawnSync')
+        td.when(spawnSync('coverage')).thenReturn({
+            stdout: 'coverage installed',
+            error: null
+        })
+
+        const projectRoot = process.cwd()
+        expect(await generateCoveragePyFile(projectRoot, ['fakefile'])).toBe('Skipping coveragepy, files already specified')
     })
 
     it('should return a log when coveragepy is not installed', async () => {
         const spawnSync = td.replace(childProcess, 'spawnSync')
         td.when(spawnSync('coverage')).thenReturn({ error: "command not found: coverage" })
 
-        await expect(generateCoveragePyFile()).rejects.toThrowError(/coveragepy is not installed/)
+        const projectRoot = process.cwd()
+        expect(await generateCoveragePyFile(projectRoot, [])).toBe('coveragepy is not installed')
+    })
+
+    it('should return a log when there are no dotcoverage files', async () => {
+        const fixturesYamlDir = path.join(
+            fileHelpers.fetchGitRoot(),
+            'test/fixtures/yaml',
+        )
+
+        const spawnSync = td.replace(childProcess, 'spawnSync')
+        td.when(spawnSync('coverage')).thenReturn({
+            stdout: 'coverage installed',
+            error: null
+        })
+
+        expect(await generateCoveragePyFile(fixturesYamlDir, [])).toBe('Skipping coveragepy, no .coverage file found.')
     })
 })
diff --git a/test/helpers/util.test.ts b/test/helpers/util.test.ts
index 60b1b52..c4c407a 100644
--- a/test/helpers/util.test.ts
+++ b/test/helpers/util.test.ts
@@ -1,61 +1,60 @@
 import childProcess from 'child_process'
 import td from 'testdouble'
-import {
-    isProgramInstalled,
-    runExternalProgram,
-    SPAWNPROCESSBUFFERSIZE,
-} from '../../src/helpers/util'
+import { isProgramInstalled, runExternalProgram } from '../../src/helpers/util'
+import { SPAWNPROCESSBUFFERSIZE } from '../../src/helpers/constansts'
 
 describe('isProgramInstalled()', () => {
-    afterEach(() => {
-        td.reset()
-    })
-
-    it('should throw an error when program is not found', () => {
-        const spawnSync = td.replace(childProcess, 'spawnSync')
-        td.when(spawnSync('fooProg')).thenReturn({
-          error: 'Huh?',
-        })
-        expect(isProgramInstalled('fooProg')).toBeFalsy()
-
+  afterEach(() => {
+    td.reset()
+  })
+
+  it('should throw an error when program is not found', () => {
+    const spawnSync = td.replace(childProcess, 'spawnSync')
+    td.when(spawnSync('fooProg')).thenReturn({
+      error: 'Huh?',
     })
+    expect(isProgramInstalled('fooProg')).toBeFalsy()
+  })
 })
 
 describe('runExternalProgram()', () => {
-    afterEach(() => {
-        td.reset()
+  afterEach(() => {
+    td.reset()
+  })
+
+  it('should throw an error when program is not found', () => {
+    const spawnSync = td.replace(childProcess, 'spawnSync')
+    td.when(
+      spawnSync('ls', ['-geewhiz'], { maxBuffer: SPAWNPROCESSBUFFERSIZE }),
+    ).thenReturn({
+      error: 'Huh?',
     })
-
-    it('should throw an error when program is not found', () => {
-        const spawnSync = td.replace(childProcess, 'spawnSync')
-        td.when(spawnSync('ls', ['-geewhiz'], { maxBuffer: SPAWNPROCESSBUFFERSIZE })).thenReturn({
-          error: 'Huh?',
-        })
-        expect(() => runExternalProgram('ls', ['-geewhiz'])).toThrowError(/Huh\?/)
-
+    expect(() => runExternalProgram('ls', ['-geewhiz'])).toThrowError(/Huh\?/)
+  })
+
+  it('should return stdout on success', () => {
+    const spawnSync = td.replace(childProcess, 'spawnSync')
+    td.when(
+      spawnSync('ls', ['-geewhiz'], { maxBuffer: SPAWNPROCESSBUFFERSIZE }),
+    ).thenReturn({
+      stdout: 'I am output',
     })
+    expect(runExternalProgram('ls', ['-geewhiz'])).toEqual('I am output')
+  })
 
-    it('should return stdout on success', () => {
-        const spawnSync = td.replace(childProcess, 'spawnSync')
-        td.when(spawnSync('ls', ['-geewhiz'], { maxBuffer: SPAWNPROCESSBUFFERSIZE })).thenReturn({
-          stdout: 'I am output',
-        })
-        expect(runExternalProgram('ls', ['-geewhiz'])).toEqual("I am output")
-
-    })
-
-    it('should return a trimmed string with no newlines', () => {
-        const spawnSync = td.replace(childProcess, 'spawnSync')
-        td.when(spawnSync('ls', ['-geewhiz'], { maxBuffer: SPAWNPROCESSBUFFERSIZE })).thenReturn({
-          stdout: `
+  it('should return a trimmed string with no newlines', () => {
+    const spawnSync = td.replace(childProcess, 'spawnSync')
+    td.when(
+      spawnSync('ls', ['-geewhiz'], { maxBuffer: SPAWNPROCESSBUFFERSIZE }),
+    ).thenReturn({
+      stdout: `
 
 
           I am output
 
 
           `,
-        })
-        expect(runExternalProgram('ls', ['-geewhiz'])).toEqual("I am output")
-
     })
+    expect(runExternalProgram('ls', ['-geewhiz'])).toEqual('I am output')
+  })
 })