From 8c50e3e6d228bba25575261d4b8317ea5d3350dd Mon Sep 17 00:00:00 2001 From: sbmsr Date: Fri, 24 Feb 2023 21:44:50 -0500 Subject: [PATCH 1/5] add tests --- .github/workflows/main.yml | 34 + .github/workflows/package-lock.json | 1270 ++++++++++++++++++++++++++ .github/workflows/package.json | 8 + .github/workflows/setup/backend.js | 16 + .github/workflows/setup/puppeteer.js | 19 + .github/workflows/setup/webpack.js | 25 + .github/workflows/test.js | 107 +++ .gitignore | 2 +- 8 files changed, 1480 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/main.yml create mode 100644 .github/workflows/package-lock.json create mode 100644 .github/workflows/package.json create mode 100644 .github/workflows/setup/backend.js create mode 100644 .github/workflows/setup/puppeteer.js create mode 100644 .github/workflows/setup/webpack.js create mode 100644 .github/workflows/test.js diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..21e246b --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,34 @@ +name: JobSimulator.dev Test Checker + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "main" branch + push: + branches: ["main"] + pull_request: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + test: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + + - uses: actions/setup-node@v3 + with: + node-version: 16 + + - name: npm install + run: cd .github/workflows && npm i + + - name: Run Tests + run: node .github/workflows/test.js diff --git a/.github/workflows/package-lock.json b/.github/workflows/package-lock.json new file mode 100644 index 0000000..c4c09cf --- /dev/null +++ b/.github/workflows/package-lock.json @@ -0,0 +1,1270 @@ +{ + "name": "workflows", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "devDependencies": { + "jsdom": "^20.0.2", + "uvu": "^0.5.6" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/jsdom": { + "version": "20.0.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.2.tgz", + "integrity": "sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.0", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.9.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", + "dev": true + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dev": true, + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + } + }, + "dependencies": { + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "requires": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "requires": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decimal.js": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true + }, + "diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true + }, + "domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "requires": { + "webidl-conversions": "^7.0.0" + } + }, + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "requires": { + "whatwg-encoding": "^2.0.0" + } + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "jsdom": { + "version": "20.0.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.2.tgz", + "integrity": "sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==", + "dev": true, + "requires": { + "abab": "^2.0.6", + "acorn": "^8.8.0", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.9.0", + "xml-name-validator": "^4.0.0" + } + }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", + "dev": true + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dev": true, + "requires": { + "entities": "^4.4.0" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "requires": { + "mri": "^1.1.0" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + } + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dev": true, + "requires": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + } + }, + "w3c-xmlserializer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", + "dev": true, + "requires": { + "xml-name-validator": "^4.0.0" + } + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true + }, + "whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "requires": { + "iconv-lite": "0.6.3" + } + }, + "whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true + }, + "whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "requires": {} + }, + "xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + } + } +} diff --git a/.github/workflows/package.json b/.github/workflows/package.json new file mode 100644 index 0000000..bf5e6eb --- /dev/null +++ b/.github/workflows/package.json @@ -0,0 +1,8 @@ +{ + "type": "module", + "devDependencies": { + "jsdom": "^20.0.2", + "uvu": "^0.5.6", + "puppeteer": "^19.7.2" + } +} diff --git a/.github/workflows/setup/backend.js b/.github/workflows/setup/backend.js new file mode 100644 index 0000000..42b9a0f --- /dev/null +++ b/.github/workflows/setup/backend.js @@ -0,0 +1,16 @@ +import { spawn } from "node:child_process"; +import { setTimeout } from "timers/promises"; +var backendSocket = {}; + +export async function start() { + let socket = spawn("npx json-server --watch db.json", { + shell: true, + }); + backendSocket = socket; + console.info("Backend is starting..."); + await setTimeout(1000); +} + +export function stop() { + backendSocket.kill(); +} diff --git a/.github/workflows/setup/puppeteer.js b/.github/workflows/setup/puppeteer.js new file mode 100644 index 0000000..3d071f1 --- /dev/null +++ b/.github/workflows/setup/puppeteer.js @@ -0,0 +1,19 @@ +import Chrome from "puppeteer"; +// Launch the browser +// Add `browser` and `page` to context +export async function setup(context) { + console.info("setting up puppeteer"); + context.browser = await Chrome.launch(); + context.page = await context.browser.newPage(); +} + +// Close everything on suite completion +export async function reset(context) { + await context.page.close(); + await context.browser.close(); +} + +// Navigate to homepage +export async function homepage(context) { + await context.page.goto("http://localhost:8080"); +} diff --git a/.github/workflows/setup/webpack.js b/.github/workflows/setup/webpack.js new file mode 100644 index 0000000..b3ad9e0 --- /dev/null +++ b/.github/workflows/setup/webpack.js @@ -0,0 +1,25 @@ +import { spawn } from "node:child_process"; +import { setTimeout } from "timers/promises"; +var webpackServeSocket = {}; + +export async function build() { + let socket = spawn("webpack", { + shell: true, + }); + console.info("Webpack is building..."); + await setTimeout(2000); + socket.kill(); +} + +export async function serve() { + let socket = spawn("npx webpack serve", { + shell: true, + }); + webpackServeSocket = socket; + console.info("Webpack is starting..."); + await setTimeout(1000); +} + +export function stopServing() { + webpackServeSocket.kill(); +} diff --git a/.github/workflows/test.js b/.github/workflows/test.js new file mode 100644 index 0000000..e407fee --- /dev/null +++ b/.github/workflows/test.js @@ -0,0 +1,107 @@ +import { setTimeout } from "timers/promises"; +import { test } from "uvu"; +import * as assert from "uvu/assert"; +import * as backend from "./setup/backend.js"; +import * as Puppeteer from "./setup/puppeteer.js"; +import * as webpack from "./setup/webpack.js"; + +test.before(async (context) => { + await webpack.build(); + await webpack.serve(); + await backend.start(); + await Puppeteer.setup(context); +}); + +test.after(async (context) => { + await Puppeteer.reset(context); + backend.stop(); + webpack.stopServing(); +}); + +test("Solved Issue #1: Company Names are Present", async (context) => { + await Puppeteer.homepage(context); + await setTimeout(250); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(1)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "Fusion LLC"); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(1)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "Techopolis Ltd."); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(1)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "Code learning LLC"); +}); + +test("Solved Issue #2: display dates in 24-hour time format", async (context) => { + await Puppeteer.homepage(context); + await setTimeout(250); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(3)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "23:41"); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(3)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "03:45"); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(3)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "08:45"); +}); + +test("Solved Issue #3: display revenue numbers in a human readable format", async (context) => { + await Puppeteer.homepage(context); + await setTimeout(250); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(4)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "17 000 000"); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(4)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "7 375 294"); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(4)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "100 000"); +}); + +test("Solved Issue #4: make table look prettier", async (context) => { + await Puppeteer.homepage(context); + await setTimeout(250); + + var headerColor = await context.page.evaluate(() => { + let header = document.querySelector("body > table > tbody > tr:nth-child(1)"); + return window.getComputedStyle(header).getPropertyValue("background-color"); + }); + assert.is(headerColor, "rgb(173, 216, 230)"); + + var tableBorderColor = await context.page.evaluate(() => { + let table = document.querySelector("body > table"); + return window.getComputedStyle(table).getPropertyValue("border-color"); + }); + assert.is(tableBorderColor, "rgb(173, 216, 230)"); +}); + +test.run(); diff --git a/.gitignore b/.gitignore index 761ac79..df8ddfc 100644 --- a/.gitignore +++ b/.gitignore @@ -59,7 +59,7 @@ yarn-error.log* # Dependency directories -node_modules/ +**node_modules** jspm_packages/ # Optional npm cache directory From 0f2123c9e5c7b0d383a5dedd50956b5eb1c968c0 Mon Sep 17 00:00:00 2001 From: sbmsr Date: Fri, 24 Feb 2023 21:47:12 -0500 Subject: [PATCH 2/5] solution --- src/constants.js | 4 ++-- src/ui.js | 29 +++++++++++++++++++++-------- styles.css | 33 +++++++++++++++++++-------------- 3 files changed, 42 insertions(+), 24 deletions(-) diff --git a/src/constants.js b/src/constants.js index 853ebb5..e3ff345 100644 --- a/src/constants.js +++ b/src/constants.js @@ -7,8 +7,8 @@ export const COMPANIES_API_PATH = "/companies"; export const COMPANIES_TABLE_HEADERS = ["Company Name", "Status", "Created At", "Revenue YTD", "Account Executive"]; -export const COMPANY_NAME_FIELD_NAME = "company_name"; +export const COMPANY_NAME_FIELD_NAME = "name"; export const STATUS_FIELD_NAME = "status"; export const CREATED_AT_FIELD_NAME = "created_at"; export const REVENUE_YTD_FIELD_NAME = "revenue_ytd"; -export const ACCOUNT_EXECUTIVE_FIELD_NAME = "account_executive"; \ No newline at end of file +export const ACCOUNT_EXECUTIVE_FIELD_NAME = "account_executive"; diff --git a/src/ui.js b/src/ui.js index 5682dea..0d2bd82 100644 --- a/src/ui.js +++ b/src/ui.js @@ -1,13 +1,26 @@ -import {fetchCompanies} from "./api"; +import { fetchCompanies } from "./api"; import { ACCOUNT_EXECUTIVE_FIELD_NAME, COMPANIES_TABLE_HEADERS, COMPANY_NAME_FIELD_NAME, CREATED_AT_FIELD_NAME, REVENUE_YTD_FIELD_NAME, - STATUS_FIELD_NAME + STATUS_FIELD_NAME, } from "./constants"; +const formatDate = (d) => { + const date = new Date(d); + const hours = date.getHours(); + const minutes = date.getMinutes(); + const timeString = `${hours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}`; + return timeString; +}; + +const formatCurrency = (amount) => { + const formattedNumber = amount.toLocaleString("en-US").replace(/,/g, " "); + return formattedNumber; +}; + export const makeTable = async () => { const companies = await fetchCompanies(); // Print result of api call to the developer console @@ -20,13 +33,13 @@ export const makeTable = async () => { companiesToDisplay.push(COMPANIES_TABLE_HEADERS); // Here we simply rearrange company fields in the order in which we want to display them in UI - companies.map(company => { + companies.map((company) => { const row = []; row.push( company[COMPANY_NAME_FIELD_NAME], company[STATUS_FIELD_NAME], - company[CREATED_AT_FIELD_NAME], - company[REVENUE_YTD_FIELD_NAME], + formatDate(company[CREATED_AT_FIELD_NAME]), + formatCurrency(company[REVENUE_YTD_FIELD_NAME]), company[ACCOUNT_EXECUTIVE_FIELD_NAME] ); companiesToDisplay.push(row); @@ -36,12 +49,12 @@ export const makeTable = async () => { const table = document.createElement("table"); document.body.appendChild(table); // Drew the main table node on the document - companiesToDisplay.forEach(row => { + companiesToDisplay.forEach((row) => { const tr = table.insertRow(); //Create a new row - row.forEach(column => { + row.forEach((column) => { const td = tr.insertCell(); td.innerText = column; // Take string from placeholder variable and append it to node }); }); -}; \ No newline at end of file +}; diff --git a/styles.css b/styles.css index abc9c53..0a11eae 100644 --- a/styles.css +++ b/styles.css @@ -1,5 +1,5 @@ table { - /* + /* A table-layout value of fixed is generally a good idea to set on your table, as it makes the table behave a bit more predictably by default. Normally, table columns tend to be sized according to how much content they contain, which produces some strange results. With table-layout: fixed, you can size your columns according to the width of their headings, and then deal with their content as appropriate. @@ -9,37 +9,42 @@ table { We've coupled this with a width of 100%, meaning that the table will fill any container it is put in, and be nicely responsive (although it would still need some more work to get it looking good on narrow screen widths). */ - table-layout: fixed; - width: 100%; - /* + table-layout: fixed; + width: 100%; + /* A border-collapse value of collapse is standard best practice for any table styling effort. By default, when you set borders on table elements, they will look pretty ugly. */ - border-collapse: collapse; - border: 3px solid purple; + border-collapse: collapse; + border: 3px solid lightblue; +} + +tbody tr:first-child { + background-color: lightblue; } thead th:nth-child(1) { - width: 30%; + width: 30%; } thead th:nth-child(2) { - width: 20%; + width: 20%; } thead th:nth-child(3) { - width: 15%; + width: 15%; } thead th:nth-child(4) { - width: 35%; + width: 35%; } -th, td { - padding: 20px; +th, +td { + padding: 20px; } /* nth-child is a pretty neat thing to use and is widely applicable in real-life projects. Reader is highly encouraged to do more reading on this. */ tr:nth-child(1) { - font-weight: bold; -} \ No newline at end of file + font-weight: bold; +} From 6c925a5811e4685254269607fc91d0d90939c413 Mon Sep 17 00:00:00 2001 From: sbmsr Date: Fri, 24 Feb 2023 22:56:16 -0500 Subject: [PATCH 3/5] tests fix --- .github/workflows/main.yml | 44 +- .github/workflows/package-lock-backup.json | 1270 +++++++++++++ .github/workflows/package-lock.json | 1857 ++++++++++++-------- .github/workflows/package.json | 1 - .github/workflows/setup/backend.js | 3 +- .github/workflows/setup/puppeteer.js | 46 +- .github/workflows/setup/webpack.js | 9 +- .github/workflows/test.js | 29 +- javascript-crm-main.zip | Bin 0 -> 132703 bytes package-lock.json | 1622 ----------------- webpack.config.js | 24 +- 11 files changed, 2487 insertions(+), 2418 deletions(-) create mode 100644 .github/workflows/package-lock-backup.json create mode 100644 javascript-crm-main.zip diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 21e246b..ab0967e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,24 +11,54 @@ on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: +defaults: + run: + shell: bash + # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" test: # The type of runner that the job will run on runs-on: ubuntu-latest - + container: + image: ghcr.io/puppeteer/puppeteer:19.7.2 + # image: lironavon/docker-puppeteer-container:16.10.0 + options: --cap-add=SYS_ADMIN --user 1001 # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v3 + # - uses: actions/setup-node@v3 + # with: + # node-version: 16 + - name: npm install + run: npm i && cd .github/workflows && npm i && cd ../.. - - uses: actions/setup-node@v3 - with: - node-version: 16 + # - name: Run Tests + # timeout-minutes: 1 + # run: node .github/workflows/test.js + - name: build app + run: npx webpack - - name: npm install - run: cd .github/workflows && npm i + - name: start webpack server + run: npx webpack serve & + + - name: start backend + run: npm run start-json-server & - name: Run Tests - run: node .github/workflows/test.js + # run: (timeout 30s (npx .github/workflows/node_modules/uvu .github/workflows >> results.txt)) || [[ $? -eq 124 ]] && echo "Done Testing." + # run: (timeout 60s node .github/workflows/test.js >> results.txt) || echo "Done Testing." + # run: timeout 15s node .github/workflows/test.js > results.txt || echo 'Done Testing. Results below:' && cat results.txt + run: node .github/workflows/test.js # > results.txt || echo 'Done Testing. Results below:' && cat results.txt + + + # - name: Archive code coverage results + # uses: actions/upload-artifact@v3 + # with: + # path: results.txt + # retention-days: 5 + + # - name: Check if Tests Passed + # run: "grep -q 'Passed: 4' results.txt" diff --git a/.github/workflows/package-lock-backup.json b/.github/workflows/package-lock-backup.json new file mode 100644 index 0000000..c4c09cf --- /dev/null +++ b/.github/workflows/package-lock-backup.json @@ -0,0 +1,1270 @@ +{ + "name": "workflows", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "devDependencies": { + "jsdom": "^20.0.2", + "uvu": "^0.5.6" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/jsdom": { + "version": "20.0.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.2.tgz", + "integrity": "sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.0", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.9.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", + "dev": true + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dev": true, + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + } + }, + "dependencies": { + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "requires": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "requires": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decimal.js": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true + }, + "diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "dev": true + }, + "domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dev": true, + "requires": { + "webidl-conversions": "^7.0.0" + } + }, + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "requires": { + "whatwg-encoding": "^2.0.0" + } + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "jsdom": { + "version": "20.0.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.2.tgz", + "integrity": "sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==", + "dev": true, + "requires": { + "abab": "^2.0.6", + "acorn": "^8.8.0", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.1", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^3.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.9.0", + "xml-name-validator": "^4.0.0" + } + }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", + "dev": true + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dev": true, + "requires": { + "entities": "^4.4.0" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "requires": { + "mri": "^1.1.0" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + } + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dev": true, + "requires": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + } + }, + "w3c-xmlserializer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", + "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", + "dev": true, + "requires": { + "xml-name-validator": "^4.0.0" + } + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true + }, + "whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "requires": { + "iconv-lite": "0.6.3" + } + }, + "whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true + }, + "whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "requires": {} + }, + "xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + } + } +} diff --git a/.github/workflows/package-lock.json b/.github/workflows/package-lock.json index c4c09cf..0358cfb 100644 --- a/.github/workflows/package-lock.json +++ b/.github/workflows/package-lock.json @@ -5,54 +5,60 @@ "packages": { "": { "devDependencies": { - "jsdom": "^20.0.2", + "puppeteer": "^19.7.2", "uvu": "^0.5.6" } }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, "engines": { - "node": ">= 10" + "node": ">=6.9.0" } }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" + "node": ">=6.9.0" } }, - "node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "node_modules/@types/node": { + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.2.tgz", + "integrity": "sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==", "dev": true, - "engines": { - "node": ">=0.4.0" + "optional": true + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" } }, "node_modules/agent-base": { @@ -67,60 +73,188 @@ "node": ">= 6.0.0" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "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/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "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" + } + ], "dependencies": { - "delayed-stream": "~1.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">= 0.8" + "node": ">=4" } }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "node_modules/chromium-bidi": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.4.tgz", + "integrity": "sha512-4BX5cSaponuvVT1+SbLYTOAgDoVtX/Khoc9UsbFJ/AsPVUeFAM3RiIDFI6XFhLYMi9WmVJqh1ZH+dRpNKkKwiQ==", "dev": true, "dependencies": { - "cssom": "~0.3.6" + "mitt": "3.0.0" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", "dev": true, "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" } }, "node_modules/debug": { @@ -140,27 +274,6 @@ } } }, - "node_modules/decimal.js": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", - "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", - "dev": true - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -170,6 +283,12 @@ "node": ">=6" } }, + "node_modules/devtools-protocol": { + "version": "0.0.1094867", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1094867.tgz", + "integrity": "sha512-pmMDBKiRVjh0uKK6CT1WqZmM3hBVSgD+N2MrgyV1uNizAZMw4tx6i/RTc+/uCsKSCmg0xXx7arCP/OFcIwTsiQ==", + "dev": true + }, "node_modules/diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", @@ -179,127 +298,116 @@ "node": ">=0.3.1" } }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" + "once": "^1.4.0" } }, - "node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">=0.8.0" } }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" }, "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "extract-zip": "cli.js" }, "engines": { - "node": ">=6.0" + "node": ">= 10.17.0" }, "optionalDependencies": { - "source-map": "~0.6.1" + "@types/yauzl": "^2.9.1" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" + "dependencies": { + "pend": "~1.2.0" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "pump": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { - "whatwg-encoding": "^2.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=12" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, "engines": { - "node": ">= 6" + "node": ">=4" } }, "node_modules/https-proxy-agent": { @@ -315,69 +423,88 @@ "node": ">= 6" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "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/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/jsdom": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.2.tgz", - "integrity": "sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.0", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.1", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^3.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.9.0", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" + "argparse": "^2.0.1" }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } + "bin": { + "js-yaml": "bin/js-yaml.js" } }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, "node_modules/kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", @@ -387,39 +514,35 @@ "node": ">=6" } }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 0.8.0" + "node": "*" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } + "node_modules/mitt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", + "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", + "dev": true }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true }, "node_modules/mri": { "version": "1.2.0", @@ -436,181 +559,308 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/nwsapi": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", - "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", - "dev": true + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "callsites": "^3.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6" } }, - "node_modules/parse5": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", - "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "dependencies": { - "entities": "^4.4.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=0.4.0" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "node_modules/puppeteer": { + "version": "19.7.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.7.2.tgz", + "integrity": "sha512-4Lm7Qpe/LU95Svirei/jDLDvR5oMrl9BPGd7HMY5+Q28n+BhvKuW97gKkR+1LlI86bO8J3g8rG/Ll5kv9J1nlQ==", "dev": true, + "hasInstallScript": true, "dependencies": { - "mri": "^1.1.0" + "cosmiconfig": "8.0.0", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "puppeteer-core": "19.7.2" }, "engines": { - "node": ">=6" + "node": ">=14.1.0" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "node_modules/puppeteer-core": { + "version": "19.7.2", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.7.2.tgz", + "integrity": "sha512-PvI+fXqgP0uGJxkyZcX51bnzjFA73MODZOAv0fSD35yR7tvbqwtMV3/Y+hxQ0AMMwzxkEebP6c7po/muqxJvmQ==", + "dev": true, + "dependencies": { + "chromium-bidi": "0.4.4", + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.1094867", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.11.0" + }, + "engines": { + "node": ">=14.1.0" + }, + "peerDependencies": { + "typescript": ">= 4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "node_modules/readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", "dev": true, "dependencies": { - "xmlchars": "^2.2.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=v12.22.7" + "node": ">= 6" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "optional": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "dev": true, "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" + "mri": "^1.1.0" }, "engines": { "node": ">=6" } }, - "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/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": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" + "safe-buffer": "~5.2.0" } }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2" + "has-flag": "^3.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=4" } }, - "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, "engines": { - "node": ">= 4.0.0" + "node": ">=6" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "buffer": "^5.2.1", + "through": "^2.3.8" } }, + "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/uvu": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", @@ -629,69 +879,27 @@ "node": ">=8" } }, - "node_modules/w3c-xmlserializer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", - "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", - "dev": true, - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "engines": { - "node": ">=12" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true }, "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "node_modules/ws": { "version": "8.11.0", @@ -714,56 +922,60 @@ } } }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true } }, "dependencies": { - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true - }, - "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } }, - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, - "acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "requires": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true + "@types/node": { + "version": "18.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.2.tgz", + "integrity": "sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==", + "dev": true, + "optional": true + }, + "@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } }, "agent-base": { "version": "6.0.2", @@ -774,81 +986,152 @@ "debug": "4" } }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "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 + }, + "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 }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chromium-bidi": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.4.tgz", + "integrity": "sha512-4BX5cSaponuvVT1+SbLYTOAgDoVtX/Khoc9UsbFJ/AsPVUeFAM3RiIDFI6XFhLYMi9WmVJqh1ZH+dRpNKkKwiQ==", "dev": true, "requires": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" + "mitt": "3.0.0" } }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "ms": "2.1.2" + "color-name": "1.1.3" } }, - "decimal.js": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", - "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true + "cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "dev": true, + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + } + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "requires": { + "node-fetch": "2.6.7" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } }, "dequal": { "version": "2.0.3", @@ -856,94 +1139,103 @@ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true }, + "devtools-protocol": { + "version": "0.0.1094867", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1094867.tgz", + "integrity": "sha512-pmMDBKiRVjh0uKK6CT1WqZmM3hBVSgD+N2MrgyV1uNizAZMw4tx6i/RTc+/uCsKSCmg0xXx7arCP/OFcIwTsiQ==", + "dev": true + }, "diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true }, - "domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { - "webidl-conversions": "^7.0.0" + "once": "^1.4.0" } }, - "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "is-arrayish": "^0.2.1" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + } }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "pump": "^3.0.0" } }, - "html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { - "whatwg-encoding": "^2.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true }, "https-proxy-agent": { "version": "5.0.1", @@ -955,85 +1247,97 @@ "debug": "4" } }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "jsdom": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.2.tgz", - "integrity": "sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==", + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "abab": "^2.0.6", - "acorn": "^8.8.0", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.1", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^3.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.9.0", - "xml-name-validator": "^4.0.0" + "argparse": "^2.0.1" } }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, "kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "dev": true }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "brace-expansion": "^1.1.7" } }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "mitt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", + "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", "dev": true }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true }, "mri": { "version": "1.2.0", @@ -1047,65 +1351,143 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "nwsapi": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", - "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", - "dev": true + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "wrappy": "1" } }, - "parse5": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", - "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { - "entities": "^4.4.0" + "callsites": "^3.0.0" } }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "puppeteer": { + "version": "19.7.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.7.2.tgz", + "integrity": "sha512-4Lm7Qpe/LU95Svirei/jDLDvR5oMrl9BPGd7HMY5+Q28n+BhvKuW97gKkR+1LlI86bO8J3g8rG/Ll5kv9J1nlQ==", + "dev": true, + "requires": { + "cosmiconfig": "8.0.0", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "puppeteer-core": "19.7.2" + } + }, + "puppeteer-core": { + "version": "19.7.2", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.7.2.tgz", + "integrity": "sha512-PvI+fXqgP0uGJxkyZcX51bnzjFA73MODZOAv0fSD35yR7tvbqwtMV3/Y+hxQ0AMMwzxkEebP6c7po/muqxJvmQ==", + "dev": true, + "requires": { + "chromium-bidi": "0.4.4", + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.1094867", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.11.0" + } + }, + "readable-stream": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", + "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "sade": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", @@ -1115,80 +1497,83 @@ "mri": "^1.1.0" } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, - "saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "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, "requires": { - "xmlchars": "^2.2.0" + "safe-buffer": "~5.2.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" + "has-flag": "^3.0.0" } }, - "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, "requires": { - "punycode": "^2.1.1" + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" } }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" } }, - "universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", "dev": true, "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "buffer": "^5.2.1", + "through": "^2.3.8" } }, + "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 + }, "uvu": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", @@ -1201,50 +1586,26 @@ "sade": "^1.7.3" } }, - "w3c-xmlserializer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", - "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", - "dev": true, - "requires": { - "xml-name-validator": "^4.0.0" - } - }, "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - }, - "whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "requires": { - "iconv-lite": "0.6.3" - } - }, - "whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "ws": { @@ -1254,17 +1615,15 @@ "dev": true, "requires": {} }, - "xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } } } } diff --git a/.github/workflows/package.json b/.github/workflows/package.json index bf5e6eb..ab587d0 100644 --- a/.github/workflows/package.json +++ b/.github/workflows/package.json @@ -1,7 +1,6 @@ { "type": "module", "devDependencies": { - "jsdom": "^20.0.2", "uvu": "^0.5.6", "puppeteer": "^19.7.2" } diff --git a/.github/workflows/setup/backend.js b/.github/workflows/setup/backend.js index 42b9a0f..d8f4e7d 100644 --- a/.github/workflows/setup/backend.js +++ b/.github/workflows/setup/backend.js @@ -7,10 +7,11 @@ export async function start() { shell: true, }); backendSocket = socket; - console.info("Backend is starting..."); + console.info("4 Backend is starting..."); await setTimeout(1000); } export function stop() { + console.info("9 Backend is stopping..."); backendSocket.kill(); } diff --git a/.github/workflows/setup/puppeteer.js b/.github/workflows/setup/puppeteer.js index 3d071f1..76c30cf 100644 --- a/.github/workflows/setup/puppeteer.js +++ b/.github/workflows/setup/puppeteer.js @@ -1,19 +1,55 @@ -import Chrome from "puppeteer"; +import puppeteer from "puppeteer"; +import { setTimeout } from "timers/promises"; // Launch the browser // Add `browser` and `page` to context export async function setup(context) { - console.info("setting up puppeteer"); - context.browser = await Chrome.launch(); - context.page = await context.browser.newPage(); + // console.info("5 setting up puppeteer with context", context); + try { + context.browser = await puppeteer.launch({ + env: { + TZ: "Etc/UTC", + }, + }); + context.page = await context.browser.newPage(); + context.page.setDefaultNavigationTimeout(5000); + await setTimeout(1000); + } catch (e) { + console.error("puppeteer setup failed", e); + } + // console.info("6 puppeteer is setup with context", context); } // Close everything on suite completion -export async function reset(context) { +export async function close(context) { + // console.info("8 Closing puppeteer with context", context); await context.page.close(); await context.browser.close(); + await setTimeout(1000); } +const MAX_RETRIES = 3; +let numRetry = 0; + +// const retry = (fn, ms) => +// new Promise((resolve) => { +// fn() +// .then(resolve) +// .catch((error) => { +// numRetry++; +// if (numRetry < MAX_RETRIES) { +// setTimeout(() => { +// console.log("retrying..."); +// retry(fn, ms).then(resolve); +// }, ms); +// } else { +// console.log("max retries reached"); +// reject(error); +// } +// }); +// }); + // Navigate to homepage export async function homepage(context) { + // await retry(() => context.page.goto("http://localhost:8080"), 1000); await context.page.goto("http://localhost:8080"); } diff --git a/.github/workflows/setup/webpack.js b/.github/workflows/setup/webpack.js index b3ad9e0..0dfb760 100644 --- a/.github/workflows/setup/webpack.js +++ b/.github/workflows/setup/webpack.js @@ -3,11 +3,11 @@ import { setTimeout } from "timers/promises"; var webpackServeSocket = {}; export async function build() { - let socket = spawn("webpack", { + let socket = spawn("npx webpack", { shell: true, }); - console.info("Webpack is building..."); - await setTimeout(2000); + // console.info("2 Webpack is building..."); + await setTimeout(1000); socket.kill(); } @@ -16,10 +16,11 @@ export async function serve() { shell: true, }); webpackServeSocket = socket; - console.info("Webpack is starting..."); + // console.info("3 Webpack is starting..."); await setTimeout(1000); } export function stopServing() { + // console.info("10 Webpack is stopping..."); webpackServeSocket.kill(); } diff --git a/.github/workflows/test.js b/.github/workflows/test.js index e407fee..d9d9d48 100644 --- a/.github/workflows/test.js +++ b/.github/workflows/test.js @@ -1,21 +1,14 @@ import { setTimeout } from "timers/promises"; import { test } from "uvu"; import * as assert from "uvu/assert"; -import * as backend from "./setup/backend.js"; import * as Puppeteer from "./setup/puppeteer.js"; -import * as webpack from "./setup/webpack.js"; test.before(async (context) => { - await webpack.build(); - await webpack.serve(); - await backend.start(); await Puppeteer.setup(context); }); test.after(async (context) => { - await Puppeteer.reset(context); - backend.stop(); - webpack.stopServing(); + await Puppeteer.close(context); }); test("Solved Issue #1: Company Names are Present", async (context) => { @@ -49,19 +42,19 @@ test("Solved Issue #2: display dates in 24-hour time format", async (context) => return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(3)").textContent; }); assert.type(text, "string"); - assert.is(text, "23:41"); + assert.is(text, "03:41"); var text = await context.page.evaluate(() => { return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(3)").textContent; }); assert.type(text, "string"); - assert.is(text, "03:45"); + assert.is(text, "08:45"); var text = await context.page.evaluate(() => { return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(3)").textContent; }); assert.type(text, "string"); - assert.is(text, "08:45"); + assert.is(text, "12:45"); }); test("Solved Issue #3: display revenue numbers in a human readable format", async (context) => { @@ -92,16 +85,16 @@ test("Solved Issue #4: make table look prettier", async (context) => { await setTimeout(250); var headerColor = await context.page.evaluate(() => { - let header = document.querySelector("body > table > tbody > tr:nth-child(1)"); - return window.getComputedStyle(header).getPropertyValue("background-color"); + return getComputedStyle(document.getElementsByTagName("tr")[0])["background-color"]; }); + assert.is(headerColor, "rgb(173, 216, 230)"); - var tableBorderColor = await context.page.evaluate(() => { - let table = document.querySelector("body > table"); - return window.getComputedStyle(table).getPropertyValue("border-color"); - }); - assert.is(tableBorderColor, "rgb(173, 216, 230)"); + // var tableBorderColor = await context.page.evaluate(() => { + // let table = document.querySelector("body > table"); + // return window.getComputedStyle(table).getPropertyValue("border-color"); + // }); + // assert.is(tableBorderColor, "rgb(173, 216, 230)"); }); test.run(); diff --git a/javascript-crm-main.zip b/javascript-crm-main.zip new file mode 100644 index 0000000000000000000000000000000000000000..4b259032ff19f9d62b98ec01716591b2c2ed2ed5 GIT binary patch literal 132703 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 literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 49a3da5..2667ec2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,100 +10,11 @@ "dependencies": { "axios": "^0.27.2", "json-server": "^0.17.0", - "open-cli": "^7.0.1", "webpack": "^5.72.0", "webpack-cli": "^4.9.2", "webpack-dev-server": "^4.8.1" } }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -117,38 +28,6 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -168,11 +47,6 @@ "node": ">=6" } }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -269,21 +143,11 @@ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, - "node_modules/@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==" - }, "node_modules/@types/node": { "version": "17.0.29", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.29.tgz", "integrity": "sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA==" }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" - }, "node_modules/@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", @@ -537,26 +401,6 @@ "acorn": "^8" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/aggregate-error/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -674,22 +518,6 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", @@ -924,34 +752,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", - "dependencies": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001332", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", @@ -1021,14 +821,6 @@ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, "node_modules/cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", @@ -1278,45 +1070,6 @@ "ms": "2.0.0" } }, - "node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -1360,27 +1113,6 @@ "node": ">=8" } }, - "node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1411,17 +1143,6 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -1508,14 +1229,6 @@ "node": ">=4" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/errorhandler": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", @@ -1554,14 +1267,6 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -1737,21 +1442,6 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -1762,14 +1452,6 @@ "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", @@ -1781,22 +1463,6 @@ "node": ">=0.8.0" } }, - "node_modules/file-type": { - "version": "16.5.3", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", - "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", - "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" - } - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -1825,21 +1491,6 @@ "node": ">= 0.8" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/follow-redirects": { "version": "1.14.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", @@ -1937,17 +1588,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -2008,25 +1648,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -2058,14 +1679,6 @@ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "engines": { - "node": ">=6" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -2104,17 +1717,6 @@ "node": ">=8" } }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", @@ -2254,33 +1856,6 @@ "node": ">=0.10.0" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, "node_modules/import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -2315,17 +1890,6 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2364,11 +1928,6 @@ "node": ">= 0.10" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -2485,14 +2044,6 @@ "node": ">=8" } }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -2501,14 +2052,6 @@ "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -2607,11 +2150,6 @@ "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=" }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", @@ -2622,11 +2160,6 @@ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, "node_modules/json-parse-helpfulerror": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", @@ -2700,11 +2233,6 @@ "node": ">=8" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -2713,20 +2241,6 @@ "node": ">=6.11.5" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -2801,17 +2315,6 @@ "semver": "bin/semver.js" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -2831,50 +2334,6 @@ "node": ">= 4.0.0" } }, - "node_modules/meow": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.2.tgz", - "integrity": "sha512-zbuAlN+V/sXlbGchNS9WTWjUzeamwMt/BApKCJi7B0QyZstZaMx0n4Unll/fg0njGtMdC9UP5SAscvOCLYdM+Q==", - "dependencies": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -2885,14 +2344,6 @@ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, "node_modules/method-override": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/method-override/-/method-override-3.0.0.tgz", @@ -2981,14 +2432,6 @@ "node": ">=4" } }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "engines": { - "node": ">=4" - } - }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -3010,19 +2453,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -3114,20 +2544,6 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==" }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -3233,27 +2649,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/open-cli": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/open-cli/-/open-cli-7.0.1.tgz", - "integrity": "sha512-w//Mb5nLGTu9aIAsAehgxV+CGEkd+P3CbdoTW8y2coQ/fmGXBSrea0i4RBqGnd9prSPX1akrBYc0e3NnWM4SPA==", - "dependencies": { - "file-type": "^16.5.0", - "get-stdin": "^9.0.0", - "meow": "^10.0.1", - "open": "^8.2.0", - "tempy": "^1.0.1" - }, - "bin": { - "open-cli": "cli.js" - }, - "engines": { - "node": ">=14.13" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", @@ -3262,48 +2657,6 @@ "node": ">=6" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", @@ -3346,23 +2699,6 @@ "semver": "bin/semver.js" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -3405,26 +2741,6 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/peek-readable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -3617,36 +2933,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "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/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -3696,61 +2982,6 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, - "node_modules/read-pkg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", - "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", - "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", - "dependencies": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -3764,21 +2995,6 @@ "node": ">= 6" } }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -3801,21 +3017,6 @@ "node": ">= 0.10" } }, - "node_modules/redent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", - "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", - "dependencies": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -3910,15 +3111,6 @@ "node": ">= 4" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -3933,28 +3125,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -4201,14 +3371,6 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -4236,34 +3398,6 @@ "source-map": "^0.6.0" } }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -4409,20 +3543,6 @@ "node": ">=6" } }, - "node_modules/strip-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", - "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", - "dependencies": { - "min-indent": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -4431,22 +3551,6 @@ "node": ">=0.10.0" } }, - "node_modules/strtok3": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", - "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4477,43 +3581,6 @@ "node": ">=6" } }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", - "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", - "dependencies": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/terser": { "version": "5.13.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.13.0.tgz", @@ -4607,22 +3674,6 @@ "node": ">=0.6" } }, - "node_modules/token-types": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.0.tgz", - "integrity": "sha512-P0rrp4wUpefLncNamWIef62J0v0kQR/GfDVji9WKY7GDCWy5YbVSrKUTam07iWPZQGy0zWNOfstYTykMmPNR7w==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, "node_modules/tr46": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", @@ -4631,17 +3682,6 @@ "punycode": "^2.1.0" } }, - "node_modules/trim-newlines": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", - "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -4759,15 +3799,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -5253,89 +4284,9 @@ "engines": { "node": ">=12" } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } }, "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, "@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -5346,29 +4297,6 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==" }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -5382,11 +4310,6 @@ "defer-to-connect": "^1.0.1" } }, - "@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, "@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -5483,21 +4406,11 @@ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==" - }, "@types/node": { "version": "17.0.29", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.29.tgz", "integrity": "sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA==" }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==" - }, "@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", @@ -5727,22 +4640,6 @@ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", "requires": {} }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "dependencies": { - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - } - } - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -5826,16 +4723,6 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, "async": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", @@ -6015,24 +4902,6 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, - "camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", - "requires": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" - } - } - }, "caniuse-lite": { "version": "1.0.30001332", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", @@ -6072,11 +4941,6 @@ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, "cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", @@ -6265,32 +5129,6 @@ "ms": "2.0.0" } }, - "decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==" - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - } - } - }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -6322,21 +5160,6 @@ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -6357,14 +5180,6 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - } - }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -6433,14 +5248,6 @@ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==" }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, "errorhandler": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", @@ -6470,11 +5277,6 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -6611,18 +5413,6 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -6633,14 +5423,6 @@ "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "requires": { - "reusify": "^1.0.4" - } - }, "faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", @@ -6649,16 +5431,6 @@ "websocket-driver": ">=0.5.1" } }, - "file-type": { - "version": "16.5.3", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", - "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", - "requires": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - } - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -6681,15 +5453,6 @@ "unpipe": "~1.0.0" } }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, "follow-redirects": { "version": "1.14.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", @@ -6751,11 +5514,6 @@ "has-symbols": "^1.0.1" } }, - "get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==" - }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -6798,19 +5556,6 @@ "ini": "2.0.0" } }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -6839,11 +5584,6 @@ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==" - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -6867,14 +5607,6 @@ "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" }, - "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "requires": { - "lru-cache": "^6.0.0" - } - }, "hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", @@ -6989,16 +5721,6 @@ "safer-buffer": ">= 2.1.2 < 3" } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -7018,11 +5740,6 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==" - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -7052,11 +5769,6 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -7128,21 +5840,11 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" - }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -7219,11 +5921,6 @@ "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=" }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", @@ -7234,11 +5931,6 @@ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, "json-parse-helpfulerror": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", @@ -7300,24 +5992,11 @@ "package-json": "^6.3.0" } }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, "loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -7373,11 +6052,6 @@ } } }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -7391,37 +6065,6 @@ "fs-monkey": "1.0.3" } }, - "meow": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.2.tgz", - "integrity": "sha512-zbuAlN+V/sXlbGchNS9WTWjUzeamwMt/BApKCJi7B0QyZstZaMx0n4Unll/fg0njGtMdC9UP5SAscvOCLYdM+Q==", - "requires": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - } - } - }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -7432,11 +6075,6 @@ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, "method-override": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/method-override/-/method-override-3.0.0.tgz", @@ -7500,11 +6138,6 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" - }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -7523,16 +6156,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, "mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -7602,17 +6225,6 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==" }, - "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -7685,47 +6297,11 @@ "is-wsl": "^2.2.0" } }, - "open-cli": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/open-cli/-/open-cli-7.0.1.tgz", - "integrity": "sha512-w//Mb5nLGTu9aIAsAehgxV+CGEkd+P3CbdoTW8y2coQ/fmGXBSrea0i4RBqGnd9prSPX1akrBYc0e3NnWM4SPA==", - "requires": { - "file-type": "^16.5.0", - "get-stdin": "^9.0.0", - "meow": "^10.0.1", - "open": "^8.2.0", - "tempy": "^1.0.1" - } - }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, "p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", @@ -7758,17 +6334,6 @@ } } }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -7799,16 +6364,6 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "peek-readable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" - }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -7954,16 +6509,6 @@ "side-channel": "^1.0.4" } }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -8006,41 +6551,6 @@ } } }, - "read-pkg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", - "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" - } - } - }, - "read-pkg-up": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", - "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", - "requires": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" - } - } - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -8051,14 +6561,6 @@ "util-deprecate": "^1.0.1" } }, - "readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "requires": { - "readable-stream": "^3.6.0" - } - }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -8075,15 +6577,6 @@ "resolve": "^1.9.0" } }, - "redent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", - "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", - "requires": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - } - }, "registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -8151,11 +6644,6 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -8164,14 +6652,6 @@ "glob": "^7.1.3" } }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -8372,11 +6852,6 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, "sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -8401,34 +6876,6 @@ "source-map": "^0.6.0" } }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" - }, "spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -8535,28 +6982,11 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" }, - "strip-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", - "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", - "requires": { - "min-indent": "^1.0.1" - } - }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, - "strtok3": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", - "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "requires": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.1.0" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -8575,30 +7005,6 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==" - }, - "tempy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", - "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", - "requires": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "dependencies": { - "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" - } - } - }, "terser": { "version": "5.13.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.13.0.tgz", @@ -8655,15 +7061,6 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, - "token-types": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.0.tgz", - "integrity": "sha512-P0rrp4wUpefLncNamWIef62J0v0kQR/GfDVji9WKY7GDCWy5YbVSrKUTam07iWPZQGy0zWNOfstYTykMmPNR7w==", - "requires": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - } - }, "tr46": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", @@ -8672,11 +7069,6 @@ "punycode": "^2.1.0" } }, - "trim-newlines": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", - "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==" - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -8764,15 +7156,6 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -9109,11 +7492,6 @@ "version": "21.0.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } } } diff --git a/webpack.config.js b/webpack.config.js index e6902aa..623bab1 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,20 +1,22 @@ -const path = require('path'); +const path = require("path"); module.exports = { - entry: './src/index.js', - mode: 'development', + entry: "./src/index.js", + mode: "development", output: { - path: path.resolve(__dirname, 'dist'), - publicPath: '/dist/', - filename: 'bundle.js', - clean: true + path: path.resolve(__dirname, "dist"), + publicPath: "/dist/", + filename: "bundle.js", + clean: true, }, devServer: { + host: "localhost", + allowedHosts: "all", static: { - directory: path.join(__dirname, '.'), - watch: true + directory: path.join(__dirname, "."), + watch: true, }, hot: true, - open: true + open: true, }, -}; \ No newline at end of file +}; From e904c5b8b98eebd55413e97c29668e5d3c80b9eb Mon Sep 17 00:00:00 2001 From: sbmsr Date: Mon, 27 Feb 2023 14:03:41 -0500 Subject: [PATCH 4/5] playwright --- .github/workflows/.gitignore | 4 ++ .github/workflows/main copy.yml | 64 +++++++++++++++++ .github/workflows/main.yml | 18 ++--- .github/workflows/package-lock.json | 102 ++++++++++++++++++++++++++-- .github/workflows/package.json | 9 ++- .github/workflows/test.js | 91 +++++++++++-------------- .github/workflows/test.puppeteer.js | 100 +++++++++++++++++++++++++++ 7 files changed, 322 insertions(+), 66 deletions(-) create mode 100644 .github/workflows/.gitignore create mode 100644 .github/workflows/main copy.yml create mode 100644 .github/workflows/test.puppeteer.js diff --git a/.github/workflows/.gitignore b/.github/workflows/.gitignore new file mode 100644 index 0000000..75e854d --- /dev/null +++ b/.github/workflows/.gitignore @@ -0,0 +1,4 @@ +node_modules/ +/test-results/ +/playwright-report/ +/playwright/.cache/ diff --git a/.github/workflows/main copy.yml b/.github/workflows/main copy.yml new file mode 100644 index 0000000..ab0967e --- /dev/null +++ b/.github/workflows/main copy.yml @@ -0,0 +1,64 @@ +name: JobSimulator.dev Test Checker + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "main" branch + push: + branches: ["main"] + pull_request: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +defaults: + run: + shell: bash + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + test: + # The type of runner that the job will run on + runs-on: ubuntu-latest + container: + image: ghcr.io/puppeteer/puppeteer:19.7.2 + # image: lironavon/docker-puppeteer-container:16.10.0 + options: --cap-add=SYS_ADMIN --user 1001 + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + # - uses: actions/setup-node@v3 + # with: + # node-version: 16 + - name: npm install + run: npm i && cd .github/workflows && npm i && cd ../.. + + # - name: Run Tests + # timeout-minutes: 1 + # run: node .github/workflows/test.js + - name: build app + run: npx webpack + + - name: start webpack server + run: npx webpack serve & + + - name: start backend + run: npm run start-json-server & + + - name: Run Tests + # run: (timeout 30s (npx .github/workflows/node_modules/uvu .github/workflows >> results.txt)) || [[ $? -eq 124 ]] && echo "Done Testing." + # run: (timeout 60s node .github/workflows/test.js >> results.txt) || echo "Done Testing." + # run: timeout 15s node .github/workflows/test.js > results.txt || echo 'Done Testing. Results below:' && cat results.txt + run: node .github/workflows/test.js # > results.txt || echo 'Done Testing. Results below:' && cat results.txt + + + # - name: Archive code coverage results + # uses: actions/upload-artifact@v3 + # with: + # path: results.txt + # retention-days: 5 + + # - name: Check if Tests Passed + # run: "grep -q 'Passed: 4' results.txt" diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ab0967e..0b8711c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -22,18 +22,18 @@ jobs: # The type of runner that the job will run on runs-on: ubuntu-latest container: - image: ghcr.io/puppeteer/puppeteer:19.7.2 + image: mcr.microsoft.com/playwright:v1.31.0-focal # image: lironavon/docker-puppeteer-container:16.10.0 - options: --cap-add=SYS_ADMIN --user 1001 + # options: --cap-add=SYS_ADMIN --user 1001 # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v3 - # - uses: actions/setup-node@v3 - # with: - # node-version: 16 - - name: npm install - run: npm i && cd .github/workflows && npm i && cd ../.. + - uses: actions/setup-node@v3 + with: + node-version: 18 + - name: Install dependencies + run: npm ci && cd .github/workflows && npm ci && cd ../.. # - name: Run Tests # timeout-minutes: 1 @@ -51,8 +51,8 @@ jobs: # run: (timeout 30s (npx .github/workflows/node_modules/uvu .github/workflows >> results.txt)) || [[ $? -eq 124 ]] && echo "Done Testing." # run: (timeout 60s node .github/workflows/test.js >> results.txt) || echo "Done Testing." # run: timeout 15s node .github/workflows/test.js > results.txt || echo 'Done Testing. Results below:' && cat results.txt - run: node .github/workflows/test.js # > results.txt || echo 'Done Testing. Results below:' && cat results.txt - + # run: node .github/workflows/test.js # > results.txt || echo 'Done Testing. Results below:' && cat results.txt + run: node .github/workflows/test.js # - name: Archive code coverage results # uses: actions/upload-artifact@v3 diff --git a/.github/workflows/package-lock.json b/.github/workflows/package-lock.json index 0358cfb..d3d4441 100644 --- a/.github/workflows/package-lock.json +++ b/.github/workflows/package-lock.json @@ -5,6 +5,8 @@ "packages": { "": { "devDependencies": { + "@playwright/test": "^1.31.1", + "playwright": "^1.31.1", "puppeteer": "^19.7.2", "uvu": "^0.5.6" } @@ -44,12 +46,30 @@ "node": ">=6.9.0" } }, + "node_modules/@playwright/test": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.31.1.tgz", + "integrity": "sha512-IsytVZ+0QLDh1Hj83XatGp/GsI1CDJWbyDaBGbainsh0p2zC7F4toUocqowmjS6sQff2NGT3D9WbDj/3K2CJiA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "playwright-core": "1.31.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, "node_modules/@types/node": { "version": "18.14.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.2.tgz", "integrity": "sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==", - "dev": true, - "optional": true + "dev": true }, "node_modules/@types/yauzl": { "version": "2.10.0", @@ -366,6 +386,20 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -642,6 +676,34 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, + "node_modules/playwright": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.31.1.tgz", + "integrity": "sha512-zKJabsIA2rvOwJ12lGTqWv4HVJzlfw2JtUvO4hAr7J8UXQZ1qEPpX20E1vcz/9fotnTkwgqp3CVdIBwptBN3Fg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "playwright-core": "1.31.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/playwright-core": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.31.1.tgz", + "integrity": "sha512-JTyX4kV3/LXsvpHkLzL2I36aCdml4zeE35x+G5aPc4bkLsiRiQshU5lWeVpHFAuC8xAcbI6FDcw/8z3q2xtJSQ==", + "dev": true, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -960,12 +1022,22 @@ "js-tokens": "^4.0.0" } }, + "@playwright/test": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.31.1.tgz", + "integrity": "sha512-IsytVZ+0QLDh1Hj83XatGp/GsI1CDJWbyDaBGbainsh0p2zC7F4toUocqowmjS6sQff2NGT3D9WbDj/3K2CJiA==", + "dev": true, + "requires": { + "@types/node": "*", + "fsevents": "2.3.2", + "playwright-core": "1.31.1" + } + }, "@types/node": { "version": "18.14.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.2.tgz", "integrity": "sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==", - "dev": true, - "optional": true + "dev": true }, "@types/yauzl": { "version": "2.10.0", @@ -1208,6 +1280,13 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -1408,6 +1487,21 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true }, + "playwright": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.31.1.tgz", + "integrity": "sha512-zKJabsIA2rvOwJ12lGTqWv4HVJzlfw2JtUvO4hAr7J8UXQZ1qEPpX20E1vcz/9fotnTkwgqp3CVdIBwptBN3Fg==", + "dev": true, + "requires": { + "playwright-core": "1.31.1" + } + }, + "playwright-core": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.31.1.tgz", + "integrity": "sha512-JTyX4kV3/LXsvpHkLzL2I36aCdml4zeE35x+G5aPc4bkLsiRiQshU5lWeVpHFAuC8xAcbI6FDcw/8z3q2xtJSQ==", + "dev": true + }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", diff --git a/.github/workflows/package.json b/.github/workflows/package.json index ab587d0..4aec768 100644 --- a/.github/workflows/package.json +++ b/.github/workflows/package.json @@ -1,7 +1,10 @@ { "type": "module", "devDependencies": { - "uvu": "^0.5.6", - "puppeteer": "^19.7.2" - } + "@playwright/test": "^1.31.1", + "playwright": "^1.31.1", + "puppeteer": "^19.7.2", + "uvu": "^0.5.6" + }, + "scripts": {} } diff --git a/.github/workflows/test.js b/.github/workflows/test.js index d9d9d48..fea6d4f 100644 --- a/.github/workflows/test.js +++ b/.github/workflows/test.js @@ -1,100 +1,91 @@ +import { chromium } from "playwright"; import { setTimeout } from "timers/promises"; import { test } from "uvu"; import * as assert from "uvu/assert"; -import * as Puppeteer from "./setup/puppeteer.js"; -test.before(async (context) => { - await Puppeteer.setup(context); +let browser; +let context; +let page; + +test.before(async () => { + browser = await chromium.launch({ + use: { timezoneId: "Etc/UTC" }, + }); + context = await browser.newContext(); }); -test.after(async (context) => { - await Puppeteer.close(context); +test.before.each(async () => { + page = await context.newPage(); }); -test("Solved Issue #1: Company Names are Present", async (context) => { - await Puppeteer.homepage(context); +test.after.each(async () => { + await page.close(); +}); + +test.after(async () => { + await browser.close(); + await context.close(); +}); + +test("Solved Issue #1: Company Names are Present", async () => { + await page.goto("http://localhost:8080"); await setTimeout(250); - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(1)").textContent; - }); + var text = await page.$eval("body > table > tbody > tr:nth-child(2) > td:nth-child(1)", (el) => el.textContent); assert.type(text, "string"); assert.is(text, "Fusion LLC"); - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(1)").textContent; - }); + var text = await page.$eval("body > table > tbody > tr:nth-child(3) > td:nth-child(1)", (el) => el.textContent); assert.type(text, "string"); assert.is(text, "Techopolis Ltd."); - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(1)").textContent; - }); + var text = await page.$eval("body > table > tbody > tr:nth-child(4) > td:nth-child(1)", (el) => el.textContent); assert.type(text, "string"); assert.is(text, "Code learning LLC"); }); -test("Solved Issue #2: display dates in 24-hour time format", async (context) => { - await Puppeteer.homepage(context); +test("Solved Issue #2: display dates in 24-hour time format", async () => { + await page.goto("http://localhost:8080"); await setTimeout(250); - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(3)").textContent; - }); + var text = await page.$eval("body > table > tbody > tr:nth-child(2) > td:nth-child(3)", (el) => el.textContent); assert.type(text, "string"); assert.is(text, "03:41"); - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(3)").textContent; - }); + var text = await page.$eval("body > table > tbody > tr:nth-child(3) > td:nth-child(3)", (el) => el.textContent); assert.type(text, "string"); assert.is(text, "08:45"); - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(3)").textContent; - }); + var text = await page.$eval("body > table > tbody > tr:nth-child(4) > td:nth-child(3)", (el) => el.textContent); assert.type(text, "string"); assert.is(text, "12:45"); }); -test("Solved Issue #3: display revenue numbers in a human readable format", async (context) => { - await Puppeteer.homepage(context); +test("Solved Issue #3: display revenue numbers in a human readable format", async () => { + await page.goto("http://localhost:8080"); await setTimeout(250); - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(4)").textContent; - }); + var text = await page.$eval("body > table > tbody > tr:nth-child(2) > td:nth-child(4)", (el) => el.textContent); assert.type(text, "string"); assert.is(text, "17 000 000"); - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(4)").textContent; - }); + var text = await page.$eval("body > table > tbody > tr:nth-child(3) > td:nth-child(4)", (el) => el.textContent); assert.type(text, "string"); assert.is(text, "7 375 294"); - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(4)").textContent; - }); + var text = await page.$eval("body > table > tbody > tr:nth-child(4) > td:nth-child(4)", (el) => el.textContent); assert.type(text, "string"); assert.is(text, "100 000"); }); -test("Solved Issue #4: make table look prettier", async (context) => { - await Puppeteer.homepage(context); +test("Solved Issue #4: make table look prettier", async () => { + await page.goto("http://localhost:8080"); await setTimeout(250); - var headerColor = await context.page.evaluate(() => { - return getComputedStyle(document.getElementsByTagName("tr")[0])["background-color"]; - }); - + var headerColor = await page.$eval("tr:first-of-type", (el) => + getComputedStyle(el).getPropertyValue("background-color") + ); assert.is(headerColor, "rgb(173, 216, 230)"); - - // var tableBorderColor = await context.page.evaluate(() => { - // let table = document.querySelector("body > table"); - // return window.getComputedStyle(table).getPropertyValue("border-color"); - // }); - // assert.is(tableBorderColor, "rgb(173, 216, 230)"); }); test.run(); diff --git a/.github/workflows/test.puppeteer.js b/.github/workflows/test.puppeteer.js new file mode 100644 index 0000000..d9d9d48 --- /dev/null +++ b/.github/workflows/test.puppeteer.js @@ -0,0 +1,100 @@ +import { setTimeout } from "timers/promises"; +import { test } from "uvu"; +import * as assert from "uvu/assert"; +import * as Puppeteer from "./setup/puppeteer.js"; + +test.before(async (context) => { + await Puppeteer.setup(context); +}); + +test.after(async (context) => { + await Puppeteer.close(context); +}); + +test("Solved Issue #1: Company Names are Present", async (context) => { + await Puppeteer.homepage(context); + await setTimeout(250); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(1)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "Fusion LLC"); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(1)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "Techopolis Ltd."); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(1)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "Code learning LLC"); +}); + +test("Solved Issue #2: display dates in 24-hour time format", async (context) => { + await Puppeteer.homepage(context); + await setTimeout(250); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(3)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "03:41"); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(3)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "08:45"); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(3)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "12:45"); +}); + +test("Solved Issue #3: display revenue numbers in a human readable format", async (context) => { + await Puppeteer.homepage(context); + await setTimeout(250); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(4)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "17 000 000"); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(4)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "7 375 294"); + + var text = await context.page.evaluate(() => { + return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(4)").textContent; + }); + assert.type(text, "string"); + assert.is(text, "100 000"); +}); + +test("Solved Issue #4: make table look prettier", async (context) => { + await Puppeteer.homepage(context); + await setTimeout(250); + + var headerColor = await context.page.evaluate(() => { + return getComputedStyle(document.getElementsByTagName("tr")[0])["background-color"]; + }); + + assert.is(headerColor, "rgb(173, 216, 230)"); + + // var tableBorderColor = await context.page.evaluate(() => { + // let table = document.querySelector("body > table"); + // return window.getComputedStyle(table).getPropertyValue("border-color"); + // }); + // assert.is(tableBorderColor, "rgb(173, 216, 230)"); +}); + +test.run(); From c5c8975f338f2612a9366983704d29d5db5fa974 Mon Sep 17 00:00:00 2001 From: sbmsr Date: Mon, 27 Feb 2023 14:15:21 -0500 Subject: [PATCH 5/5] cleanup --- .github/workflows/main copy.yml | 64 - .github/workflows/main.yml | 25 - .github/workflows/package-lock-backup.json | 1270 --------------- .github/workflows/package-lock.json | 1696 +------------------- .github/workflows/package.json | 2 - .github/workflows/setup/backend.js | 17 - .github/workflows/setup/puppeteer.js | 55 - .github/workflows/setup/webpack.js | 26 - .github/workflows/test.js | 5 + .github/workflows/test.puppeteer.js | 100 -- 10 files changed, 76 insertions(+), 3184 deletions(-) delete mode 100644 .github/workflows/main copy.yml delete mode 100644 .github/workflows/package-lock-backup.json delete mode 100644 .github/workflows/setup/backend.js delete mode 100644 .github/workflows/setup/puppeteer.js delete mode 100644 .github/workflows/setup/webpack.js delete mode 100644 .github/workflows/test.puppeteer.js diff --git a/.github/workflows/main copy.yml b/.github/workflows/main copy.yml deleted file mode 100644 index ab0967e..0000000 --- a/.github/workflows/main copy.yml +++ /dev/null @@ -1,64 +0,0 @@ -name: JobSimulator.dev Test Checker - -# Controls when the workflow will run -on: - # Triggers the workflow on push or pull request events but only for the "main" branch - push: - branches: ["main"] - pull_request: - branches: ["main"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -defaults: - run: - shell: bash - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - # This workflow contains a single job called "build" - test: - # The type of runner that the job will run on - runs-on: ubuntu-latest - container: - image: ghcr.io/puppeteer/puppeteer:19.7.2 - # image: lironavon/docker-puppeteer-container:16.10.0 - options: --cap-add=SYS_ADMIN --user 1001 - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 - # - uses: actions/setup-node@v3 - # with: - # node-version: 16 - - name: npm install - run: npm i && cd .github/workflows && npm i && cd ../.. - - # - name: Run Tests - # timeout-minutes: 1 - # run: node .github/workflows/test.js - - name: build app - run: npx webpack - - - name: start webpack server - run: npx webpack serve & - - - name: start backend - run: npm run start-json-server & - - - name: Run Tests - # run: (timeout 30s (npx .github/workflows/node_modules/uvu .github/workflows >> results.txt)) || [[ $? -eq 124 ]] && echo "Done Testing." - # run: (timeout 60s node .github/workflows/test.js >> results.txt) || echo "Done Testing." - # run: timeout 15s node .github/workflows/test.js > results.txt || echo 'Done Testing. Results below:' && cat results.txt - run: node .github/workflows/test.js # > results.txt || echo 'Done Testing. Results below:' && cat results.txt - - - # - name: Archive code coverage results - # uses: actions/upload-artifact@v3 - # with: - # path: results.txt - # retention-days: 5 - - # - name: Check if Tests Passed - # run: "grep -q 'Passed: 4' results.txt" diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0b8711c..a2e004f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,8 +1,6 @@ name: JobSimulator.dev Test Checker -# Controls when the workflow will run on: - # Triggers the workflow on push or pull request events but only for the "main" branch push: branches: ["main"] pull_request: @@ -15,19 +13,12 @@ defaults: run: shell: bash -# A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - # This workflow contains a single job called "build" test: - # The type of runner that the job will run on runs-on: ubuntu-latest container: image: mcr.microsoft.com/playwright:v1.31.0-focal - # image: lironavon/docker-puppeteer-container:16.10.0 - # options: --cap-add=SYS_ADMIN --user 1001 - # Steps represent a sequence of tasks that will be executed as part of the job steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: @@ -35,9 +26,6 @@ jobs: - name: Install dependencies run: npm ci && cd .github/workflows && npm ci && cd ../.. - # - name: Run Tests - # timeout-minutes: 1 - # run: node .github/workflows/test.js - name: build app run: npx webpack @@ -48,17 +36,4 @@ jobs: run: npm run start-json-server & - name: Run Tests - # run: (timeout 30s (npx .github/workflows/node_modules/uvu .github/workflows >> results.txt)) || [[ $? -eq 124 ]] && echo "Done Testing." - # run: (timeout 60s node .github/workflows/test.js >> results.txt) || echo "Done Testing." - # run: timeout 15s node .github/workflows/test.js > results.txt || echo 'Done Testing. Results below:' && cat results.txt - # run: node .github/workflows/test.js # > results.txt || echo 'Done Testing. Results below:' && cat results.txt run: node .github/workflows/test.js - - # - name: Archive code coverage results - # uses: actions/upload-artifact@v3 - # with: - # path: results.txt - # retention-days: 5 - - # - name: Check if Tests Passed - # run: "grep -q 'Passed: 4' results.txt" diff --git a/.github/workflows/package-lock-backup.json b/.github/workflows/package-lock-backup.json deleted file mode 100644 index c4c09cf..0000000 --- a/.github/workflows/package-lock-backup.json +++ /dev/null @@ -1,1270 +0,0 @@ -{ - "name": "workflows", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "devDependencies": { - "jsdom": "^20.0.2", - "uvu": "^0.5.6" - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", - "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", - "dev": true - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "dev": true, - "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/jsdom": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.2.tgz", - "integrity": "sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==", - "dev": true, - "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.0", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.1", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^3.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.9.0", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nwsapi": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", - "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", - "dev": true - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/parse5": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", - "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "node_modules/tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dev": true, - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", - "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", - "dev": true, - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - } - }, - "dependencies": { - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true - }, - "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true - }, - "acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "requires": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, - "requires": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decimal.js": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", - "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true - }, - "dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true - }, - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true - }, - "domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "dev": true, - "requires": { - "webidl-conversions": "^7.0.0" - } - }, - "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "requires": { - "whatwg-encoding": "^2.0.0" - } - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "jsdom": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.2.tgz", - "integrity": "sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA==", - "dev": true, - "requires": { - "abab": "^2.0.6", - "acorn": "^8.8.0", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.1", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^3.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.9.0", - "xml-name-validator": "^4.0.0" - } - }, - "kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nwsapi": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", - "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", - "dev": true - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "parse5": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", - "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", - "dev": true, - "requires": { - "entities": "^4.4.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "requires": { - "mri": "^1.1.0" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - } - }, - "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true - }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dev": true, - "requires": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - } - }, - "w3c-xmlserializer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", - "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", - "dev": true, - "requires": { - "xml-name-validator": "^4.0.0" - } - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - }, - "whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "requires": { - "iconv-lite": "0.6.3" - } - }, - "whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true - }, - "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "requires": {} - }, - "xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - } - } -} diff --git a/.github/workflows/package-lock.json b/.github/workflows/package-lock.json index d3d4441..762efaa 100644 --- a/.github/workflows/package-lock.json +++ b/.github/workflows/package-lock.json @@ -5,1488 +5,130 @@ "packages": { "": { "devDependencies": { - "@playwright/test": "^1.31.1", "playwright": "^1.31.1", - "puppeteer": "^19.7.2", "uvu": "^0.5.6" } }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@playwright/test": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.31.1.tgz", - "integrity": "sha512-IsytVZ+0QLDh1Hj83XatGp/GsI1CDJWbyDaBGbainsh0p2zC7F4toUocqowmjS6sQff2NGT3D9WbDj/3K2CJiA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "playwright-core": "1.31.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=14" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/@types/node": { - "version": "18.14.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.2.tgz", - "integrity": "sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==", - "dev": true - }, - "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "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/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "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" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/chromium-bidi": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.4.tgz", - "integrity": "sha512-4BX5cSaponuvVT1+SbLYTOAgDoVtX/Khoc9UsbFJ/AsPVUeFAM3RiIDFI6XFhLYMi9WmVJqh1ZH+dRpNKkKwiQ==", - "dev": true, - "dependencies": { - "mitt": "3.0.0" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dev": true, - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/dequal": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/devtools-protocol": { - "version": "0.0.1094867", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1094867.tgz", - "integrity": "sha512-pmMDBKiRVjh0uKK6CT1WqZmM3hBVSgD+N2MrgyV1uNizAZMw4tx6i/RTc+/uCsKSCmg0xXx7arCP/OFcIwTsiQ==", - "dev": true - }, - "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/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/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mitt": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", - "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", - "dev": true - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, - "node_modules/playwright": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.31.1.tgz", - "integrity": "sha512-zKJabsIA2rvOwJ12lGTqWv4HVJzlfw2JtUvO4hAr7J8UXQZ1qEPpX20E1vcz/9fotnTkwgqp3CVdIBwptBN3Fg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "playwright-core": "1.31.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/playwright-core": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.31.1.tgz", - "integrity": "sha512-JTyX4kV3/LXsvpHkLzL2I36aCdml4zeE35x+G5aPc4bkLsiRiQshU5lWeVpHFAuC8xAcbI6FDcw/8z3q2xtJSQ==", - "dev": true, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/puppeteer": { - "version": "19.7.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.7.2.tgz", - "integrity": "sha512-4Lm7Qpe/LU95Svirei/jDLDvR5oMrl9BPGd7HMY5+Q28n+BhvKuW97gKkR+1LlI86bO8J3g8rG/Ll5kv9J1nlQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "cosmiconfig": "8.0.0", - "https-proxy-agent": "5.0.1", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "puppeteer-core": "19.7.2" - }, - "engines": { - "node": ">=14.1.0" - } - }, - "node_modules/puppeteer-core": { - "version": "19.7.2", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.7.2.tgz", - "integrity": "sha512-PvI+fXqgP0uGJxkyZcX51bnzjFA73MODZOAv0fSD35yR7tvbqwtMV3/Y+hxQ0AMMwzxkEebP6c7po/muqxJvmQ==", - "dev": true, - "dependencies": { - "chromium-bidi": "0.4.4", - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.1094867", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.11.0" - }, - "engines": { - "node": ">=14.1.0" - }, - "peerDependencies": { - "typescript": ">= 4.7.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/readable-stream": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", - "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "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/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/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "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/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dev": true, - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@playwright/test": { - "version": "1.31.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.31.1.tgz", - "integrity": "sha512-IsytVZ+0QLDh1Hj83XatGp/GsI1CDJWbyDaBGbainsh0p2zC7F4toUocqowmjS6sQff2NGT3D9WbDj/3K2CJiA==", - "dev": true, - "requires": { - "@types/node": "*", - "fsevents": "2.3.2", - "playwright-core": "1.31.1" - } - }, - "@types/node": { - "version": "18.14.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.2.tgz", - "integrity": "sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==", - "dev": true - }, - "@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "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 - }, - "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 - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": ">=6" } }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "engines": { + "node": ">=0.3.1" } }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "engines": { + "node": ">=6" } }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "chromium-bidi": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.4.tgz", - "integrity": "sha512-4BX5cSaponuvVT1+SbLYTOAgDoVtX/Khoc9UsbFJ/AsPVUeFAM3RiIDFI6XFhLYMi9WmVJqh1ZH+dRpNKkKwiQ==", + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, - "requires": { - "mitt": "3.0.0" + "engines": { + "node": ">=4" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/playwright": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.31.1.tgz", + "integrity": "sha512-zKJabsIA2rvOwJ12lGTqWv4HVJzlfw2JtUvO4hAr7J8UXQZ1qEPpX20E1vcz/9fotnTkwgqp3CVdIBwptBN3Fg==", "dev": true, - "requires": { - "color-name": "1.1.3" + "hasInstallScript": true, + "dependencies": { + "playwright-core": "1.31.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "node_modules/playwright-core": { + "version": "1.31.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.31.1.tgz", + "integrity": "sha512-JTyX4kV3/LXsvpHkLzL2I36aCdml4zeE35x+G5aPc4bkLsiRiQshU5lWeVpHFAuC8xAcbI6FDcw/8z3q2xtJSQ==", "dev": true, - "requires": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" } }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "dev": true, - "requires": { - "node-fetch": "2.6.7" + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" } }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", "dev": true, - "requires": { - "ms": "2.1.2" + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" } - }, + } + }, + "dependencies": { "dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true }, - "devtools-protocol": { - "version": "0.0.1094867", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1094867.tgz", - "integrity": "sha512-pmMDBKiRVjh0uKK6CT1WqZmM3hBVSgD+N2MrgyV1uNizAZMw4tx6i/RTc+/uCsKSCmg0xXx7arCP/OFcIwTsiQ==", - "dev": true - }, "diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, "kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "dev": true }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mitt": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", - "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", - "dev": true - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, "mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, "playwright": { "version": "1.31.1", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.31.1.tgz", @@ -1502,86 +144,6 @@ "integrity": "sha512-JTyX4kV3/LXsvpHkLzL2I36aCdml4zeE35x+G5aPc4bkLsiRiQshU5lWeVpHFAuC8xAcbI6FDcw/8z3q2xtJSQ==", "dev": true }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "puppeteer": { - "version": "19.7.2", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.7.2.tgz", - "integrity": "sha512-4Lm7Qpe/LU95Svirei/jDLDvR5oMrl9BPGd7HMY5+Q28n+BhvKuW97gKkR+1LlI86bO8J3g8rG/Ll5kv9J1nlQ==", - "dev": true, - "requires": { - "cosmiconfig": "8.0.0", - "https-proxy-agent": "5.0.1", - "progress": "2.0.3", - "proxy-from-env": "1.1.0", - "puppeteer-core": "19.7.2" - } - }, - "puppeteer-core": { - "version": "19.7.2", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.7.2.tgz", - "integrity": "sha512-PvI+fXqgP0uGJxkyZcX51bnzjFA73MODZOAv0fSD35yR7tvbqwtMV3/Y+hxQ0AMMwzxkEebP6c7po/muqxJvmQ==", - "dev": true, - "requires": { - "chromium-bidi": "0.4.4", - "cross-fetch": "3.1.5", - "debug": "4.3.4", - "devtools-protocol": "0.0.1094867", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.1.1", - "unbzip2-stream": "1.4.3", - "ws": "8.11.0" - } - }, - "readable-stream": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", - "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, "sade": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", @@ -1591,83 +153,6 @@ "mri": "^1.1.0" } }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "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, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "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 - }, "uvu": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", @@ -1679,45 +164,6 @@ "kleur": "^4.0.3", "sade": "^1.7.3" } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "requires": {} - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } } } } diff --git a/.github/workflows/package.json b/.github/workflows/package.json index 4aec768..2d4638c 100644 --- a/.github/workflows/package.json +++ b/.github/workflows/package.json @@ -1,9 +1,7 @@ { "type": "module", "devDependencies": { - "@playwright/test": "^1.31.1", "playwright": "^1.31.1", - "puppeteer": "^19.7.2", "uvu": "^0.5.6" }, "scripts": {} diff --git a/.github/workflows/setup/backend.js b/.github/workflows/setup/backend.js deleted file mode 100644 index d8f4e7d..0000000 --- a/.github/workflows/setup/backend.js +++ /dev/null @@ -1,17 +0,0 @@ -import { spawn } from "node:child_process"; -import { setTimeout } from "timers/promises"; -var backendSocket = {}; - -export async function start() { - let socket = spawn("npx json-server --watch db.json", { - shell: true, - }); - backendSocket = socket; - console.info("4 Backend is starting..."); - await setTimeout(1000); -} - -export function stop() { - console.info("9 Backend is stopping..."); - backendSocket.kill(); -} diff --git a/.github/workflows/setup/puppeteer.js b/.github/workflows/setup/puppeteer.js deleted file mode 100644 index 76c30cf..0000000 --- a/.github/workflows/setup/puppeteer.js +++ /dev/null @@ -1,55 +0,0 @@ -import puppeteer from "puppeteer"; -import { setTimeout } from "timers/promises"; -// Launch the browser -// Add `browser` and `page` to context -export async function setup(context) { - // console.info("5 setting up puppeteer with context", context); - try { - context.browser = await puppeteer.launch({ - env: { - TZ: "Etc/UTC", - }, - }); - context.page = await context.browser.newPage(); - context.page.setDefaultNavigationTimeout(5000); - await setTimeout(1000); - } catch (e) { - console.error("puppeteer setup failed", e); - } - // console.info("6 puppeteer is setup with context", context); -} - -// Close everything on suite completion -export async function close(context) { - // console.info("8 Closing puppeteer with context", context); - await context.page.close(); - await context.browser.close(); - await setTimeout(1000); -} - -const MAX_RETRIES = 3; -let numRetry = 0; - -// const retry = (fn, ms) => -// new Promise((resolve) => { -// fn() -// .then(resolve) -// .catch((error) => { -// numRetry++; -// if (numRetry < MAX_RETRIES) { -// setTimeout(() => { -// console.log("retrying..."); -// retry(fn, ms).then(resolve); -// }, ms); -// } else { -// console.log("max retries reached"); -// reject(error); -// } -// }); -// }); - -// Navigate to homepage -export async function homepage(context) { - // await retry(() => context.page.goto("http://localhost:8080"), 1000); - await context.page.goto("http://localhost:8080"); -} diff --git a/.github/workflows/setup/webpack.js b/.github/workflows/setup/webpack.js deleted file mode 100644 index 0dfb760..0000000 --- a/.github/workflows/setup/webpack.js +++ /dev/null @@ -1,26 +0,0 @@ -import { spawn } from "node:child_process"; -import { setTimeout } from "timers/promises"; -var webpackServeSocket = {}; - -export async function build() { - let socket = spawn("npx webpack", { - shell: true, - }); - // console.info("2 Webpack is building..."); - await setTimeout(1000); - socket.kill(); -} - -export async function serve() { - let socket = spawn("npx webpack serve", { - shell: true, - }); - webpackServeSocket = socket; - // console.info("3 Webpack is starting..."); - await setTimeout(1000); -} - -export function stopServing() { - // console.info("10 Webpack is stopping..."); - webpackServeSocket.kill(); -} diff --git a/.github/workflows/test.js b/.github/workflows/test.js index fea6d4f..91c6348 100644 --- a/.github/workflows/test.js +++ b/.github/workflows/test.js @@ -86,6 +86,11 @@ test("Solved Issue #4: make table look prettier", async () => { getComputedStyle(el).getPropertyValue("background-color") ); assert.is(headerColor, "rgb(173, 216, 230)"); + + var tableBorderColor = await page.$eval("body > table", (el) => + getComputedStyle(el).getPropertyValue("border-color") + ); + assert.is(tableBorderColor, "rgb(173, 216, 230)"); }); test.run(); diff --git a/.github/workflows/test.puppeteer.js b/.github/workflows/test.puppeteer.js deleted file mode 100644 index d9d9d48..0000000 --- a/.github/workflows/test.puppeteer.js +++ /dev/null @@ -1,100 +0,0 @@ -import { setTimeout } from "timers/promises"; -import { test } from "uvu"; -import * as assert from "uvu/assert"; -import * as Puppeteer from "./setup/puppeteer.js"; - -test.before(async (context) => { - await Puppeteer.setup(context); -}); - -test.after(async (context) => { - await Puppeteer.close(context); -}); - -test("Solved Issue #1: Company Names are Present", async (context) => { - await Puppeteer.homepage(context); - await setTimeout(250); - - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(1)").textContent; - }); - assert.type(text, "string"); - assert.is(text, "Fusion LLC"); - - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(1)").textContent; - }); - assert.type(text, "string"); - assert.is(text, "Techopolis Ltd."); - - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(1)").textContent; - }); - assert.type(text, "string"); - assert.is(text, "Code learning LLC"); -}); - -test("Solved Issue #2: display dates in 24-hour time format", async (context) => { - await Puppeteer.homepage(context); - await setTimeout(250); - - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(3)").textContent; - }); - assert.type(text, "string"); - assert.is(text, "03:41"); - - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(3)").textContent; - }); - assert.type(text, "string"); - assert.is(text, "08:45"); - - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(3)").textContent; - }); - assert.type(text, "string"); - assert.is(text, "12:45"); -}); - -test("Solved Issue #3: display revenue numbers in a human readable format", async (context) => { - await Puppeteer.homepage(context); - await setTimeout(250); - - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(2) > td:nth-child(4)").textContent; - }); - assert.type(text, "string"); - assert.is(text, "17 000 000"); - - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(3) > td:nth-child(4)").textContent; - }); - assert.type(text, "string"); - assert.is(text, "7 375 294"); - - var text = await context.page.evaluate(() => { - return document.querySelector("body > table > tbody > tr:nth-child(4) > td:nth-child(4)").textContent; - }); - assert.type(text, "string"); - assert.is(text, "100 000"); -}); - -test("Solved Issue #4: make table look prettier", async (context) => { - await Puppeteer.homepage(context); - await setTimeout(250); - - var headerColor = await context.page.evaluate(() => { - return getComputedStyle(document.getElementsByTagName("tr")[0])["background-color"]; - }); - - assert.is(headerColor, "rgb(173, 216, 230)"); - - // var tableBorderColor = await context.page.evaluate(() => { - // let table = document.querySelector("body > table"); - // return window.getComputedStyle(table).getPropertyValue("border-color"); - // }); - // assert.is(tableBorderColor, "rgb(173, 216, 230)"); -}); - -test.run();