From 5c9ae6830ec6fc0bd44bc9f98a5481b7c87a3778 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Thu, 9 May 2024 13:25:20 -0400 Subject: [PATCH 01/15] get some awareness --- .github/workflows/main.yml | 2 +- src/health-score.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8652a64..a614ae0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,6 @@ name: Tests on: - pull_request_target: + pull_request: push: branches: - main diff --git a/src/health-score.js b/src/health-score.js index 32587f9..d63b991 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -3,6 +3,8 @@ const child_process = require('child_process'); module.exports = { calc: function calculateScore(/* core */) { // TODO: wire up action inputs + console.log('pwd:', child_process.execSync('pwd').toString()); + console.log('ls -al:', child_process.execSync('ls -al').toString()); return module.exports.grep('js', 'node_modules'); // TODO: wire up action outputs }, From e2a833d798c3edd6e0cf53cd1f7ba4cbe3cc9f83 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Thu, 9 May 2024 13:27:03 -0400 Subject: [PATCH 02/15] why is this number so high? --- src/health-score.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/health-score.js b/src/health-score.js index d63b991..a83a6cf 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -13,7 +13,7 @@ module.exports = { if (ignore) { find += ` -not -path "*/${ignore}/*"`; } - find += ' -exec grep -E \'TODO|HACK|FIXME\' {} \\; | wc -l'; + find += ' -exec grep -E \'TODO|HACK|FIXME\' {} \\;'; let count = 0; console.log(find); try { From 6aac550d9e9f71da077ca07f6a94c80c6cc20806 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Thu, 9 May 2024 13:28:28 -0400 Subject: [PATCH 03/15] why is this number so high? --- src/health-score.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/health-score.js b/src/health-score.js index a83a6cf..33d35d2 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -17,8 +17,9 @@ module.exports = { let count = 0; console.log(find); try { - const out = child_process.execSync(find); - count = parseInt(out.toString().trim(), 10); + const out = child_process.execSync(find).toString().trim(); + console.log(out); + count = parseInt(out, 10); } catch (e) { // TODO: handle error } From c5e88922ddc97d6838c4f65863ac934b9211e2ec Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Thu, 9 May 2024 14:30:12 -0400 Subject: [PATCH 04/15] read gitignore to populate places to ignore --- .github/workflows/local/local.yml | 17 +++++---------- .github/workflows/main.yml | 2 +- action.yml | 7 ++++-- src/health-score.js | 36 ++++++++++++++++++++++--------- 4 files changed, 37 insertions(+), 25 deletions(-) diff --git a/.github/workflows/local/local.yml b/.github/workflows/local/local.yml index 1518950..d382237 100644 --- a/.github/workflows/local/local.yml +++ b/.github/workflows/local/local.yml @@ -12,17 +12,10 @@ jobs: - name: Checkout action uses: actions/checkout@v4 - name: Build action - run: npm install && npm run build - - name: Send a message into channel - id: slack + run: npm install && npm run build -- -d + - name: Healthscore the healthscore + id: slack-health-score uses: ./. with: - payload: | - { - "repository": "${{ github.repository }}", - "pull_request_username": "${{ github.event.pull_request.user.login }}", - "pull_request_title": ${{ toJSON(github.event.pull_request.title) }}, - "pull_request_url": "${{ github.event.pull_request.html_url }}" - } - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + extension: js + include: src diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a614ae0..61ce991 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,4 +27,4 @@ jobs: uses: ./ with: extension: js - ignore: node_modules + include: src diff --git a/action.yml b/action.yml index 3fc6648..7ec030e 100644 --- a/action.yml +++ b/action.yml @@ -4,8 +4,11 @@ inputs: extension: description: 'File extension of files to filter on to search for problematic comments. E.g. "js" or "go"' required: true - ignore: - description: 'Ignore files that include this string in their path. E.g. "node_modules"' + include: + description: 'Only parse the specified files and directories (recursively). Ideally supports glob syntax? Defaults to contents of `.`. E.g. "src"' + required: false + exclude: + description: 'Ignore the specified files and directories. Essentially a direct argument into `find` `-not -path "{arg}"`. Defaults to contents of `.gitignore`. E.g. "node_modules"' required: false # outputs: runs: diff --git a/src/health-score.js b/src/health-score.js index 33d35d2..9bd5a9a 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -1,28 +1,44 @@ const child_process = require('child_process'); +const fs = require('fs'); module.exports = { calc: function calculateScore(/* core */) { // TODO: wire up action inputs console.log('pwd:', child_process.execSync('pwd').toString()); console.log('ls -al:', child_process.execSync('ls -al').toString()); - return module.exports.grep('js', 'node_modules'); // TODO: wire up action outputs + return module.exports.grep('js', ['src'], []); }, - grep: function grepForProblematicComments(ext, ignore) { - let find = `find . -name "*.${ext}"`; - if (ignore) { - find += ` -not -path "*/${ignore}/*"`; + grep: function grepForProblematicComments(ext, include, exclude) { + let find = 'find'; + if (include && include.length) { + include.forEach((i) => { + find += ` ${i}`; + }); + } else { + find += ' .'; } + find += ` -name "*.${ext}"`; + let ignores = []; + if (exclude && exclude.length) { + ignores = exclude; + } else if (fs.existsSync('.gitignore')) { + ignores = fs.readFileSync('.gitignore').toString().split('\n') + .filter(Boolean) + .map((entry) => entry.trim()); + } + ignores.forEach((ex) => { + find += ` -not -path "*/${ex}/*" -not -path "*/${ex}"`; + }); find += ' -exec grep -E \'TODO|HACK|FIXME\' {} \\;'; - let count = 0; console.log(find); + let output; try { - const out = child_process.execSync(find).toString().trim(); - console.log(out); - count = parseInt(out, 10); + output = child_process.execSync(find).toString().trim(); + console.log(output); } catch (e) { // TODO: handle error } - return count; + return output.split('\n').filter(Boolean).length; }, }; From 3f68611c71a0c327f44bfc5b253f4d084430fab1 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Thu, 9 May 2024 15:31:01 -0400 Subject: [PATCH 05/15] start to calc health score, and we dont need no build step --- .github/workflows/local/local.yml | 3 ++- .github/workflows/main.yml | 2 +- action.yml | 5 ++++- package.json | 4 +--- src/health-score.js | 13 ++++++++----- src/index.js | 5 ++++- 6 files changed, 20 insertions(+), 12 deletions(-) diff --git a/.github/workflows/local/local.yml b/.github/workflows/local/local.yml index d382237..8baf98b 100644 --- a/.github/workflows/local/local.yml +++ b/.github/workflows/local/local.yml @@ -12,10 +12,11 @@ jobs: - name: Checkout action uses: actions/checkout@v4 - name: Build action - run: npm install && npm run build -- -d + run: npm install - name: Healthscore the healthscore id: slack-health-score uses: ./. with: + github_token: garbage extension: js include: src diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 61ce991..657d48a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,7 +14,6 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - run: npm ci - - run: npm run build - run: npm test - run: npm run test:gen-cov - name: Upload coverage to CodeCov @@ -26,5 +25,6 @@ jobs: - name: Yo dawg I heard you like healthscores so I healthscored your healthscore so you can healthscore while you healthscore uses: ./ with: + github_token: ${{ secrets.GITHUB_TOKEN }} extension: js include: src diff --git a/action.yml b/action.yml index 7ec030e..8f19eb2 100644 --- a/action.yml +++ b/action.yml @@ -4,6 +4,9 @@ inputs: extension: description: 'File extension of files to filter on to search for problematic comments. E.g. "js" or "go"' required: true + github_token: + description: 'A GitHub access token with permissions to write commit statuses. Recommended to set this to `${{ secrets.GITHUB_TOKEN }}`.' + required: true include: description: 'Only parse the specified files and directories (recursively). Ideally supports glob syntax? Defaults to contents of `.`. E.g. "src"' required: false @@ -13,4 +16,4 @@ inputs: # outputs: runs: using: 'node20' - main: 'dist/index.js' + main: 'src/index.js' diff --git a/package.json b/package.json index a63d9b2..3b56797 100644 --- a/package.json +++ b/package.json @@ -2,14 +2,13 @@ "name": "slack-health-score", "version": "0.0.1", "description": "A rough health score reporter", - "main": "dist/index.js", + "main": "src/index.js", "scripts": { "lint": "eslint .", "local": "act public --eventpath .github/workflows/local/event.json --secret-file .github/workflows/local/.env --platform ubuntu-latest=node:20-buster", "test:mocha": "mocha --config .mocharc.json test/*-test.js", "test:gen-cov": "nyc --reporter=lcov npm run test:mocha", "test": "npm run lint && nyc npm run test:mocha", - "build": "npx @vercel/ncc build src/index.js --license licenses.txt" }, "repository": { "type": "git", @@ -37,7 +36,6 @@ "@actions/github": "^6.0.0" }, "devDependencies": { - "@vercel/ncc": "^0.38.1", "chai": "^4.3.10", "eslint": "^8.57.0", "eslint-config-airbnb-base": "^15.0.0", diff --git a/src/health-score.js b/src/health-score.js index 9bd5a9a..3bdb992 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -2,12 +2,15 @@ const child_process = require('child_process'); const fs = require('fs'); module.exports = { - calc: function calculateScore(/* core */) { - // TODO: wire up action inputs - console.log('pwd:', child_process.execSync('pwd').toString()); - console.log('ls -al:', child_process.execSync('ls -al').toString()); + /** + * @param {import('@actions/core')} core `@actions/core` GitHub Actions core helper utility + * @returns {number} Total calculated health score + */ + calc: function calculateScore(core) { // TODO: wire up action outputs - return module.exports.grep('js', ['src'], []); + return ( + (module.exports.grep(core.getInput('extension'), ['src'], []) * 100) // to-do et al comments + ) * -1; }, grep: function grepForProblematicComments(ext, include, exclude) { let find = 'find'; diff --git a/src/index.js b/src/index.js index c50dcbe..f9f73a8 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,7 @@ const core = require('@actions/core'); const hs = require('./health-score'); -console.log(hs.calc(core)); +const score = hs.calc(core); +console.log(score); +// TODO: report the score using github status checks +// hs.report(score); From 354b254ce31973319beef5a4e68c590ec8a482b8 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Thu, 9 May 2024 15:31:52 -0400 Subject: [PATCH 06/15] derp --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3b56797..87f7ed6 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "local": "act public --eventpath .github/workflows/local/event.json --secret-file .github/workflows/local/.env --platform ubuntu-latest=node:20-buster", "test:mocha": "mocha --config .mocharc.json test/*-test.js", "test:gen-cov": "nyc --reporter=lcov npm run test:mocha", - "test": "npm run lint && nyc npm run test:mocha", + "test": "npm run lint && nyc npm run test:mocha" }, "repository": { "type": "git", From 93cae405b17d60ede42d64a29ef730259cdf389e Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Thu, 9 May 2024 15:36:39 -0400 Subject: [PATCH 07/15] lol cant use the full GH interpolation syntax in descriptions --- action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/action.yml b/action.yml index 8f19eb2..880021f 100644 --- a/action.yml +++ b/action.yml @@ -5,7 +5,7 @@ inputs: description: 'File extension of files to filter on to search for problematic comments. E.g. "js" or "go"' required: true github_token: - description: 'A GitHub access token with permissions to write commit statuses. Recommended to set this to `${{ secrets.GITHUB_TOKEN }}`.' + description: 'A GitHub access token with permissions to write commit statuses. Recommended to set this to `secrets.GITHUB_TOKEN`.' required: true include: description: 'Only parse the specified files and directories (recursively). Ideally supports glob syntax? Defaults to contents of `.`. E.g. "src"' From 942da3e7889c7aec914d26f19989e2ac1fd0e900 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Fri, 10 May 2024 11:04:03 -0400 Subject: [PATCH 08/15] lets try to report this shiet --- src/health-score.js | 61 ++++++++++++++++++++++++++++++++++++++++----- src/index.js | 8 +++--- 2 files changed, 59 insertions(+), 10 deletions(-) diff --git a/src/health-score.js b/src/health-score.js index 3bdb992..a647814 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -1,16 +1,24 @@ const child_process = require('child_process'); const fs = require('fs'); +/** + * Health Score object containing health score details. + * @typedef {object} HealthScore + * @property {Array.string} comments Array of problematic comments detected in code. + */ + module.exports = { /** + * @description Compiles the health score components * @param {import('@actions/core')} core `@actions/core` GitHub Actions core helper utility - * @returns {number} Total calculated health score + * @returns {HealthScore} score Health score details object */ - calc: function calculateScore(core) { + compile: function compileScore(core) { // TODO: wire up action outputs - return ( - (module.exports.grep(core.getInput('extension'), ['src'], []) * 100) // to-do et al comments - ) * -1; + return { + // TODO: support src as arrays + comments: module.exports.grep(core.getInput('extension'), [core.getInput('src') || '.'], []), // to-do et al comments + }; }, grep: function grepForProblematicComments(ext, include, exclude) { let find = 'find'; @@ -42,6 +50,47 @@ module.exports = { } catch (e) { // TODO: handle error } - return output.split('\n').filter(Boolean).length; + return output.split('\n').filter(Boolean); + }, + /** + * @param {Date} startTime the JavaScript Date of the start of this action's run + * @param {import('@actions/core')} core `@actions/core` GitHub Actions core helper utility + * @param {import('@actions/github')} github `@actions/github` GitHub Actions core helper utility + * @param {HealthScore} score The health score to be reported + * @returns {Promise} Total calculated health score + */ + report: async function reportStatus(startTime, core, github, score) { + const gh = core.getInput('github_token'); + if (!gh) { + core.warning('No GitHub token found; will not report score on commit status.'); + return 0; + } + // Calculate score + const points = ( + score.comments.length * 100 + ) * -1; + + // Report the thing + const ctx = github.context; + const octokit = github.getOctokit(gh); + const res = await octokit.rest.checks.create({ + name: 'Health Score', + owner: ctx.repo.owner, + repo: ctx.repo.repo, + head_sha: ctx.sha, + status: 'completed', + conclusion: 'neutral', + completed_at: new Date().toISOString(), + started_at: startTime.toISOString(), + output: { + title: 'Calculate Health Score', + summary: `${points} points`, + text: `Details: + +Problematic comments:\n${score.comments.map((c) => ` ${c}`).join('\n')}`, + }, + }); + console.log(res); + return points; }, }; diff --git a/src/index.js b/src/index.js index f9f73a8..f52b901 100644 --- a/src/index.js +++ b/src/index.js @@ -1,7 +1,7 @@ const core = require('@actions/core'); +const github = require('@actions/github'); const hs = require('./health-score'); -const score = hs.calc(core); -console.log(score); -// TODO: report the score using github status checks -// hs.report(score); +const startTime = new Date(); +const score = hs.compile(core); +hs.report(startTime, core, github, score).then(console.log); From 2aeb306d0f364e9b0c4e72db160e5f00af814868 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Fri, 10 May 2024 11:21:17 -0400 Subject: [PATCH 09/15] create a check or a commit status? --- src/health-score.js | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/health-score.js b/src/health-score.js index a647814..2452c97 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -73,22 +73,15 @@ module.exports = { // Report the thing const ctx = github.context; const octokit = github.getOctokit(gh); - const res = await octokit.rest.checks.create({ - name: 'Health Score', + const res = await octokit.rest.repos.createCommitStatus({ owner: ctx.repo.owner, repo: ctx.repo.repo, - head_sha: ctx.sha, - status: 'completed', - conclusion: 'neutral', - completed_at: new Date().toISOString(), - started_at: startTime.toISOString(), - output: { - title: 'Calculate Health Score', - summary: `${points} points`, - text: `Details: + sha: ctx.sha, + state: 'success', + context: 'Slack Health Score', + description: `Details: Problematic comments:\n${score.comments.map((c) => ` ${c}`).join('\n')}`, - }, }); console.log(res); return points; From 6af0df3d148a321a8fb60ac0dcb4caa1d7ec410b Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Fri, 10 May 2024 11:32:20 -0400 Subject: [PATCH 10/15] lets try to list suites? --- src/health-score.js | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/health-score.js b/src/health-score.js index 2452c97..fa473ea 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -73,17 +73,31 @@ module.exports = { // Report the thing const ctx = github.context; const octokit = github.getOctokit(gh); - const res = await octokit.rest.repos.createCommitStatus({ + console.log('getting suites for ref', await octokit.rest.checks.listSuitesForRef({ + ref: ctx.ref, + repo: ctx.repo.repo, + owner: ctx.repo.owner, + })); + /* + const res = await octokit.rest.checks.create({ + name: 'Health Score', owner: ctx.repo.owner, repo: ctx.repo.repo, - sha: ctx.sha, - state: 'success', - context: 'Slack Health Score', - description: `Details: + head_sha: ctx.sha, + status: 'completed', + conclusion: 'neutral', + completed_at: new Date().toISOString(), + started_at: startTime.toISOString(), + output: { + title: 'Calculate Health Score', + summary: `${points} points`, + text: `Details: Problematic comments:\n${score.comments.map((c) => ` ${c}`).join('\n')}`, + }, }); console.log(res); + */ return points; }, }; From d8ffb38789dfbd3d9ac4c87f437008221dd55e0a Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Fri, 10 May 2024 12:05:04 -0400 Subject: [PATCH 11/15] what sha to use --- package-lock.json | 873 -------------------------------------------- src/health-score.js | 8 +- 2 files changed, 1 insertion(+), 880 deletions(-) diff --git a/package-lock.json b/package-lock.json index c599585..666edbb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,6 @@ "@actions/github": "^6.0.0" }, "devDependencies": { - "@vercel/ncc": "^0.38.1", "chai": "^4.3.10", "eslint": "^8.57.0", "eslint-config-airbnb-base": "^15.0.0", @@ -22,7 +21,6 @@ "eslint-plugin-node": "^11.1.0", "mocha": "^10.4.0", "nyc": "^15.1.0", - "rewiremock": "^3.14.5", "sinon": "^17.0.1" }, "engines": { @@ -949,15 +947,6 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/@vercel/ncc": { - "version": "0.38.1", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz", - "integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==", - "dev": true, - "bin": { - "ncc": "dist/ncc/cli.js" - } - }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -1201,48 +1190,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.4", - "util": "^0.10.4" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -1267,42 +1214,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dev": true, - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/before-after-hook": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", @@ -1320,12 +1237,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1348,95 +1259,12 @@ "node": ">=8" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", - "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.5", - "hash-base": "~3.0", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, "node_modules/browserslist": { "version": "4.23.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", @@ -1469,23 +1297,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", @@ -1498,12 +1309,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true - }, "node_modules/caching-transform": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", @@ -1661,16 +1466,6 @@ "node": ">= 6" } }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -1724,12 +1519,6 @@ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "node_modules/compare-module-exports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/compare-module-exports/-/compare-module-exports-2.1.0.tgz", - "integrity": "sha512-3Lc0sTIuX1jmY2K2RrXRJOND6KsRTX2D4v3+eu1PDptsuJZVK4LZc852eZa9I+avj0NrUKlTNgqvccNOH6mbGg==", - "dev": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1742,81 +1531,12 @@ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1831,28 +1551,6 @@ "node": ">= 8" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, "node_modules/data-view-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", @@ -2002,16 +1700,6 @@ "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -2021,23 +1709,6 @@ "node": ">=0.3.1" } }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -2050,43 +1721,12 @@ "node": ">=6.0.0" } }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, "node_modules/electron-to-chromium": { "version": "1.4.758", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.758.tgz", "integrity": "sha512-/o9x6TCdrYZBMdGeTifAP3wlF/gVT+TtWJe3BSmtNh92Mw81U9hrYwW9OAGUh+sEOX/yz5e34sksqRruZbjYrw==", "dev": true }, - "node_modules/elliptic": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", - "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2623,25 +2263,6 @@ "node": ">=0.10.0" } }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3101,29 +2722,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, "node_modules/hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -3170,49 +2768,12 @@ "he": "bin/he" } }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, "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/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", @@ -3622,12 +3183,6 @@ "node": ">=0.10.0" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -3867,12 +3422,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", - "dev": true - }, "node_modules/lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", @@ -3891,31 +3440,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==", - "dev": true - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -3965,48 +3489,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -4130,37 +3612,6 @@ "path-to-regexp": "^6.2.1" } }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, "node_modules/node-preload": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", @@ -4500,12 +3951,6 @@ "node": ">= 0.8.0" } }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -4572,12 +4017,6 @@ "node": ">=8" } }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -4590,29 +4029,6 @@ "node": ">=6" } }, - "node_modules/parse-asn1": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", - "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", - "dev": true, - "dependencies": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "hash-base": "~3.0", - "pbkdf2": "^3.1.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -4661,22 +4077,6 @@ "node": "*" } }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -4777,21 +4177,6 @@ "node": ">= 0.8.0" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, "node_modules/process-on-spawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", @@ -4804,56 +4189,6 @@ "node": ">=8" } }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "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/qs": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", - "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -4883,46 +4218,6 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -4935,12 +4230,6 @@ "node": ">=8.10.0" } }, - "node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", @@ -5034,22 +4323,6 @@ "node": ">=0.10.0" } }, - "node_modules/rewiremock": { - "version": "3.14.5", - "resolved": "https://registry.npmjs.org/rewiremock/-/rewiremock-3.14.5.tgz", - "integrity": "sha512-MdPutvaUd+kKVz/lcEz6N6337s4PxRUR5vhphIp2/TJRgfXIckomIkCsIAbwB53MjiSLwi7KBMdQ9lPWE5WpYA==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "compare-module-exports": "^2.1.0", - "lodash.some": "^4.6.0", - "lodash.template": "^4.4.0", - "node-libs-browser": "^2.1.0", - "path-parse": "^1.0.5", - "wipe-node-cache": "^2.1.2", - "wipe-webpack-cache": "^2.1.0" - } - }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -5085,16 +4358,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -5235,25 +4498,6 @@ "node": ">= 0.4" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5380,38 +4624,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -5572,24 +4784,6 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", - "dev": true - }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -5644,12 +4838,6 @@ "node": ">=4" } }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", - "dev": true - }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -5852,37 +5040,6 @@ "node": ">=6" } }, - "node_modules/url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", - "dev": true, - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.11.2" - } - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -5891,12 +5048,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -5953,21 +5104,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wipe-node-cache": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/wipe-node-cache/-/wipe-node-cache-2.1.2.tgz", - "integrity": "sha512-m7NXa8qSxBGMtdQilOu53ctMaIBXy93FOP04EC1Uf4bpsE+r+adfLKwIMIvGbABsznaSNxK/ErD4xXDyY5og9w==", - "dev": true - }, - "node_modules/wipe-webpack-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wipe-webpack-cache/-/wipe-webpack-cache-2.1.0.tgz", - "integrity": "sha512-OXzQMGpA7MnQQ8AG+uMl5mWR2ezy6fw1+DMHY+wzYP1qkF1jrek87psLBmhZEj+er4efO/GD4R8jXWFierobaA==", - "dev": true, - "dependencies": { - "wipe-node-cache": "^2.1.0" - } - }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -6017,15 +5153,6 @@ "typedarray-to-buffer": "^3.1.5" } }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/src/health-score.js b/src/health-score.js index fa473ea..0f9eada 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -72,13 +72,8 @@ module.exports = { // Report the thing const ctx = github.context; + console.log('github event, sha and payload', ctx.eventName, ctx.sha, ctx.payload); const octokit = github.getOctokit(gh); - console.log('getting suites for ref', await octokit.rest.checks.listSuitesForRef({ - ref: ctx.ref, - repo: ctx.repo.repo, - owner: ctx.repo.owner, - })); - /* const res = await octokit.rest.checks.create({ name: 'Health Score', owner: ctx.repo.owner, @@ -97,7 +92,6 @@ Problematic comments:\n${score.comments.map((c) => ` ${c}`).join('\n')}`, }, }); console.log(res); - */ return points; }, }; From 091b037e96d4e58d1236d57fce3a01ff63ae6ca9 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Fri, 10 May 2024 12:09:43 -0400 Subject: [PATCH 12/15] start figuring out contextual sha from GH event --- src/health-score.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/health-score.js b/src/health-score.js index 0f9eada..0303252 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -72,13 +72,23 @@ module.exports = { // Report the thing const ctx = github.context; - console.log('github event, sha and payload', ctx.eventName, ctx.sha, ctx.payload); + console.log('github event, payload', ctx.eventName, ctx.payload); + let sha; + switch (ctx.eventName) { + case 'pull_request': + sha = ctx.payload.after; + break; + // TODO: what about the push-to-main case? + default: + sha = ctx.sha; + } const octokit = github.getOctokit(gh); + // TODO: handle API call erroring out const res = await octokit.rest.checks.create({ name: 'Health Score', owner: ctx.repo.owner, repo: ctx.repo.repo, - head_sha: ctx.sha, + head_sha: sha, status: 'completed', conclusion: 'neutral', completed_at: new Date().toISOString(), From a8212478cffec21a69b3b80ad226a1cba02dafda Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Fri, 10 May 2024 12:14:03 -0400 Subject: [PATCH 13/15] nerd out a bit on formatting of reporting --- src/health-score.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/health-score.js b/src/health-score.js index 0303252..bff2b25 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -94,11 +94,9 @@ module.exports = { completed_at: new Date().toISOString(), started_at: startTime.toISOString(), output: { - title: 'Calculate Health Score', - summary: `${points} points`, - text: `Details: - -Problematic comments:\n${score.comments.map((c) => ` ${c}`).join('\n')}`, + title: `${points}`, + summary: `${points} health score points`, + text: `Problematic comments:\n${score.comments.map((c) => ` - ${c}`).join('\n')}`, }, }); console.log(res); From 00ee8c876f450a5518c3fa02cfba314bbea6b4b1 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Fri, 10 May 2024 12:17:35 -0400 Subject: [PATCH 14/15] markdown is supported in details --- src/health-score.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/health-score.js b/src/health-score.js index bff2b25..a54e788 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -96,7 +96,10 @@ module.exports = { output: { title: `${points}`, summary: `${points} health score points`, - text: `Problematic comments:\n${score.comments.map((c) => ` - ${c}`).join('\n')}`, + text: `# Score Breakdown + +## Problematic Comments +${score.comments.map((c) => `- \`${c.trim()}\``).join('\n')}`, }, }); console.log(res); From 36815b08e7f91df6007089b44f7db01485b38f4f Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Fri, 10 May 2024 12:19:32 -0400 Subject: [PATCH 15/15] clean up prior to merge --- .github/workflows/main.yml | 2 +- src/health-score.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 657d48a..c9916e0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,6 @@ name: Tests on: - pull_request: + pull_request_target: push: branches: - main diff --git a/src/health-score.js b/src/health-score.js index a54e788..ac8b6c4 100644 --- a/src/health-score.js +++ b/src/health-score.js @@ -72,6 +72,7 @@ module.exports = { // Report the thing const ctx = github.context; + // TODO: replace console logs with core.debug et al console.log('github event, payload', ctx.eventName, ctx.payload); let sha; switch (ctx.eventName) { @@ -84,7 +85,7 @@ module.exports = { } const octokit = github.getOctokit(gh); // TODO: handle API call erroring out - const res = await octokit.rest.checks.create({ + await octokit.rest.checks.create({ name: 'Health Score', owner: ctx.repo.owner, repo: ctx.repo.repo, @@ -102,7 +103,6 @@ module.exports = { ${score.comments.map((c) => `- \`${c.trim()}\``).join('\n')}`, }, }); - console.log(res); return points; }, };