From b1884bb365890788b0c33947c34c3cdc29e8447f Mon Sep 17 00:00:00 2001 From: Matthew Sevey Date: Wed, 25 May 2022 11:47:53 -0400 Subject: [PATCH 1/7] Remove Health-Check package --- .github/workflows/lint-dockerfiles.yml | 1 - .../workflows/lint-packages-health-check.yml | 23 - .../workflows/test-packages-health-check.yml | 23 - docker-compose.yml | 6 +- packages/health-check/.gitignore | 1 - packages/health-check/.prettierignore | 1 - packages/health-check/.prettierrc | 3 - packages/health-check/Dockerfile | 41 - packages/health-check/README.md | 0 packages/health-check/bin/cli | 94 - packages/health-check/cli/disable | 5 - packages/health-check/cli/enable | 5 - packages/health-check/cli/run | 5 - packages/health-check/package.json | 24 - .../src/adapters/FileSyncAtomic.js | 28 - packages/health-check/src/api/critical.js | 14 - packages/health-check/src/api/disabled.js | 8 - packages/health-check/src/api/extended.js | 14 - packages/health-check/src/api/index.js | 75 - packages/health-check/src/checks/critical.js | 238 -- packages/health-check/src/checks/extended.js | 1247 ------- .../health-check/src/checks/middleware.js | 45 - packages/health-check/src/db.js | 12 - .../src/fixtures/developMomentumMetadata.json | 322 -- .../src/fixtures/skygalleryMetadata.json | 122 - .../src/fixtures/uniswapMetadata.json | 658 ---- packages/health-check/src/index.js | 48 - packages/health-check/src/utils.js | 144 - packages/health-check/src/utils.test.js | 19 - packages/health-check/src/whatismyip.js | 18 - packages/health-check/yarn.lock | 3200 ----------------- 31 files changed, 3 insertions(+), 6441 deletions(-) delete mode 100644 .github/workflows/lint-packages-health-check.yml delete mode 100644 .github/workflows/test-packages-health-check.yml delete mode 100644 packages/health-check/.gitignore delete mode 100644 packages/health-check/.prettierignore delete mode 100644 packages/health-check/.prettierrc delete mode 100644 packages/health-check/Dockerfile delete mode 100644 packages/health-check/README.md delete mode 100755 packages/health-check/bin/cli delete mode 100755 packages/health-check/cli/disable delete mode 100755 packages/health-check/cli/enable delete mode 100755 packages/health-check/cli/run delete mode 100644 packages/health-check/package.json delete mode 100644 packages/health-check/src/adapters/FileSyncAtomic.js delete mode 100644 packages/health-check/src/api/critical.js delete mode 100644 packages/health-check/src/api/disabled.js delete mode 100644 packages/health-check/src/api/extended.js delete mode 100644 packages/health-check/src/api/index.js delete mode 100644 packages/health-check/src/checks/critical.js delete mode 100644 packages/health-check/src/checks/extended.js delete mode 100644 packages/health-check/src/checks/middleware.js delete mode 100644 packages/health-check/src/db.js delete mode 100644 packages/health-check/src/fixtures/developMomentumMetadata.json delete mode 100644 packages/health-check/src/fixtures/skygalleryMetadata.json delete mode 100644 packages/health-check/src/fixtures/uniswapMetadata.json delete mode 100644 packages/health-check/src/index.js delete mode 100644 packages/health-check/src/utils.js delete mode 100644 packages/health-check/src/utils.test.js delete mode 100644 packages/health-check/src/whatismyip.js delete mode 100644 packages/health-check/yarn.lock diff --git a/.github/workflows/lint-dockerfiles.yml b/.github/workflows/lint-dockerfiles.yml index afdd6558..a999becc 100644 --- a/.github/workflows/lint-dockerfiles.yml +++ b/.github/workflows/lint-dockerfiles.yml @@ -20,7 +20,6 @@ jobs: - packages/dashboard-v2/Dockerfile - packages/dnslink-api/Dockerfile - packages/handshake-api/Dockerfile - - packages/health-check/Dockerfile - packages/website/Dockerfile steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/lint-packages-health-check.yml b/.github/workflows/lint-packages-health-check.yml deleted file mode 100644 index afd5d96b..00000000 --- a/.github/workflows/lint-packages-health-check.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Lint - packages/health-check - -on: - pull_request: - paths: - - packages/health-check/** - -defaults: - run: - working-directory: packages/health-check - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: 16.x - - - run: yarn - - run: yarn prettier --check . diff --git a/.github/workflows/test-packages-health-check.yml b/.github/workflows/test-packages-health-check.yml deleted file mode 100644 index 79cfe324..00000000 --- a/.github/workflows/test-packages-health-check.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Test - packages/health-check - -on: - pull_request: - paths: - - packages/health-check/** - -defaults: - run: - working-directory: packages/health-check - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: 16.x - - - run: yarn - - run: yarn jest diff --git a/docker-compose.yml b/docker-compose.yml index 08095730..cf7ee3ec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -171,9 +171,9 @@ services: health-check: # uncomment "build" and comment out "image" to build from sources # build: - # context: https://github.com/SkynetLabs/skynet-webportal.git#master - # dockerfile: ./packages/health-check/Dockerfile - image: skynetlabs/health-check + # context: https://github.com/SkynetLabs/webportal-health-check.git#master + # dockerfile: Dockerfile + image: skynetlabs/webportal-health-check:0.1.2 container_name: health-check restart: unless-stopped logging: *default-logging diff --git a/packages/health-check/.gitignore b/packages/health-check/.gitignore deleted file mode 100644 index dc3b76b2..00000000 --- a/packages/health-check/.gitignore +++ /dev/null @@ -1 +0,0 @@ -state/ diff --git a/packages/health-check/.prettierignore b/packages/health-check/.prettierignore deleted file mode 100644 index 245a383f..00000000 --- a/packages/health-check/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -/package.json \ No newline at end of file diff --git a/packages/health-check/.prettierrc b/packages/health-check/.prettierrc deleted file mode 100644 index 963354f2..00000000 --- a/packages/health-check/.prettierrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "printWidth": 120 -} diff --git a/packages/health-check/Dockerfile b/packages/health-check/Dockerfile deleted file mode 100644 index a7661da5..00000000 --- a/packages/health-check/Dockerfile +++ /dev/null @@ -1,41 +0,0 @@ -FROM node:16.14.2-alpine - -RUN apk add --no-cache dnsmasq~=2 - -WORKDIR /usr/app - -ENV PATH="/usr/app/bin:${PATH}" - -# schedule critical checks to run every 5 minutes (any failures will disable server) -# schedule extended checks to run on every hour (optional checks, report only) -RUN echo '*/5 * * * * source /etc/environment ; /usr/app/bin/cli run critical >> /proc/1/fd/1' >> /etc/crontabs/root && \ - echo '0 * * * * source /etc/environment ; /usr/app/bin/cli run extended >> /proc/1/fd/1' >> /etc/crontabs/root - -COPY packages/health-check/package.json \ - packages/health-check/yarn.lock \ - ./ - -RUN yarn --frozen-lockfile - -COPY packages/health-check/src src -COPY packages/health-check/cli cli -COPY packages/health-check/bin bin - -EXPOSE 3100 -ENV NODE_ENV production - -# 1. get public server ip and save it in /etc/environment (passed to cron tasks as env variable) -# 2. start dnsmasq in the background with: -# - alias PORTAL_DOMAIN with current server ip so it overrides potential load balancer request -# - default docker nameserver 127.0.0.11 for any other request -# 3. replace docker nameserver with dnsmasq nameserver in /etc/resolv.conf -# 4. start crond in the background to schedule periodic health checks -# 5. start the health-check api service -CMD [ "sh", "-c", \ - "export serverip=$(node src/whatismyip.js) && \ - echo \"export serverip=${serverip}\" >> /etc/environment && \ - dnsmasq --no-resolv --log-facility=/var/log/dnsmasq.log --address=/$PORTAL_DOMAIN/$serverip --server=127.0.0.11 && \ - echo \"$(sed 's/127.0.0.11/127.0.0.1/' /etc/resolv.conf)\" > /etc/resolv.conf && \ - crond && \ - node src/index.js" \ - ] diff --git a/packages/health-check/README.md b/packages/health-check/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/health-check/bin/cli b/packages/health-check/bin/cli deleted file mode 100755 index 21b6b9f7..00000000 --- a/packages/health-check/bin/cli +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/env node - -process.env.NODE_ENV = process.env.NODE_ENV || "production"; - -require("yargs/yargs")(process.argv.slice(2)) - .help() - .demandCommand() - .strict(true) - .command( - "__authenticate", // Internal only function - this function will be removed when API keys are implemented - false, // hide this function cli help - () => {}, - async () => { - const { getAuthCookie } = require("../src/utils"); - - console.log(await getAuthCookie(true)); - } - ) - .command( - "enable", - "Mark portal as enabled", - () => {}, - () => { - const db = require("../src/db"); - - db.set("disabled", false).write(); - } - ) - .command( - "disable ", - "Mark portal as disabled (provide meaningful reason)", - () => {}, - ({ reason }) => { - const db = require("../src/db"); - - db.set("disabled", reason).write(); - } - ) - .command( - "run ", - "Skynet portal health checks", - (yargs) => { - yargs - .positional("type", { - describe: "Type of checks to run", - type: "string", - choices: ["critical", "extended"], - }) - .option("portal-url", { - describe: "Skynet portal url", - default: process.env.PORTAL_DOMAIN ? `https://${process.env.PORTAL_DOMAIN}` : "https://siasky.net", - type: "string", - }) - .option("state-dir", { - describe: "State directory", - default: process.env.STATE_DIR || "state", - type: "string", - }); - }, - async ({ type, portalUrl, stateDir }) => { - const { hostname: portalDomain } = new URL(portalUrl); // extract domain from portal url - process.env.PORTAL_DOMAIN = portalDomain; - process.env.STATE_DIR = stateDir; - - const util = require("util"); - const { getYesterdayISOString } = require("../src/utils"); - const createMiddleware = require("../src/checks/middleware"); - const db = require("../src/db"); - const checks = require(`../src/checks/${type}`); - const middleware = await createMiddleware(); - - const entry = { - date: new Date().toISOString(), - checks: (await Promise.all(checks.map((check) => new Promise(check)))).map(middleware), - }; - - db.read() // read before writing to make sure no external changes are overwritten - .get(type) // get the list of records of given type - .push(entry) // insert new record - .remove(({ date }) => date < getYesterdayISOString()) // drop old records - .write(); - - // exit with code 1 if any of the checks report failure - if (entry.checks.some(({ up }) => !up)) { - console.log( - util.inspect( - entry.checks.filter(({ up }) => !up), - { colors: true, depth: 7 } // increase depth to ensure errors are printed - ) - ); - process.exit(1); - } - } - ).argv; diff --git a/packages/health-check/cli/disable b/packages/health-check/cli/disable deleted file mode 100755 index e6105112..00000000 --- a/packages/health-check/cli/disable +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/ash - -echo "DEPRECATED: 'cli/disable' command is deprecated, use 'cli disable' instead" - -/usr/app/bin/cli disable $@ diff --git a/packages/health-check/cli/enable b/packages/health-check/cli/enable deleted file mode 100755 index d362b267..00000000 --- a/packages/health-check/cli/enable +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/ash - -echo "DEPRECATED: 'cli/enable' command is deprecated, use 'cli enable' instead" - -/usr/app/bin/cli enable $@ diff --git a/packages/health-check/cli/run b/packages/health-check/cli/run deleted file mode 100755 index c310fc15..00000000 --- a/packages/health-check/cli/run +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/ash - -echo "DEPRECATED: 'cli/run' command is deprecated, use 'cli run' instead" - -/usr/app/bin/cli run $@ diff --git a/packages/health-check/package.json b/packages/health-check/package.json deleted file mode 100644 index 40a60698..00000000 --- a/packages/health-check/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "health-check", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "dependencies": { - "deep-object-diff": "^1.1.7", - "express": "^4.18.1", - "form-data": "^4.0.0", - "got": "^11.8.2", - "graceful-fs": "^4.2.10", - "hasha": "^5.2.2", - "http-status-codes": "^2.2.0", - "lodash": "^4.17.21", - "lowdb": "^1.0.0", - "skynet-js": "^4.1.0", - "write-file-atomic": "^4.0.1", - "yargs": "^17.4.1" - }, - "devDependencies": { - "jest": "^28.0.3", - "prettier": "^2.6.2" - } -} diff --git a/packages/health-check/src/adapters/FileSyncAtomic.js b/packages/health-check/src/adapters/FileSyncAtomic.js deleted file mode 100644 index 247481e9..00000000 --- a/packages/health-check/src/adapters/FileSyncAtomic.js +++ /dev/null @@ -1,28 +0,0 @@ -const fs = require("graceful-fs"); -const Base = require("lowdb/adapters/Base"); -const { sync: writeFileAtomicSync } = require("write-file-atomic"); - -class FileSyncAtomic extends Base { - read() { - if (fs.existsSync(this.source)) { - try { - const data = fs.readFileSync(this.source, "utf-8").trim(); - return data ? this.deserialize(data) : this.defaultValue; - } catch (e) { - if (e instanceof SyntaxError) { - e.message = `Malformed JSON in file: ${this.source}\n${e.message}`; - } - throw e; - } - } else { - writeFileAtomicSync(this.source, this.serialize(this.defaultValue)); - return this.defaultValue; - } - } - - write(data) { - return writeFileAtomicSync(this.source, this.serialize(data)); - } -} - -module.exports = FileSyncAtomic; diff --git a/packages/health-check/src/api/critical.js b/packages/health-check/src/api/critical.js deleted file mode 100644 index a84b4d25..00000000 --- a/packages/health-check/src/api/critical.js +++ /dev/null @@ -1,14 +0,0 @@ -const db = require("../db"); -const { getYesterdayISOString } = require("../utils"); - -// returns all critical health check entries -module.exports = (req, res) => { - const yesterday = getYesterdayISOString(); - const entries = db - .get("critical") - .orderBy("date", "desc") - .filter(({ date }) => date > yesterday) - .value(); - - res.send(entries); -}; diff --git a/packages/health-check/src/api/disabled.js b/packages/health-check/src/api/disabled.js deleted file mode 100644 index 6471ad2f..00000000 --- a/packages/health-check/src/api/disabled.js +++ /dev/null @@ -1,8 +0,0 @@ -const db = require("../db"); - -// returns a disabled flag status -module.exports = (req, res) => { - const disabled = db.get("disabled").value(); - - res.send({ disabled }); -}; diff --git a/packages/health-check/src/api/extended.js b/packages/health-check/src/api/extended.js deleted file mode 100644 index ff23e704..00000000 --- a/packages/health-check/src/api/extended.js +++ /dev/null @@ -1,14 +0,0 @@ -const db = require("../db"); -const { getYesterdayISOString } = require("../utils"); - -// returns all extended health check entries -module.exports = (req, res) => { - const yesterday = getYesterdayISOString(); - const entries = db - .get("extended") - .orderBy("date", "desc") - .filter(({ date }) => date > yesterday) - .value(); - - res.send(entries); -}; diff --git a/packages/health-check/src/api/index.js b/packages/health-check/src/api/index.js deleted file mode 100644 index 641b154a..00000000 --- a/packages/health-check/src/api/index.js +++ /dev/null @@ -1,75 +0,0 @@ -const { StatusCodes } = require("http-status-codes"); -const { sum, sumBy } = require("lodash"); -const db = require("../db"); - -/** - * Get status code that should be returned in the API response. - * - OK (200) in case everything is healthy - * - SERVICE_UNAVAILABLE (503) in case of any failures or if disabled - */ -function getStatusCode() { - // check whether the portal has been manually disabled - const disabled = getDisabled(); - - if (disabled) { - return StatusCodes.SERVICE_UNAVAILABLE; - } - - // grab the most recent critical entry element from DB - const entry = getMostRecentCriticalEntry(); - - // in case there is no entry yet or at least one check failed in the most recent entry - if (!entry || entry.checks.some(({ up }) => !up)) { - return StatusCodes.SERVICE_UNAVAILABLE; - } - - return StatusCodes.OK; -} - -/** - * Get the sample of most recent critical entries and - * calculate the average response time of all of them - */ -function getAverageResponseTime() { - // get most recent 10 successfull checks for the calculation - const sample = db - .get("critical") - .orderBy("date", "desc") - .filter(({ checks }) => checks.every(({ up }) => up)) - .take(10) - .value(); - - // calculate average time of response - return Math.round(sum(sample.map(({ checks }) => sumBy(checks, "time"))) / sample.size); -} - -/** - * Get one, most current critical entry - */ -function getMostRecentCriticalEntry() { - return db.get("critical").orderBy("date", "desc").head().value(); -} - -/** - * Get the disabled flag state (manual portal disable) - */ -function getDisabled() { - return db.get("disabled").value(); -} - -module.exports = (req, res) => { - const statusCode = getStatusCode(); - const timeout = statusCode === StatusCodes.OK ? getAverageResponseTime() : 0; - - // We want to delay the response for the load balancer to be able to prioritize - // servers based on the successful response time of this endpoint. Load balancer - // will pull the server if the response is an error so there is no point in delaying - // failures, hence 0 timeout on those. - setTimeout(() => { - // include some health information in the response body - const entry = getMostRecentCriticalEntry(); - const disabled = getDisabled(); - - res.status(statusCode).send({ disabled, entry }); - }, timeout); -}; diff --git a/packages/health-check/src/checks/critical.js b/packages/health-check/src/checks/critical.js deleted file mode 100644 index 127ebd8a..00000000 --- a/packages/health-check/src/checks/critical.js +++ /dev/null @@ -1,238 +0,0 @@ -const got = require("got"); -const FormData = require("form-data"); -const { isEqual } = require("lodash"); -const { calculateElapsedTime, getResponseContent, getAuthCookie, isPortalModuleEnabled } = require("../utils"); -const { SkynetClient, stringToUint8ArrayUtf8, genKeyPairAndSeed } = require("skynet-js"); - -const MODULE_BLOCKER = "b"; - -const skynetClient = new SkynetClient(`https://${process.env.PORTAL_DOMAIN}`); -const exampleSkylink = "AACogzrAimYPG42tDOKhS3lXZD8YvlF8Q8R17afe95iV2Q"; - -// check that any relevant configuration is properly set in skyd -async function skydConfigCheck(done) { - const time = process.hrtime(); - const data = { up: false }; - - try { - const response = await got(`http://10.10.10.10:9980/renter`, { headers: { "User-Agent": "Sia-Agent" } }).json(); - - // make sure initial funding is set to 10SC - if (response.settings.allowance.paymentcontractinitialfunding !== "10000000000000000000000000") { - throw new Error("Skynet Portal Per-Contract Budget is not set correctly!"); - } - - data.up = true; - data.ip = response.ip; - } catch (error) { - data.statusCode = error.response?.statusCode || error.statusCode || error.status; - data.errorMessage = error.message; - data.errorResponseContent = getResponseContent(error.response); - data.ip = error?.response?.ip ?? null; - } - - done({ name: "skyd_config", time: calculateElapsedTime(time), ...data }); -} - -// uploadCheck returns the result of uploading a sample file -async function uploadCheck(done) { - const authCookie = await getAuthCookie(); - const time = process.hrtime(); - const form = new FormData(); - const payload = Buffer.from(new Date()); // current date to ensure data uniqueness - const data = { up: false }; - - form.append("file", payload, { filename: "time.txt", contentType: "text/plain" }); - - try { - const response = await got.post(`https://${process.env.PORTAL_DOMAIN}/skynet/skyfile`, { - body: form, - headers: { cookie: authCookie }, - }); - - data.statusCode = response.statusCode; - data.up = true; - data.ip = response.ip; - } catch (error) { - data.statusCode = error.response?.statusCode || error.statusCode || error.status; - data.errorMessage = error.message; - data.errorResponseContent = getResponseContent(error.response); - data.ip = error?.response?.ip ?? null; - } - - done({ name: "upload_file", time: calculateElapsedTime(time), ...data }); -} - -// websiteCheck checks whether the main website is working -async function websiteCheck(done) { - return done(await genericAccessCheck("website", `https://${process.env.PORTAL_DOMAIN}`)); -} - -// downloadCheck returns the result of downloading the hard coded link -async function downloadCheck(done) { - const url = await skynetClient.getSkylinkUrl(exampleSkylink); - - return done(await genericAccessCheck("skylink", url)); -} - -// skylinkSubdomainCheck returns the result of downloading the hard coded link via subdomain -async function skylinkSubdomainCheck(done) { - const url = await skynetClient.getSkylinkUrl(exampleSkylink, { subdomain: true }); - - return done(await genericAccessCheck("skylink_via_subdomain", url)); -} - -// handshakeSubdomainCheck returns the result of downloading the skylink via handshake domain -async function handshakeSubdomainCheck(done) { - const url = await skynetClient.getHnsUrl("note-to-self", { subdomain: true }); - - return done(await genericAccessCheck("hns_via_subdomain", url)); -} - -// accountWebsiteCheck returns the result of accessing account dashboard website -async function accountWebsiteCheck(done) { - const url = `https://account.${process.env.PORTAL_DOMAIN}/auth/login`; - - return done(await genericAccessCheck("account_website", url)); -} - -// registryWriteAndReadCheck writes to registry and immediately reads and compares the data -async function registryWriteAndReadCheck(done) { - const authCookie = await getAuthCookie(); - const time = process.hrtime(); - const data = { name: "registry_write_and_read", up: false }; - const { privateKey, publicKey } = genKeyPairAndSeed(); - const expected = { dataKey: "foo-key", data: stringToUint8ArrayUtf8("foo-data"), revision: BigInt(0) }; - - try { - await skynetClient.registry.setEntry(privateKey, expected, { customCookie: authCookie }); - const { entry } = await skynetClient.registry.getEntry(publicKey, expected.dataKey, { customCookie: authCookie }); - - if (isEqual(expected, entry)) { - data.up = true; - } else { - data.errors = [{ message: "Data mismatch in registry (read after write)", entry, expected }]; - } - } catch (error) { - data.errors = [{ message: error?.response?.data?.message ?? error.message }]; - } - - return done({ ...data, time: calculateElapsedTime(time) }); -} - -// directServerApiAccessCheck returns the basic server api check on direct server address -async function directServerApiAccessCheck(done) { - if (!process.env.SERVER_DOMAIN) { - return done({ up: false, errors: [{ message: "SERVER_DOMAIN env variable not configured" }] }); - } - - const [portalAccessCheck, serverAccessCheck] = await Promise.all([ - genericAccessCheck("portal_api_access", `https://${process.env.PORTAL_DOMAIN}`), - genericAccessCheck("server_api_access", `https://${process.env.SERVER_DOMAIN}`), - ]); - - if (portalAccessCheck.ip !== serverAccessCheck.ip) { - serverAccessCheck.up = false; - serverAccessCheck.errors = serverAccessCheck.errors ?? []; - serverAccessCheck.errors.push({ - message: "Access ip mismatch between portal and server access", - response: { - portal: { name: process.env.PORTAL_DOMAIN, ip: portalAccessCheck.ip }, - server: { name: process.env.SERVER_DOMAIN, ip: serverAccessCheck.ip }, - }, - }); - } - - return done(serverAccessCheck); -} - -// accountHealthCheck returns the result of accounts service health checks -async function accountHealthCheck(done) { - const time = process.hrtime(); - const data = { up: false }; - - try { - const response = await got(`https://account.${process.env.PORTAL_DOMAIN}/health`, { responseType: "json" }); - - data.statusCode = response.statusCode; - data.response = response.body; - data.up = response.body.dbAlive === true; - data.ip = response.ip; - } catch (error) { - data.statusCode = error?.response?.statusCode || error.statusCode || error.status; - data.errorMessage = error.message; - data.errorResponseContent = getResponseContent(error.response); - data.ip = error?.response?.ip ?? null; - } - - done({ name: "accounts", time: calculateElapsedTime(time), ...data }); -} - -// blockerHealthCheck returns the result of blocker container health endpoint -async function blockerHealthCheck(done) { - const time = process.hrtime(); - const data = { up: false }; - - try { - const response = await got(`http://${process.env.BLOCKER_HOST}:${process.env.BLOCKER_PORT}/health`, { - responseType: "json", - }); - - data.statusCode = response.statusCode; - data.response = response.body; - data.up = response.body.dbAlive === true; - } catch (error) { - data.statusCode = error?.response?.statusCode || error.statusCode || error.status; - data.errorMessage = error.message; - data.errorResponseContent = getResponseContent(error.response); - } - - // this is a no-op but it's added to explicitly document the ip property - // should not be set on the data object to prevent the IP from being compared - // to the server's IP - this is not required for this check and will fail - delete data.ip; - - done({ name: "blocker", time: calculateElapsedTime(time), ...data }); -} - -async function genericAccessCheck(name, url) { - const authCookie = await getAuthCookie(); - const time = process.hrtime(); - const data = { up: false, url }; - - try { - const response = await got(url, { headers: { cookie: `nocache=true;${authCookie}` } }); - - data.statusCode = response.statusCode; - data.up = true; - data.ip = response.ip; - } catch (error) { - data.statusCode = error?.response?.statusCode || error.statusCode || error.status; - data.errorMessage = error.message; - data.errorResponseContent = getResponseContent(error.response); - data.ip = error?.response?.ip ?? null; - } - - return { name, time: calculateElapsedTime(time), ...data }; -} - -const checks = [ - skydConfigCheck, - uploadCheck, - websiteCheck, - downloadCheck, - skylinkSubdomainCheck, - handshakeSubdomainCheck, - registryWriteAndReadCheck, - directServerApiAccessCheck, -]; - -if (process.env.ACCOUNTS_ENABLED === "true") { - checks.push(accountHealthCheck, accountWebsiteCheck); -} - -if (isPortalModuleEnabled(MODULE_BLOCKER)) { - checks.push(blockerHealthCheck); -} - -module.exports = checks; diff --git a/packages/health-check/src/checks/extended.js b/packages/health-check/src/checks/extended.js deleted file mode 100644 index aaf74389..00000000 --- a/packages/health-check/src/checks/extended.js +++ /dev/null @@ -1,1247 +0,0 @@ -const got = require("got"); -const hasha = require("hasha"); -const { detailedDiff } = require("deep-object-diff"); -const { isEqual } = require("lodash"); -const { calculateElapsedTime, ensureValidJSON, getResponseContent, getAuthCookie } = require("../utils"); -const { parseSkylink } = require("skynet-js"); - -// audioExampleCheck returns the result of trying to download the skylink -// for the Example audio file on siasky.net -function audioExampleCheck(done) { - const linkInfo = { - name: "Audio Example", - skylink: "_A2zt5SKoqwnnZU4cBF8uBycSKULXMyeg1c5ZISBr2Q3dA", - bodyHash: "1bea1f570043f20149ae4cb4d30089d90897b15b", - metadata: { filename: "feel-good.mp3" }, - headers: { - "skynet-skylink": "_A2zt5SKoqwnnZU4cBF8uBycSKULXMyeg1c5ZISBr2Q3dA", - "content-disposition": 'inline; filename="feel-good.mp3"', - "content-type": "audio/mpeg", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// covid19PaperCheck returns the result of trying to download the skylink -// for a known Covid19 paper -function covid19PaperCheck(done) { - const linkInfo = { - name: "Covid-19 Paper", - skylink: "PAMZVmfutxWoG6Wnl5BRKuWLkDNZR42k_okRRvksJekA3A", - bodyHash: "7ce20bfc4221503fd0bf909ad20c422eca125c7d", - metadata: { - filename: "An Effective Treatment for Coronavirus (COVID-19).pdf", - subfiles: { - "An Effective Treatment for Coronavirus (COVID-19).pdf": { - filename: "An Effective Treatment for Coronavirus (COVID-19).pdf", - contenttype: "application/pdf", - len: 474803, - }, - }, - }, - headers: { - "skynet-skylink": "PAMZVmfutxWoG6Wnl5BRKuWLkDNZR42k_okRRvksJekA3A", - "content-disposition": 'inline; filename="An Effective Treatment for Coronavirus (COVID-19).pdf"', - "content-type": "application/pdf", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// covid19CoroNopePaperCheck returns the result of trying to download the skylink -// for another known Covid19 paper -function covid19CoroNopePaperCheck(done) { - const linkInfo = { - name: "Covid-19 CoroNope Paper", - skylink: "bACLKGmcmX4NCp47WwOOJf0lU666VLeT5HRWpWVtqZPjEA", - bodyHash: "0db705da1b1232f8344ed74fd38245d35a49a965", - metadata: { filename: "coronope.pdf" }, - headers: { - "skynet-skylink": "bACLKGmcmX4NCp47WwOOJf0lU666VLeT5HRWpWVtqZPjEA", - "content-disposition": 'inline; filename="coronope.pdf"', - "content-type": "application/pdf", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// dappExampleCheck returns the result of trying to download the skylink -// for the Example Dapp on siasky.net -function dappExampleCheck(done) { - const linkInfo = { - name: "Dapp Example (UniSwap)", - skylink: "EADWpKD0myqH2tZa6xtKebg6kNnwYnI94fl4R8UKgNrmOA", - bodyHash: "7b74cbb5927e964db493b82cc1f8a532f1ff72f5", - metadata: { - filename: "build", - length: 15578459, - subfiles: { - "451.html": { - filename: "451.html", - contenttype: "text/html", - offset: 40966, - len: 200, - }, - "asset-manifest.json": { - filename: "asset-manifest.json", - contenttype: "application/json", - offset: 35832, - len: 5134, - }, - "favicon.ico": { - filename: "favicon.ico", - contenttype: "image/vnd.microsoft.icon", - len: 31701, - }, - "index.html": { - filename: "index.html", - contenttype: "text/html", - offset: 31701, - len: 4131, - }, - "locales/de.json": { - filename: "locales/de.json", - contenttype: "application/json", - offset: 15542609, - len: 4376, - }, - "locales/en.json": { - filename: "locales/en.json", - contenttype: "application/json", - offset: 15558827, - len: 4049, - }, - "locales/es-AR.json": { - filename: "locales/es-AR.json", - contenttype: "application/json", - offset: 15551984, - len: 3624, - }, - "locales/es-US.json": { - filename: "locales/es-US.json", - contenttype: "application/json", - offset: 15574829, - len: 3630, - }, - "locales/it-IT.json": { - filename: "locales/it-IT.json", - contenttype: "application/json", - offset: 15538386, - len: 4223, - }, - "locales/ro.json": { - filename: "locales/ro.json", - contenttype: "application/json", - offset: 15562876, - len: 3794, - }, - "locales/ru.json": { - filename: "locales/ru.json", - contenttype: "application/json", - offset: 15546985, - len: 4999, - }, - "locales/vi.json": { - filename: "locales/vi.json", - contenttype: "application/json", - offset: 15569928, - len: 4901, - }, - "locales/zh-CN.json": { - filename: "locales/zh-CN.json", - contenttype: "application/json", - offset: 15555608, - len: 3219, - }, - "locales/zh-TW.json": { - filename: "locales/zh-TW.json", - contenttype: "application/json", - offset: 15566670, - len: 3258, - }, - "manifest.json": { - filename: "manifest.json", - contenttype: "application/json", - offset: 41166, - len: 297, - }, - "precache-manifest.cd4677068c6058f8626d6818e2c12fd3.js": { - filename: "precache-manifest.cd4677068c6058f8626d6818e2c12fd3.js", - contenttype: "text/javascript", - offset: 41463, - len: 4721, - }, - "service-worker.js": { - filename: "service-worker.js", - contenttype: "text/javascript", - offset: 46184, - len: 1185, - }, - "static/css/0.07de6c03.chunk.css": { - filename: "static/css/0.07de6c03.chunk.css", - contenttype: "text/css", - offset: 15537249, - len: 285, - }, - "static/css/0.07de6c03.chunk.css.map": { - filename: "static/css/0.07de6c03.chunk.css.map", - contenttype: "application/octet-stream", - offset: 15537818, - len: 568, - }, - "static/css/5.d75e0ccb.chunk.css": { - filename: "static/css/5.d75e0ccb.chunk.css", - contenttype: "text/css", - offset: 15537534, - len: 284, - }, - "static/css/5.d75e0ccb.chunk.css.map": { - filename: "static/css/5.d75e0ccb.chunk.css.map", - contenttype: "application/octet-stream", - offset: 15536511, - len: 738, - }, - "static/js/0.58b0f69f.chunk.js": { - filename: "static/js/0.58b0f69f.chunk.js", - contenttype: "text/javascript", - offset: 7300150, - len: 30029, - }, - "static/js/0.58b0f69f.chunk.js.map": { - filename: "static/js/0.58b0f69f.chunk.js.map", - contenttype: "application/octet-stream", - offset: 12111459, - len: 81144, - }, - "static/js/1.19c370e0.chunk.js": { - filename: "static/js/1.19c370e0.chunk.js", - contenttype: "text/javascript", - offset: 15495781, - len: 40203, - }, - "static/js/1.19c370e0.chunk.js.map": { - filename: "static/js/1.19c370e0.chunk.js.map", - contenttype: "application/octet-stream", - offset: 7330179, - len: 104594, - }, - "static/js/10.8ea29dcd.chunk.js": { - filename: "static/js/10.8ea29dcd.chunk.js", - contenttype: "text/javascript", - offset: 15483299, - len: 12345, - }, - "static/js/10.8ea29dcd.chunk.js.map": { - filename: "static/js/10.8ea29dcd.chunk.js.map", - contenttype: "application/octet-stream", - offset: 14524416, - len: 30393, - }, - "static/js/11.764b8915.chunk.js": { - filename: "static/js/11.764b8915.chunk.js", - contenttype: "text/javascript", - offset: 12208196, - len: 7103, - }, - "static/js/11.764b8915.chunk.js.map": { - filename: "static/js/11.764b8915.chunk.js.map", - contenttype: "application/octet-stream", - offset: 12192603, - len: 15593, - }, - "static/js/12.88d4fbe5.chunk.js": { - filename: "static/js/12.88d4fbe5.chunk.js", - contenttype: "text/javascript", - offset: 12055261, - len: 16721, - }, - "static/js/12.88d4fbe5.chunk.js.map": { - filename: "static/js/12.88d4fbe5.chunk.js.map", - contenttype: "application/octet-stream", - offset: 14460215, - len: 46695, - }, - "static/js/13.ea207f69.chunk.js": { - filename: "static/js/13.ea207f69.chunk.js", - contenttype: "text/javascript", - offset: 7168280, - len: 347, - }, - "static/js/13.ea207f69.chunk.js.map": { - filename: "static/js/13.ea207f69.chunk.js.map", - contenttype: "application/octet-stream", - offset: 6928538, - len: 563, - }, - "static/js/14.d8bc0d4c.chunk.js": { - filename: "static/js/14.d8bc0d4c.chunk.js", - contenttype: "text/javascript", - offset: 12870711, - len: 336, - }, - "static/js/14.d8bc0d4c.chunk.js.map": { - filename: "static/js/14.d8bc0d4c.chunk.js.map", - contenttype: "application/octet-stream", - offset: 15535984, - len: 527, - }, - "static/js/15.e6215497.chunk.js": { - filename: "static/js/15.e6215497.chunk.js", - contenttype: "text/javascript", - offset: 15495644, - len: 137, - }, - "static/js/15.e6215497.chunk.js.map": { - filename: "static/js/15.e6215497.chunk.js.map", - contenttype: "application/octet-stream", - offset: 6928431, - len: 107, - }, - "static/js/2.f6da9598.chunk.js": { - filename: "static/js/2.f6da9598.chunk.js", - contenttype: "text/javascript", - offset: 14506910, - len: 17506, - }, - "static/js/2.f6da9598.chunk.js.map": { - filename: "static/js/2.f6da9598.chunk.js.map", - contenttype: "application/octet-stream", - offset: 12071982, - len: 39477, - }, - "static/js/5.5cc0868a.chunk.js": { - filename: "static/js/5.5cc0868a.chunk.js", - contenttype: "text/javascript", - offset: 10199338, - len: 1842002, - }, - "static/js/5.5cc0868a.chunk.js.LICENSE": { - filename: "static/js/5.5cc0868a.chunk.js.LICENSE", - contenttype: "application/octet-stream", - offset: 14554809, - len: 3119, - }, - "static/js/5.5cc0868a.chunk.js.map": { - filename: "static/js/5.5cc0868a.chunk.js.map", - contenttype: "application/octet-stream", - offset: 289328, - len: 6632626, - }, - "static/js/6.b7681521.chunk.js": { - filename: "static/js/6.b7681521.chunk.js", - contenttype: "text/javascript", - offset: 14237363, - len: 222852, - }, - "static/js/6.b7681521.chunk.js.map": { - filename: "static/js/6.b7681521.chunk.js.map", - contenttype: "application/octet-stream", - offset: 12215299, - len: 655412, - }, - "static/js/7.0614dbc4.chunk.js": { - filename: "static/js/7.0614dbc4.chunk.js", - contenttype: "text/javascript", - offset: 6921954, - len: 6477, - }, - "static/js/7.0614dbc4.chunk.js.map": { - filename: "static/js/7.0614dbc4.chunk.js.map", - contenttype: "application/octet-stream", - offset: 12041340, - len: 13921, - }, - "static/js/8.7975098c.chunk.js": { - filename: "static/js/8.7975098c.chunk.js", - contenttype: "text/javascript", - offset: 13796515, - len: 420712, - }, - "static/js/8.7975098c.chunk.js.LICENSE": { - filename: "static/js/8.7975098c.chunk.js.LICENSE", - contenttype: "application/octet-stream", - offset: 13796191, - len: 324, - }, - "static/js/8.7975098c.chunk.js.map": { - filename: "static/js/8.7975098c.chunk.js.map", - contenttype: "application/octet-stream", - offset: 12871047, - len: 925144, - }, - "static/js/9.cc860b76.chunk.js": { - filename: "static/js/9.cc860b76.chunk.js", - contenttype: "text/javascript", - offset: 14557928, - len: 920812, - }, - "static/js/9.cc860b76.chunk.js.LICENSE": { - filename: "static/js/9.cc860b76.chunk.js.LICENSE", - contenttype: "application/octet-stream", - offset: 15478740, - len: 4559, - }, - "static/js/9.cc860b76.chunk.js.map": { - filename: "static/js/9.cc860b76.chunk.js.map", - contenttype: "application/octet-stream", - offset: 7434773, - len: 2764565, - }, - "static/js/main.a7822f79.chunk.js": { - filename: "static/js/main.a7822f79.chunk.js", - contenttype: "text/javascript", - offset: 7168627, - len: 131523, - }, - "static/js/main.a7822f79.chunk.js.map": { - filename: "static/js/main.a7822f79.chunk.js.map", - contenttype: "application/octet-stream", - offset: 6929101, - len: 239179, - }, - "static/js/runtime-main.68d129c6.js": { - filename: "static/js/runtime-main.68d129c6.js", - contenttype: "text/javascript", - offset: 14217227, - len: 3546, - }, - "static/js/runtime-main.68d129c6.js.map": { - filename: "static/js/runtime-main.68d129c6.js.map", - contenttype: "application/octet-stream", - offset: 14220773, - len: 16590, - }, - "static/media/arrow-down-blue.cd061363.svg": { - filename: "static/media/arrow-down-blue.cd061363.svg", - contenttype: "image/svg+xml", - offset: 219284, - len: 326, - }, - "static/media/arrow-down-grey.c0dedd2f.svg": { - filename: "static/media/arrow-down-grey.c0dedd2f.svg", - contenttype: "image/svg+xml", - offset: 196726, - len: 326, - }, - "static/media/arrow-right-white.337ad716.png": { - filename: "static/media/arrow-right-white.337ad716.png", - contenttype: "image/png", - offset: 197052, - len: 12999, - }, - "static/media/arrow-right.d285b6cf.svg": { - filename: "static/media/arrow-right.d285b6cf.svg", - contenttype: "image/svg+xml", - offset: 289065, - len: 263, - }, - "static/media/circle-grey.ed2a1dad.svg": { - filename: "static/media/circle-grey.ed2a1dad.svg", - contenttype: "image/svg+xml", - offset: 210213, - len: 321, - }, - "static/media/circle.2d975615.svg": { - filename: "static/media/circle.2d975615.svg", - contenttype: "image/svg+xml", - offset: 210534, - len: 321, - }, - "static/media/coinbaseWalletIcon.62578f59.svg": { - filename: "static/media/coinbaseWalletIcon.62578f59.svg", - contenttype: "image/svg+xml", - offset: 220450, - len: 53626, - }, - "static/media/dropdown-blue.b20914ec.svg": { - filename: "static/media/dropdown-blue.b20914ec.svg", - contenttype: "image/svg+xml", - offset: 47369, - len: 164, - }, - "static/media/dropdown.7d32d2fa.svg": { - filename: "static/media/dropdown.7d32d2fa.svg", - contenttype: "image/svg+xml", - offset: 287941, - len: 164, - }, - "static/media/dropup-blue.b96d70e1.svg": { - filename: "static/media/dropup-blue.b96d70e1.svg", - contenttype: "image/svg+xml", - offset: 210051, - len: 162, - }, - "static/media/ethereum-logo.802c6eac.svg": { - filename: "static/media/ethereum-logo.802c6eac.svg", - contenttype: "image/svg+xml", - offset: 219610, - len: 840, - }, - "static/media/magnifying-glass.67440097.svg": { - filename: "static/media/magnifying-glass.67440097.svg", - contenttype: "image/svg+xml", - offset: 210855, - len: 8429, - }, - "static/media/metamask.023762b6.png": { - filename: "static/media/metamask.023762b6.png", - contenttype: "image/png", - offset: 61600, - len: 114217, - }, - "static/media/plus-blue.e8021e51.svg": { - filename: "static/media/plus-blue.e8021e51.svg", - contenttype: "image/svg+xml", - offset: 196237, - len: 190, - }, - "static/media/plus-grey.d8e0be7d.svg": { - filename: "static/media/plus-grey.d8e0be7d.svg", - contenttype: "image/svg+xml", - offset: 288875, - len: 190, - }, - "static/media/portisIcon.b234b2bf.png": { - filename: "static/media/portisIcon.b234b2bf.png", - contenttype: "image/png", - offset: 274076, - len: 13865, - }, - "static/media/question-mark.1ae4d9f4.svg": { - filename: "static/media/question-mark.1ae4d9f4.svg", - contenttype: "image/svg+xml", - offset: 175817, - len: 818, - }, - "static/media/question.cc0a2451.svg": { - filename: "static/media/question.cc0a2451.svg", - contenttype: "image/svg+xml", - offset: 288105, - len: 770, - }, - "static/media/spinner.be00fc4a.svg": { - filename: "static/media/spinner.be00fc4a.svg", - contenttype: "image/svg+xml", - offset: 47533, - len: 694, - }, - "static/media/trustWallet.edcc1ab5.png": { - filename: "static/media/trustWallet.edcc1ab5.png", - contenttype: "image/png", - offset: 176635, - len: 19602, - }, - "static/media/walletConnectIcon.8215855c.svg": { - filename: "static/media/walletConnectIcon.8215855c.svg", - contenttype: "image/svg+xml", - offset: 48227, - len: 13373, - }, - "static/media/x.5b8e2186.svg": { - filename: "static/media/x.5b8e2186.svg", - contenttype: "image/svg+xml", - offset: 196427, - len: 299, - }, - }, - }, - headers: { - "skynet-skylink": "EADWpKD0myqH2tZa6xtKebg6kNnwYnI94fl4R8UKgNrmOA", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -const developMomentumBodyHash = "08e96877dd6c99c3e1d98105f2fd9df377b53d65"; -const developMomentumMetadata = require("../fixtures/developMomentumMetadata.json"); - -// developMomentumCheck returns the result of trying to download the skylink -// for the Develop Momentum Application -function developMomentumCheck(done) { - const linkInfo = { - name: "Develop Momentum Index File", - skylink: "EAA1fG_ip4C1Vi1Ijvsr1oyr8jpH0Bo9HXya0T3kw-elGw/", - bodyHash: developMomentumBodyHash, - // metadata: developMomentumMetadata, - headers: { - "skynet-skylink": "EAA1fG_ip4C1Vi1Ijvsr1oyr8jpH0Bo9HXya0T3kw-elGw", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// developMomentumRedirectCheck returns the result of trying to download the skylink -// for the Develop Momentum Application without the tailing slash -function developMomentumRedirectCheck(done) { - const linkInfo = { - name: "Develop Momentum Index File - no trailing slash", - skylink: "EAA1fG_ip4C1Vi1Ijvsr1oyr8jpH0Bo9HXya0T3kw-elGw", - bodyHash: developMomentumBodyHash, - metadata: developMomentumMetadata, - headers: { - "skynet-skylink": "EAA1fG_ip4C1Vi1Ijvsr1oyr8jpH0Bo9HXya0T3kw-elGw", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// developMomentumIndexFileCheck returns the result of trying to download the skylink -// for the Develop Momentum Application with a trailing /index.html -function developMomentumIndexFileCheck(done) { - const linkInfo = { - name: "Develop Momentum Index File", - skylink: "EAA1fG_ip4C1Vi1Ijvsr1oyr8jpH0Bo9HXya0T3kw-elGw/index.html", - bodyHash: developMomentumBodyHash, - headers: { - "skynet-skylink": "EAA1fG_ip4C1Vi1Ijvsr1oyr8jpH0Bo9HXya0T3kw-elGw", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// htmlExampleCheck returns the result of trying to download the skylink -// for the Example HTML file on siasky.net -function htmlExampleCheck(done) { - const linkInfo = { - name: "HTML Example", - skylink: "PAL0w4SdA5rFCDGEutgpeQ50Om-YkBabtXVOJAkmedslKw", - bodyHash: "ecffcfbb74e017698cad30a91a74b9ba0b046413", - metadata: { filename: "introduction – Sia API Documentation.html" }, - headers: { - "skynet-skylink": "PAL0w4SdA5rFCDGEutgpeQ50Om-YkBabtXVOJAkmedslKw", - "content-disposition": 'inline; filename="introduction â\x80\x93 Sia API Documentation.html"', - "content-type": "text/html; charset=utf-8", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// imageExampleCheck returns the result of trying to download the skylink -// for the Example image on siasky.net -function imageExampleCheck(done) { - const linkInfo = { - name: "Image Example", - skylink: "IADUs8d9CQjUO34LmdaaNPK_STuZo24rpKVfYW3wPPM2uQ", - bodyHash: "e318667a9d53a45a9d010ac4e0d120ad064279ac", - metadata: { filename: "sia-lm.png" }, - headers: { - "skynet-skylink": "IADUs8d9CQjUO34LmdaaNPK_STuZo24rpKVfYW3wPPM2uQ", - "content-disposition": 'inline; filename="sia-lm.png"', - "content-type": "image/png", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// jsonExampleCheck returns the result of trying to download the skylink -// for the Example JSON file on siasky.net -function jsonExampleCheck(done) { - const linkInfo = { - name: "JSON Example", - skylink: "AAC0uO43g64ULpyrW0zO3bjEknSFbAhm8c-RFP21EQlmSQ", - bodyHash: "b514603ce8acd937197712700e21259f18a857d6", - metadata: { filename: "consensus.json" }, - headers: { - "skynet-skylink": "AAC0uO43g64ULpyrW0zO3bjEknSFbAhm8c-RFP21EQlmSQ", - "content-disposition": 'inline; filename="consensus.json"', - "content-type": "application/json", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// pdfExampleCheck returns the result of trying to download the skylink -// for the Example PDF file on siasky.net -function pdfExampleCheck(done) { - const linkInfo = { - name: "PDF Example", - skylink: "XABvi7JtJbQSMAcDwnUnmp2FKDPjg8_tTTFP4BwMSxVdEg", - bodyHash: "7e079f7afc9e5bc0c1be04543e22ac552a14a8da", - metadata: { filename: "sia.pdf" }, - headers: { - "skynet-skylink": "XABvi7JtJbQSMAcDwnUnmp2FKDPjg8_tTTFP4BwMSxVdEg", - "content-disposition": 'inline; filename="sia.pdf"', - "content-type": "application/pdf", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// skyBayCheck returns the result of trying to download the skylink for the SkyBay Application. -function skyBayCheck(done) { - const linkInfo = { - name: "SkyBay", - skylink: "EABkMjXzxJRpPz0eO0Or5fy2eo-rz3prdigGwRlyNd9mwA/", - bodyHash: "dfc0b1d3d1113254d7545d19f6118855ed9c778b", - metadata: { - filename: "skybay.html", - subfiles: { "skybay.html": { filename: "skybay.html", contenttype: "text/html", len: 11655 } }, - }, - headers: { - "skynet-skylink": "EABkMjXzxJRpPz0eO0Or5fy2eo-rz3prdigGwRlyNd9mwA", - "content-disposition": 'inline; filename="skybay.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// skyBayRedirectCheck returns the result of trying to download the skylink -// for the SkyBay Application with no trailing slash. -function skyBayRedirectCheck(done) { - const linkInfo = { - name: "SkyBay Redirect", - skylink: "EABkMjXzxJRpPz0eO0Or5fy2eo-rz3prdigGwRlyNd9mwA", - bodyHash: "dfc0b1d3d1113254d7545d19f6118855ed9c778b", - metadata: { - filename: "skybay.html", - subfiles: { "skybay.html": { filename: "skybay.html", contenttype: "text/html", len: 11655 } }, - }, - headers: { - "skynet-skylink": "EABkMjXzxJRpPz0eO0Or5fy2eo-rz3prdigGwRlyNd9mwA", - "content-disposition": 'inline; filename="skybay.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// skyBinCheck returns the result of trying to download the skylink for the SkyBin Application. -function skyBinCheck(done) { - const linkInfo = { - name: "SkyBin", - skylink: "CAAVU14pB9GRIqCrejD7rlS27HltGGiiCLICzmrBV0wVtA/", - bodyHash: "858ff733c4cb06a80060b8a62cf303fd5a051651", - metadata: { filename: "skybin.html" }, - headers: { - "skynet-skylink": "CAAVU14pB9GRIqCrejD7rlS27HltGGiiCLICzmrBV0wVtA", - "content-disposition": 'inline; filename="skybin.html"', - "content-type": "text/html; charset=utf-8", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// skyBinRedirectCheck returns the result of trying to download the skylink -// for the SkyBin Application with no trailing slash. -function skyBinRedirectCheck(done) { - const linkInfo = { - name: "SkyBin Redirect", - skylink: "CAAVU14pB9GRIqCrejD7rlS27HltGGiiCLICzmrBV0wVtA", - bodyHash: "858ff733c4cb06a80060b8a62cf303fd5a051651", - metadata: { filename: "skybin.html" }, - headers: { - "skynet-skylink": "CAAVU14pB9GRIqCrejD7rlS27HltGGiiCLICzmrBV0wVtA", - "content-disposition": 'inline; filename="skybin.html"', - "content-type": "text/html; charset=utf-8", - }, - }; - - skylinkVerification(done, linkInfo); -} - -const skyGalleryBodyHash = "cb5905023a29bdd60d58817f26503345c9a1bd09"; -const skyGalleryMetadata = require("../fixtures/skygalleryMetadata.json"); - -// skyGalleryCheck returns the result of trying to download the skylink for the SkyGallery Application. -function skyGalleryCheck(done) { - const linkInfo = { - name: "SkyGallery", - skylink: "AADW6GsQcetwDBaDYnGCSTbYjSKY743NtY1A5VRx5sj3Dg/", - bodyHash: skyGalleryBodyHash, - metadata: skyGalleryMetadata, - headers: { - "skynet-skylink": "AADW6GsQcetwDBaDYnGCSTbYjSKY743NtY1A5VRx5sj3Dg", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// skyGalleryIndexFileCheck returns the result of trying to download the skylink -// for the SkyGallery Application with a trailing /index.html -function skyGalleryIndexFileCheck(done) { - const linkInfo = { - name: "SkyGallery Index File", - skylink: "AADW6GsQcetwDBaDYnGCSTbYjSKY743NtY1A5VRx5sj3Dg/index.html", - bodyHash: skyGalleryBodyHash, - headers: { - "skynet-skylink": "AADW6GsQcetwDBaDYnGCSTbYjSKY743NtY1A5VRx5sj3Dg", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// skyGalleryRedirectCheck returns the result of trying to download the skylink -// for the SkyGallery Application with no trailing slash. -function skyGalleryRedirectCheck(done) { - const linkInfo = { - name: "SkyGallery Redirect", - skylink: "AADW6GsQcetwDBaDYnGCSTbYjSKY743NtY1A5VRx5sj3Dg", - bodyHash: skyGalleryBodyHash, - metadata: skyGalleryMetadata, - headers: { - "skynet-skylink": "AADW6GsQcetwDBaDYnGCSTbYjSKY743NtY1A5VRx5sj3Dg", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// uncensoredLibraryCheck returns the result of trying to download the skylink -// for the uncensored library skylink -function uncensoredLibraryCheck(done) { - const linkInfo = { - name: "Unzip The Uncensored Library Map", - skylink: "AAC5glnZyNJ4Ieb4MhnYJGtID6qdMqEjl0or5EvEMt7bWQ", - bodyHash: "cd0377661eefd656c8b46c497aa03112393ba893", - metadata: { - filename: "Unzip_The_Uncensored_Library_Map.zip", - subfiles: { - "Unzip_The_Uncensored_Library_Map.zip": { - filename: "Unzip_The_Uncensored_Library_Map.zip", - contenttype: "application/zip", - len: 76744822, - }, - }, - }, - headers: { - "skynet-skylink": "AAC5glnZyNJ4Ieb4MhnYJGtID6qdMqEjl0or5EvEMt7bWQ", - "content-disposition": 'inline; filename="Unzip_The_Uncensored_Library_Map.zip"', - "content-type": "application/zip", - }, - }; - - skylinkVerification(done, linkInfo); -} - -function uncensoredLibraryPressReleaseCheck(done) { - const linkInfo = { - name: "The Uncensored Library - Press Release", - skylink: "AABHwuml_EhvyY8Gm7j1E2xGwodUNAJgX0A6-Cd22p9kNA", - bodyHash: "da39a3ee5e6b4b0d3255bfef95601890afd80709", - metadata: { - filename: "press-release-Reporters-Without-Borders-The-Uncensored-Library.zip", - subfiles: { - "press-release-Reporters-Without-Borders-The-Uncensored-Library.zip": { - filename: "press-release-Reporters-Without-Borders-The-Uncensored-Library.zip", - contenttype: "application/zip", - len: 383501533, - }, - }, - }, - headers: { - "skynet-skylink": "AABHwuml_EhvyY8Gm7j1E2xGwodUNAJgX0A6-Cd22p9kNA", - "content-disposition": 'inline; filename="press-release-Reporters-Without-Borders-The-Uncensored-Library.zip"', - "content-type": "application/zip", - }, - }; - - // request too large, use head just to verify the headers - skylinkVerification(done, linkInfo, { method: "head" }); -} - -function uncensoredLibraryV2Check(done) { - const linkInfo = { - name: "The Uncensored Library V2", - skylink: "AAAs-JOsRGWgABYIo7AwTDqSX79-BxQKjDj0wiRGoRPFnw", - bodyHash: "f2a802c2b7482825613a08853538203a53c96bd1", - metadata: { - filename: "The Uncensored Library V2.zip", - subfiles: { - "The Uncensored Library V2.zip": { - filename: "The Uncensored Library V2.zip", - contenttype: "application/zip", - len: 101262134, - }, - }, - }, - headers: { - "skynet-skylink": "AAAs-JOsRGWgABYIo7AwTDqSX79-BxQKjDj0wiRGoRPFnw", - "content-disposition": 'inline; filename="The Uncensored Library V2.zip"', - "content-type": "application/zip", - }, - }; - - skylinkVerification(done, linkInfo); -} - -function bitcoinWhitepaper(done) { - skylinkVerification(done, { - name: "Bitcoin Whitepaper", - skylink: "3ACpC9Umme41zlWUgMQh1fw0sNwgWwyfDDhRQ9Sppz9hjQ", - bodyHash: "8de2fdb04edce612738eb51e14ecc426381f8ed8", - headers: { - "skynet-skylink": "3ACpC9Umme41zlWUgMQh1fw0sNwgWwyfDDhRQ9Sppz9hjQ", - "content-disposition": 'inline; filename="bitcoin.pdf"', - "content-type": "application/pdf", - }, - }); -} - -const uniswapBodyHash = "3965f9a7def085b3a764ddc76a528eda38d72359"; -const uniswapMetadata = require("../fixtures/uniswapMetadata.json"); - -// uniswapCheck returns the result of trying to download the skylink -// for the Uniswap Application -function uniswapCheck(done) { - const linkInfo = { - name: "Uniswap", - skylink: "IAC6CkhNYuWZqMVr1gob1B6tPg4MrBGRzTaDvAIAeu9A9w/", - bodyHash: uniswapBodyHash, - metadata: uniswapMetadata, - }; - - skylinkVerification(done, linkInfo); -} - -// uniswapRedirectCheck returns the result of trying to download the skylink -// for the Uniswap Application without a trailing slash -function uniswapRedirectCheck(done) { - const linkInfo = { - name: "Uniswap", - skylink: "IAC6CkhNYuWZqMVr1gob1B6tPg4MrBGRzTaDvAIAeu9A9w", - bodyHash: uniswapBodyHash, - metadata: uniswapMetadata, - }; - - skylinkVerification(done, linkInfo); -} - -// uniswapIndexFileCheck returns the result of trying to download the skylink -// for the Uniswap Application with a trailing /index.html -function uniswapIndexFileCheck(done) { - const linkInfo = { - name: "Uniswap Skylink Index File", - skylink: "IAC6CkhNYuWZqMVr1gob1B6tPg4MrBGRzTaDvAIAeu9A9w/index.html", - bodyHash: uniswapBodyHash, - metadata: { - filename: "/index.html", - length: 3268, - subfiles: { "index.html": { filename: "index.html", contenttype: "text/html", len: 3268 } }, - }, - }; - - skylinkVerification(done, linkInfo); -} - -// uniswapHNSCheck returns the result of trying to download the skylink -// for the Uniswap Application with the HNS domain -function uniswapHNSCheck(done) { - const linkInfo = { - name: "Uniswap HNS", - skylink: "hns/uniswap-dex/", - bodyHash: uniswapBodyHash, - metadata: uniswapMetadata, - }; - - skylinkVerification(done, linkInfo); -} - -// uniswapHNSRedirectCheck returns the result of trying to download the skylink -// for the Uniswap Application with the HNS domain and without a trailing slash -function uniswapHNSRedirectCheck(done) { - const linkInfo = { - name: "Uniswap HNS Redirect", - skylink: "hns/uniswap-dex", - bodyHash: uniswapBodyHash, - metadata: uniswapMetadata, - }; - - skylinkVerification(done, linkInfo); -} - -// uniswapHNSResolverCheck returns the result of trying to download the skylink -// for the Uniswap Application via the HNS resolver endpoint -function uniswapHNSResolverCheck(done) { - const linkInfo = { - name: "Uniswap HNS Resolver", - skylink: "hnsres/uniswap-dex/", - bodyHash: "3634496800c254b93f9dcbca2aeb53e644f706c0", - }; - - skylinkVerification(done, linkInfo); -} - -// uniswapHNSResolverRedirectCheck returns the result of trying to download the skylink -// for the Uniswap Application via the HNS resolver endpoint without the -// trailing slash -function uniswapHNSResolverRedirectCheck(done) { - const linkInfo = { - name: "Uniswap HNS Resolver Redirect", - skylink: "hnsres/uniswap-dex", - bodyHash: "3634496800c254b93f9dcbca2aeb53e644f706c0", - }; - - skylinkVerification(done, linkInfo); -} - -// check whether content disposition is set correctly for downloads -function fileEndpointCheck(done) { - const linkInfo = { - name: "File endpoint check", - skylink: "file/XABvi7JtJbQSMAcDwnUnmp2FKDPjg8_tTTFP4BwMSxVdEg", - bodyHash: "7e079f7afc9e5bc0c1be04543e22ac552a14a8da", - // metadata: { filename: "sia2.pdf" }, - headers: { - "skynet-skylink": "XABvi7JtJbQSMAcDwnUnmp2FKDPjg8_tTTFP4BwMSxVdEg", - "content-disposition": 'attachment; filename="sia.pdf"', - "content-type": "application/pdf", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// check whether hns/note-to-self would properly redirect to note-to-self/ -function hnsEndpointDirectoryRedirect(done) { - const expected = { - name: "hns endpoint directory redirect", - skylink: "hns/note-to-self", - statusCode: 308, - headers: { - location: "note-to-self/", - }, - }; - - skylinkVerification(done, expected, { followRedirect: false }); -} - -function skappSkySend(done) { - skylinkVerification(done, { - name: "skysend.hns", - source: "https://github.com/redsolver/skysend/", - skylink: "GADlWH3ALR2g1cDUBI6Ti8B22iD7R5dfn_8jLfq-atm5iw", - bodyHash: "35bc25301501a3b28913ca7a7a06120681365a9c", - headers: { - "skynet-skylink": "GADlWH3ALR2g1cDUBI6Ti8B22iD7R5dfn_8jLfq-atm5iw", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }); -} - -function skappNoteToSelf(done) { - skylinkVerification(done, { - name: "note-to-self.hns", - source: "https://github.com/kwypchlo/note-to-self/", - skylink: "EAD_w2YcqtpqVgtRwKXPno9VmKfTcVG3E_OIL-Np_Hz_1g", - bodyHash: "e00c1b7348dd419e96bf3c188185a5fb8d04af53", - headers: { - "skynet-skylink": "EAD_w2YcqtpqVgtRwKXPno9VmKfTcVG3E_OIL-Np_Hz_1g", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }); -} - -function skappUniswap(done) { - skylinkVerification(done, { - name: "uniswap skynet labs fork", - source: "https://github.com/SkynetLabs/uniswap-interface/", - skylink: "OAAy4_g9EYfuOiUZlz_irkoPgsc_seAjgGozerrT1QvE5A", - bodyHash: "db2882b7902f24d62e49905b77d536aaf7b7da75", - headers: { - "skynet-skylink": "OAAy4_g9EYfuOiUZlz_irkoPgsc_seAjgGozerrT1QvE5A", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }); -} - -function skappHackerPaste(done) { - skylinkVerification(done, { - name: "hackerpaste.hns", - source: "https://github.com/harej/hackerpaste/", - skylink: "_AGZuZCyRn5kZMFHBssWYc20poXyez1XMO6hmPqAVcM1qg", - bodyHash: "12817ac933b7f64fc63ae24a652132ed11e5b622", - headers: { - "skynet-skylink": "_AGZuZCyRn5kZMFHBssWYc20poXyez1XMO6hmPqAVcM1qg", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }); -} - -function skappHowAboutSkapp(done) { - skylinkVerification(done, { - name: "tirthahalli.hns", - source: "-", - skylink: "AAAsdvGalu2Fj9P5zLvZhfwoI0CpXeO_kPMSG_YU1PSIWg", - bodyHash: "734c49ddde2a49ac6ddbf1c6d90a014ff82e2f87", - headers: { - "skynet-skylink": "AAAsdvGalu2Fj9P5zLvZhfwoI0CpXeO_kPMSG_YU1PSIWg", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }); -} - -function skappSkyDeploy(done) { - skylinkVerification(done, { - name: "sky-deploy.hns", - source: "-", - skylink: "CABR1ic_lIPaN9JYLG6AiudkW5GShRd-Cr6Wkjur7z29Rw", - bodyHash: "b2b0498a8a7f6fcfe76c29ae1a1176b4e64cb5ab", - headers: { - "skynet-skylink": "CABR1ic_lIPaN9JYLG6AiudkW5GShRd-Cr6Wkjur7z29Rw", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }); -} - -function parseHeaderString(header) { - try { - return JSON.parse(header); - } catch { - return header; - } -} - -// skylinkVerification verifies a skylink against provided information. -async function skylinkVerification(done, expected, { followRedirect = true, method = "get" } = {}) { - const authCookie = await getAuthCookie(); - const time = process.hrtime(); - const details = { name: expected.name, skylink: expected.skylink }; - - try { - const query = `https://${process.env.PORTAL_DOMAIN}/${expected.skylink}`; - const response = await got[method](query, { followRedirect, headers: { cookie: `nocache=true;${authCookie}` } }); - const entry = { ...details, up: true, statusCode: response.statusCode, time: calculateElapsedTime(time) }; - const info = {}; - - if (expected.statusCode && expected.statusCode !== response.statusCode) { - entry.up = false; - info.statusCode = { expected: expected.statusCode, current: response.statusCode }; - } - - // Check if the response body is valid by checking against the known hash - if ("bodyHash" in expected) { - const currentBodyHash = hasha(response.rawBody, { algorithm: "sha1" }); - if (currentBodyHash !== expected.bodyHash) { - entry.up = false; - info.bodyHash = { expected: expected.bodyHash, current: currentBodyHash }; - } - } - - if (expected.headers) { - Object.entries(expected.headers).forEach(([headerName, expectedHeader]) => { - const currentHeader = parseHeaderString(response.headers[headerName]); - if (!isEqual(currentHeader, expectedHeader)) { - entry.up = false; - info.headers = info.headers ?? {}; - if (typeof currentHeader === "object") { - info.headers[headerName] = ensureValidJSON(detailedDiff(expectedHeader, currentHeader)); - } else { - info.headers[headerName] = { expected: expectedHeader, current: currentHeader }; - } - } - }); - } - - if (expected.metadata && expected.skylink) { - const skylink = parseSkylink(expected.skylink); - const url = `https://${process.env.PORTAL_DOMAIN}/skynet/metadata/${skylink}`; - try { - const metadata = await got(url, { headers: { cookie: `nocache=true;${authCookie}` } }).json(); - if (!isEqual(expected.metadata, metadata)) { - entry.up = false; - info.metadata = { url, diff: ensureValidJSON(detailedDiff(expected.metadata, metadata)) }; - } - } catch (error) { - entry.up = false; - info.metadata = { - url, - ip: error?.response?.ip ?? null, - statusCode: error?.response?.statusCode || error.statusCode || error.status, - errorMessage: error.message, - errorResponseContent: getResponseContent(error.response), - }; - } - } - - if (Object.keys(info).length) entry.info = info; // add info only if it exists - - done(entry); // Return the entry information - } catch (error) { - done({ - ...details, - up: false, - ip: error?.response?.ip ?? null, - statusCode: error?.response?.statusCode || error.statusCode || error.status, - errorMessage: error.message, - errorResponseContent: getResponseContent(error.response), - time: calculateElapsedTime(time), - }); - } -} - -module.exports = [ - audioExampleCheck, - covid19PaperCheck, - covid19CoroNopePaperCheck, - dappExampleCheck, - developMomentumIndexFileCheck, - developMomentumCheck, - developMomentumRedirectCheck, - htmlExampleCheck, - imageExampleCheck, - jsonExampleCheck, - pdfExampleCheck, - skyBayCheck, - skyBayRedirectCheck, - skyBinCheck, - skyBinRedirectCheck, - skyGalleryCheck, - skyGalleryIndexFileCheck, - skyGalleryRedirectCheck, - uncensoredLibraryCheck, - uncensoredLibraryPressReleaseCheck, - uncensoredLibraryV2Check, - fileEndpointCheck, - bitcoinWhitepaper, - // uniswapIndexFileCheck, - // uniswapCheck, - // uniswapRedirectCheck, - // uniswapHNSCheck, - // uniswapHNSRedirectCheck, - uniswapHNSResolverCheck, - uniswapHNSResolverRedirectCheck, - hnsEndpointDirectoryRedirect, - skappSkySend, - skappNoteToSelf, - skappUniswap, - skappHackerPaste, - skappHowAboutSkapp, - skappSkyDeploy, -]; diff --git a/packages/health-check/src/checks/middleware.js b/packages/health-check/src/checks/middleware.js deleted file mode 100644 index 98ad71e1..00000000 --- a/packages/health-check/src/checks/middleware.js +++ /dev/null @@ -1,45 +0,0 @@ -const got = require("got"); -const { ipCheckService, ipRegex } = require("../utils"); - -const getCurrentAddress = async () => { - // use serverip env variable when available (set via Dockerfile) - if (process.env.serverip) { - if (ipRegex.test(process.env.serverip)) return process.env.serverip; - - // log error to console for future reference but do not break - console.log(`Environment variable serverip contains invalid ip: "${process.env.serverip}"`); - } - - try { - const { body } = await got(`http://${ipCheckService}`); - if (ipRegex.test(body)) { - console.info(`Server public ip: ${body} (source: ${ipCheckService})`); - - return body; - } - - throw new Error(`${ipCheckService} responded with invalid ip: "${body}"`); - } catch (error) { - console.log(error.message); // log error to console for future reference - - return null; - } -}; - -module.exports = async function middleware() { - const ip = await getCurrentAddress(); - - return (check) => { - // check only if current ip and check ip are provided - if (ip && check.ip && check.ip !== ip) { - check.up = false; - check.errors = check.errors ?? []; - check.errors.push({ - message: "Response ip was different than current server ip - possibly there was an error with routing request", - data: { response: check.ip, server: ip }, - }); - } - - return check; - }; -}; diff --git a/packages/health-check/src/db.js b/packages/health-check/src/db.js deleted file mode 100644 index d7e47708..00000000 --- a/packages/health-check/src/db.js +++ /dev/null @@ -1,12 +0,0 @@ -const fs = require("graceful-fs"); -const low = require("lowdb"); -const FileSyncAtomic = require("./adapters/FileSyncAtomic"); - -if (!fs.existsSync(process.env.STATE_DIR)) fs.mkdirSync(process.env.STATE_DIR); - -const adapter = new FileSyncAtomic(`${process.env.STATE_DIR}/state.json`); -const db = low(adapter); - -db.defaults({ disabled: false, critical: [], extended: [] }).write(); - -module.exports = db; diff --git a/packages/health-check/src/fixtures/developMomentumMetadata.json b/packages/health-check/src/fixtures/developMomentumMetadata.json deleted file mode 100644 index dec5b298..00000000 --- a/packages/health-check/src/fixtures/developMomentumMetadata.json +++ /dev/null @@ -1,322 +0,0 @@ -{ - "filename": "output", - "subfiles": { - ".well-known/brave-rewards-verification.txt": { - "filename": ".well-known/brave-rewards-verification.txt", - "contenttype": "text/plain", - "len": 154 - }, - "404.html": { "filename": "404.html", "contenttype": "text/html", "offset": 154, "len": 5482 }, - "assets/bootstrap/bootstrap-grid.css": { - "filename": "assets/bootstrap/bootstrap-grid.css", - "contenttype": "text/css", - "offset": 5636, - "len": 49901 - }, - "assets/bootstrap/bootstrap-reboot.css": { - "filename": "assets/bootstrap/bootstrap-reboot.css", - "contenttype": "text/css", - "offset": 55537, - "len": 4187 - }, - "assets/bootstrap/bootstrap.css": { - "filename": "assets/bootstrap/bootstrap.css", - "contenttype": "text/css", - "offset": 59724, - "len": 172594 - }, - "assets/css/styles.css": { - "filename": "assets/css/styles.css", - "contenttype": "text/css", - "offset": 232318, - "len": 4887 - }, - "assets/fonts/dm-serif-display-v4-latin-regular.woff": { - "filename": "assets/fonts/dm-serif-display-v4-latin-regular.woff", - "contenttype": "application/font-woff", - "offset": 237205, - "len": 29916 - }, - "assets/fonts/dm-serif-display-v4-latin-regular.woff2": { - "filename": "assets/fonts/dm-serif-display-v4-latin-regular.woff2", - "contenttype": "application/octet-stream", - "offset": 267121, - "len": 24980 - }, - "assets/fonts/open-sans-v16-latin-regular.woff": { - "filename": "assets/fonts/open-sans-v16-latin-regular.woff", - "contenttype": "application/font-woff", - "offset": 292101, - "len": 18100 - }, - "assets/fonts/open-sans-v16-latin-regular.woff2": { - "filename": "assets/fonts/open-sans-v16-latin-regular.woff2", - "contenttype": "application/octet-stream", - "offset": 310201, - "len": 14380 - }, - "assets/fonts/questrial-v9-latin-regular.woff": { - "filename": "assets/fonts/questrial-v9-latin-regular.woff", - "contenttype": "application/font-woff", - "offset": 324581, - "len": 23048 - }, - "assets/fonts/questrial-v9-latin-regular.woff2": { - "filename": "assets/fonts/questrial-v9-latin-regular.woff2", - "contenttype": "application/octet-stream", - "offset": 347629, - "len": 13776 - }, - "assets/images/blog/2a40df99-1847-4726-9c5b-af4779eeb667-w1920-h1440.jpg": { - "filename": "assets/images/blog/2a40df99-1847-4726-9c5b-af4779eeb667-w1920-h1440.jpg", - "contenttype": "image/jpeg", - "offset": 361405, - "len": 79551 - }, - "assets/images/blog/2a40df99-1847-4726-9c5b-af4779eeb667-w960-h720.jpg": { - "filename": "assets/images/blog/2a40df99-1847-4726-9c5b-af4779eeb667-w960-h720.jpg", - "contenttype": "image/jpeg", - "offset": 440956, - "len": 31700 - }, - "assets/images/blog/2a40df99-1847-4726-9c5b-af4779eeb667.jpg": { - "filename": "assets/images/blog/2a40df99-1847-4726-9c5b-af4779eeb667.jpg", - "contenttype": "image/jpeg", - "offset": 472656, - "len": 69094 - }, - "assets/images/blog/512e4dd1-6b3d-41aa-80a1-b96c3370b3c3-w1920-h1440.jpg": { - "filename": "assets/images/blog/512e4dd1-6b3d-41aa-80a1-b96c3370b3c3-w1920-h1440.jpg", - "contenttype": "image/jpeg", - "offset": 541750, - "len": 219602 - }, - "assets/images/blog/512e4dd1-6b3d-41aa-80a1-b96c3370b3c3-w960-h720.jpg": { - "filename": "assets/images/blog/512e4dd1-6b3d-41aa-80a1-b96c3370b3c3-w960-h720.jpg", - "contenttype": "image/jpeg", - "offset": 761352, - "len": 67741 - }, - "assets/images/blog/512e4dd1-6b3d-41aa-80a1-b96c3370b3c3.jpg": { - "filename": "assets/images/blog/512e4dd1-6b3d-41aa-80a1-b96c3370b3c3.jpg", - "contenttype": "image/jpeg", - "offset": 829093, - "len": 226910 - }, - "assets/images/blog/823a7764-af7c-4687-a42e-bd70768068ab-w1920-h1440.jpg": { - "filename": "assets/images/blog/823a7764-af7c-4687-a42e-bd70768068ab-w1920-h1440.jpg", - "contenttype": "image/jpeg", - "offset": 1056003, - "len": 258292 - }, - "assets/images/blog/823a7764-af7c-4687-a42e-bd70768068ab-w960-h720.jpg": { - "filename": "assets/images/blog/823a7764-af7c-4687-a42e-bd70768068ab-w960-h720.jpg", - "contenttype": "image/jpeg", - "offset": 1314295, - "len": 93250 - }, - "assets/images/blog/823a7764-af7c-4687-a42e-bd70768068ab.jpg": { - "filename": "assets/images/blog/823a7764-af7c-4687-a42e-bd70768068ab.jpg", - "contenttype": "image/jpeg", - "offset": 1407545, - "len": 236722 - }, - "assets/images/blog/9aeea0d6-737c-4be8-8b63-5ec38cbf394b-w1920-h1440.jpg": { - "filename": "assets/images/blog/9aeea0d6-737c-4be8-8b63-5ec38cbf394b-w1920-h1440.jpg", - "contenttype": "image/jpeg", - "offset": 1644267, - "len": 285727 - }, - "assets/images/blog/9aeea0d6-737c-4be8-8b63-5ec38cbf394b-w960-h720.jpg": { - "filename": "assets/images/blog/9aeea0d6-737c-4be8-8b63-5ec38cbf394b-w960-h720.jpg", - "contenttype": "image/jpeg", - "offset": 1929994, - "len": 115524 - }, - "assets/images/blog/9aeea0d6-737c-4be8-8b63-5ec38cbf394b.jpg": { - "filename": "assets/images/blog/9aeea0d6-737c-4be8-8b63-5ec38cbf394b.jpg", - "contenttype": "image/jpeg", - "offset": 2045518, - "len": 338905 - }, - "assets/images/blog/a1ee6dcf-55ef-43cd-ae05-682d2e28e932-w1920-h1440.jpg": { - "filename": "assets/images/blog/a1ee6dcf-55ef-43cd-ae05-682d2e28e932-w1920-h1440.jpg", - "contenttype": "image/jpeg", - "offset": 2384423, - "len": 66608 - }, - "assets/images/blog/a1ee6dcf-55ef-43cd-ae05-682d2e28e932-w960-h720.jpg": { - "filename": "assets/images/blog/a1ee6dcf-55ef-43cd-ae05-682d2e28e932-w960-h720.jpg", - "contenttype": "image/jpeg", - "offset": 2451031, - "len": 23239 - }, - "assets/images/blog/a1ee6dcf-55ef-43cd-ae05-682d2e28e932.jpg": { - "filename": "assets/images/blog/a1ee6dcf-55ef-43cd-ae05-682d2e28e932.jpg", - "contenttype": "image/jpeg", - "offset": 2474270, - "len": 82334 - }, - "assets/images/blog/content/17343f27-a62f-4193-a0e5-4190d948eb2e.png": { - "filename": "assets/images/blog/content/17343f27-a62f-4193-a0e5-4190d948eb2e.png", - "contenttype": "image/png", - "offset": 2556604, - "len": 8571 - }, - "assets/images/blog/content/1748cc9c-9ea0-47b8-a110-ad3a114408d1.png": { - "filename": "assets/images/blog/content/1748cc9c-9ea0-47b8-a110-ad3a114408d1.png", - "contenttype": "image/png", - "offset": 2565175, - "len": 19776 - }, - "assets/images/blog/content/27b98c5e-ba57-47e6-9fe7-9b82fb89868b.jpg": { - "filename": "assets/images/blog/content/27b98c5e-ba57-47e6-9fe7-9b82fb89868b.jpg", - "contenttype": "image/jpeg", - "offset": 2584951, - "len": 68054 - }, - "assets/images/blog/content/39374de9-f24a-46f6-9955-982687607c6d.png": { - "filename": "assets/images/blog/content/39374de9-f24a-46f6-9955-982687607c6d.png", - "contenttype": "image/png", - "offset": 2653005, - "len": 30305 - }, - "assets/images/blog/content/5c660f5c-04fb-46cd-9846-edccb9a7b778.jpg": { - "filename": "assets/images/blog/content/5c660f5c-04fb-46cd-9846-edccb9a7b778.jpg", - "contenttype": "image/jpeg", - "offset": 2683310, - "len": 10409 - }, - "assets/images/blog/content/5cb6fb87-75d0-4aa4-99c7-b7815ca7ea70.png": { - "filename": "assets/images/blog/content/5cb6fb87-75d0-4aa4-99c7-b7815ca7ea70.png", - "contenttype": "image/png", - "offset": 2693719, - "len": 123977 - }, - "assets/images/blog/content/765827f6-192b-48c9-b3e1-cb7b33e3b881.png": { - "filename": "assets/images/blog/content/765827f6-192b-48c9-b3e1-cb7b33e3b881.png", - "contenttype": "image/png", - "offset": 2817696, - "len": 110297 - }, - "assets/images/blog/content/7b39a2f8-8060-43e7-a439-43f799d3e069.jpg": { - "filename": "assets/images/blog/content/7b39a2f8-8060-43e7-a439-43f799d3e069.jpg", - "contenttype": "image/jpeg", - "offset": 2927993, - "len": 24372 - }, - "assets/images/blog/content/8af4faff-e011-4e31-ba28-5023f65d1003.png": { - "filename": "assets/images/blog/content/8af4faff-e011-4e31-ba28-5023f65d1003.png", - "contenttype": "image/png", - "offset": 2952365, - "len": 106400 - }, - "assets/images/blog/content/ae29cd58-f28f-4a0e-bffb-a7e4e1235797.png": { - "filename": "assets/images/blog/content/ae29cd58-f28f-4a0e-bffb-a7e4e1235797.png", - "contenttype": "image/png", - "offset": 3058765, - "len": 33357 - }, - "assets/images/blog/content/b3be6c1c-725a-4af2-a85f-e47e09bbceef.png": { - "filename": "assets/images/blog/content/b3be6c1c-725a-4af2-a85f-e47e09bbceef.png", - "contenttype": "image/png", - "offset": 3092122, - "len": 37074 - }, - "assets/images/blog/content/b4e772a3-effb-4a5d-82d9-db9596ccfe51.png": { - "filename": "assets/images/blog/content/b4e772a3-effb-4a5d-82d9-db9596ccfe51.png", - "contenttype": "image/png", - "offset": 3129196, - "len": 79662 - }, - "assets/images/blog/content/d2731109-b50f-4c1f-b4f9-7ab8cac196da.png": { - "filename": "assets/images/blog/content/d2731109-b50f-4c1f-b4f9-7ab8cac196da.png", - "contenttype": "image/png", - "offset": 3208858, - "len": 104535 - }, - "assets/images/blog/content/fed0e592-d063-497b-9a3b-2bfc29b04d1a.jpg": { - "filename": "assets/images/blog/content/fed0e592-d063-497b-9a3b-2bfc29b04d1a.jpg", - "contenttype": "image/jpeg", - "offset": 3313393, - "len": 9535 - }, - "assets/images/blog/e4956336-3662-46ae-bea2-7fd3059919c3-w1920-h1440.jpg": { - "filename": "assets/images/blog/e4956336-3662-46ae-bea2-7fd3059919c3-w1920-h1440.jpg", - "contenttype": "image/jpeg", - "offset": 3322928, - "len": 402770 - }, - "assets/images/blog/e4956336-3662-46ae-bea2-7fd3059919c3-w960-h720.jpg": { - "filename": "assets/images/blog/e4956336-3662-46ae-bea2-7fd3059919c3-w960-h720.jpg", - "contenttype": "image/jpeg", - "offset": 3725698, - "len": 143539 - }, - "assets/images/blog/e4956336-3662-46ae-bea2-7fd3059919c3.jpg": { - "filename": "assets/images/blog/e4956336-3662-46ae-bea2-7fd3059919c3.jpg", - "contenttype": "image/jpeg", - "offset": 3869237, - "len": 375170 - }, - "assets/images/logo.svg": { - "filename": "assets/images/logo.svg", - "contenttype": "image/svg+xml", - "offset": 4244407, - "len": 2183 - }, - "assets/js/themes.js": { - "filename": "assets/js/themes.js", - "contenttype": "text/javascript", - "offset": 4246590, - "len": 779 - }, - "blog/building_a_web_farm_with_docker_and_raspberry_pi.html": { - "filename": "blog/building_a_web_farm_with_docker_and_raspberry_pi.html", - "contenttype": "text/html", - "offset": 4247369, - "len": 23111 - }, - "blog/continuously_deploy_a_static_website_with_azure_pipelines.html": { - "filename": "blog/continuously_deploy_a_static_website_with_azure_pipelines.html", - "contenttype": "text/html", - "offset": 4270480, - "len": 24738 - }, - "blog/decentralise_your_website_as_much_as_possible.html": { - "filename": "blog/decentralise_your_website_as_much_as_possible.html", - "contenttype": "text/html", - "offset": 4295218, - "len": 14825 - }, - "blog/developing_smart_contracts_for_business.html": { - "filename": "blog/developing_smart_contracts_for_business.html", - "contenttype": "text/html", - "offset": 4310043, - "len": 25783 - }, - "blog/getting_to_grips_with_jwt_in_asp_net_core.html": { - "filename": "blog/getting_to_grips_with_jwt_in_asp_net_core.html", - "contenttype": "text/html", - "offset": 4335826, - "len": 20915 - }, - "blog/index.html": { "filename": "blog/index.html", "contenttype": "text/html", "offset": 4356741, "len": 7345 }, - "blog/setting_up_an_asp_net_core_web_farm.html": { - "filename": "blog/setting_up_an_asp_net_core_web_farm.html", - "contenttype": "text/html", - "offset": 4364086, - "len": 11464 - }, - "favicon-16x16.png": { "filename": "favicon-16x16.png", "contenttype": "image/png", "offset": 4375550, "len": 430 }, - "favicon-32x32.png": { "filename": "favicon-32x32.png", "contenttype": "image/png", "offset": 4375980, "len": 540 }, - "favicon.ico": { "filename": "favicon.ico", "contenttype": "image/x-icon", "offset": 4376520, "len": 15086 }, - "feed.atom": { - "filename": "feed.atom", - "contenttype": "application/octet-stream", - "offset": 4391606, - "len": 95092 - }, - "index.html": { "filename": "index.html", "contenttype": "text/html", "offset": 4486698, "len": 4981 } - } -} diff --git a/packages/health-check/src/fixtures/skygalleryMetadata.json b/packages/health-check/src/fixtures/skygalleryMetadata.json deleted file mode 100644 index 525b8f57..00000000 --- a/packages/health-check/src/fixtures/skygalleryMetadata.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "filename": "skygallery-v0.1.1-76c4c115fcb526716b2564568850f433", - "subfiles": { - "css/app.84a130ed.css": { "filename": "css/app.84a130ed.css", "contenttype": "text/css", "len": 698 }, - "css/chunk-5ce44031.d4e78528.css": { - "filename": "css/chunk-5ce44031.d4e78528.css", - "contenttype": "text/css", - "offset": 698, - "len": 45 - }, - "css/chunk-6bef839b.593aa2be.css": { - "filename": "css/chunk-6bef839b.593aa2be.css", - "contenttype": "text/css", - "offset": 743, - "len": 5013 - }, - "css/chunk-8ed50a48.8ba8c09d.css": { - "filename": "css/chunk-8ed50a48.8ba8c09d.css", - "contenttype": "text/css", - "offset": 5756, - "len": 7204 - }, - "css/chunk-eb4c1efc.2a7e25ed.css": { - "filename": "css/chunk-eb4c1efc.2a7e25ed.css", - "contenttype": "text/css", - "offset": 12960, - "len": 45 - }, - "css/chunk-vendors.b4f58487.css": { - "filename": "css/chunk-vendors.b4f58487.css", - "contenttype": "text/css", - "offset": 13005, - "len": 382063 - }, - "img/skygallery_logo.2336197e.svg": { - "filename": "img/skygallery_logo.2336197e.svg", - "contenttype": "image/svg+xml", - "offset": 395068, - "len": 923 - }, - "img/skynet-logo-animated.4d24345c.svg": { - "filename": "img/skynet-logo-animated.4d24345c.svg", - "contenttype": "image/svg+xml", - "offset": 395991, - "len": 2600 - }, - "index.html": { "filename": "index.html", "contenttype": "text/html", "offset": 398591, "len": 2534 }, - "js/app.cff1e0a4.js": { - "filename": "js/app.cff1e0a4.js", - "contenttype": "application/javascript", - "offset": 401125, - "len": 15604 - }, - "js/app.cff1e0a4.js.map": { - "filename": "js/app.cff1e0a4.js.map", - "contenttype": "application/json", - "offset": 416729, - "len": 54424 - }, - "js/chunk-5ce44031.7fb55da9.js": { - "filename": "js/chunk-5ce44031.7fb55da9.js", - "contenttype": "application/javascript", - "offset": 471153, - "len": 3644 - }, - "js/chunk-5ce44031.7fb55da9.js.map": { - "filename": "js/chunk-5ce44031.7fb55da9.js.map", - "contenttype": "application/json", - "offset": 474797, - "len": 13494 - }, - "js/chunk-6bef839b.b543fe7d.js": { - "filename": "js/chunk-6bef839b.b543fe7d.js", - "contenttype": "application/javascript", - "offset": 488291, - "len": 13349 - }, - "js/chunk-6bef839b.b543fe7d.js.map": { - "filename": "js/chunk-6bef839b.b543fe7d.js.map", - "contenttype": "application/json", - "offset": 501640, - "len": 46690 - }, - "js/chunk-8ed50a48.35f8ef35.js": { - "filename": "js/chunk-8ed50a48.35f8ef35.js", - "contenttype": "application/javascript", - "offset": 548330, - "len": 130329 - }, - "js/chunk-8ed50a48.35f8ef35.js.map": { - "filename": "js/chunk-8ed50a48.35f8ef35.js.map", - "contenttype": "application/json", - "offset": 678659, - "len": 507145 - }, - "js/chunk-eb4c1efc.57b6e01c.js": { - "filename": "js/chunk-eb4c1efc.57b6e01c.js", - "contenttype": "application/javascript", - "offset": 1185804, - "len": 4407 - }, - "js/chunk-eb4c1efc.57b6e01c.js.map": { - "filename": "js/chunk-eb4c1efc.57b6e01c.js.map", - "contenttype": "application/json", - "offset": 1190211, - "len": 15355 - }, - "js/chunk-vendors.1fd55121.js": { - "filename": "js/chunk-vendors.1fd55121.js", - "contenttype": "application/javascript", - "offset": 1205566, - "len": 749829 - }, - "js/chunk-vendors.1fd55121.js.map": { - "filename": "js/chunk-vendors.1fd55121.js.map", - "contenttype": "application/json", - "offset": 1955395, - "len": 2793251 - } - }, - "defaultpath": "/index.html" -} diff --git a/packages/health-check/src/fixtures/uniswapMetadata.json b/packages/health-check/src/fixtures/uniswapMetadata.json deleted file mode 100644 index 2072887f..00000000 --- a/packages/health-check/src/fixtures/uniswapMetadata.json +++ /dev/null @@ -1,658 +0,0 @@ -{ - "filename": "build", - "subfiles": { - "451.html": { "filename": "451.html", "contenttype": "text/html", "offset": 20181232, "len": 200 }, - "asset-manifest.json": { - "filename": "asset-manifest.json", - "contenttype": "application/json", - "offset": 485031, - "len": 4561 - }, - "favicon.png": { "filename": "favicon.png", "contenttype": "image/png", "offset": 489592, "len": 7072 }, - "images/192x192_App_Icon.png": { - "filename": "images/192x192_App_Icon.png", - "contenttype": "image/png", - "offset": 434153, - "len": 50878 - }, - "images/512x512_App_Icon.png": { - "filename": "images/512x512_App_Icon.png", - "contenttype": "image/png", - "offset": 47542, - "len": 386611 - }, - "index.html": { "filename": "index.html", "contenttype": "text/html", "len": 3268 }, - "locales/de.json": { - "filename": "locales/de.json", - "contenttype": "application/json", - "offset": 7491, - "len": 4376 - }, - "locales/en.json": { - "filename": "locales/en.json", - "contenttype": "application/json", - "offset": 23709, - "len": 4321 - }, - "locales/es-AR.json": { - "filename": "locales/es-AR.json", - "contenttype": "application/json", - "offset": 16866, - "len": 3624 - }, - "locales/es-US.json": { - "filename": "locales/es-US.json", - "contenttype": "application/json", - "offset": 43912, - "len": 3630 - }, - "locales/it-IT.json": { - "filename": "locales/it-IT.json", - "contenttype": "application/json", - "offset": 3268, - "len": 4223 - }, - "locales/iw.json": { - "filename": "locales/iw.json", - "contenttype": "application/json", - "offset": 28030, - "len": 3929 - }, - "locales/ro.json": { - "filename": "locales/ro.json", - "contenttype": "application/json", - "offset": 31959, - "len": 3794 - }, - "locales/ru.json": { - "filename": "locales/ru.json", - "contenttype": "application/json", - "offset": 11867, - "len": 4999 - }, - "locales/vi.json": { - "filename": "locales/vi.json", - "contenttype": "application/json", - "offset": 39011, - "len": 4901 - }, - "locales/zh-CN.json": { - "filename": "locales/zh-CN.json", - "contenttype": "application/json", - "offset": 20490, - "len": 3219 - }, - "locales/zh-TW.json": { - "filename": "locales/zh-TW.json", - "contenttype": "application/json", - "offset": 35753, - "len": 3258 - }, - "manifest.json": { "filename": "manifest.json", "contenttype": "application/json", "offset": 20190818, "len": 470 }, - "precache-manifest.5ce41899d70d2e0450f591b3e917c2a4.js": { - "filename": "precache-manifest.5ce41899d70d2e0450f591b3e917c2a4.js", - "contenttype": "application/x-javascript", - "offset": 20181432, - "len": 9386 - }, - "service-worker.js": { - "filename": "service-worker.js", - "contenttype": "application/x-javascript", - "offset": 20191288, - "len": 1183 - }, - "static/css/4.f04942fe.chunk.css": { - "filename": "static/css/4.f04942fe.chunk.css", - "contenttype": "text/css", - "offset": 496664, - "len": 5331 - }, - "static/css/4.f04942fe.chunk.css.map": { - "filename": "static/css/4.f04942fe.chunk.css.map", - "contenttype": "application/octet-stream", - "offset": 501995, - "len": 8394 - }, - "static/js/0.1043efff.chunk.js": { - "filename": "static/js/0.1043efff.chunk.js", - "contenttype": "application/x-javascript", - "offset": 3451819, - "len": 226756 - }, - "static/js/0.1043efff.chunk.js.map": { - "filename": "static/js/0.1043efff.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 8495570, - "len": 811341 - }, - "static/js/1.722d768c.chunk.js": { - "filename": "static/js/1.722d768c.chunk.js", - "contenttype": "application/x-javascript", - "offset": 2503781, - "len": 20289 - }, - "static/js/1.722d768c.chunk.js.map": { - "filename": "static/js/1.722d768c.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 11896220, - "len": 44729 - }, - "static/js/4.cebcd4f8.chunk.js": { - "filename": "static/js/4.cebcd4f8.chunk.js", - "contenttype": "application/x-javascript", - "offset": 11941212, - "len": 1486762 - }, - "static/js/4.cebcd4f8.chunk.js.LICENSE.txt": { - "filename": "static/js/4.cebcd4f8.chunk.js.LICENSE.txt", - "contenttype": "text/plain", - "offset": 14378677, - "len": 3519 - }, - "static/js/4.cebcd4f8.chunk.js.map": { - "filename": "static/js/4.cebcd4f8.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 3678575, - "len": 4816995 - }, - "static/js/5.428f04e8.chunk.js": { - "filename": "static/js/5.428f04e8.chunk.js", - "contenttype": "application/x-javascript", - "offset": 1887438, - "len": 616343 - }, - "static/js/5.428f04e8.chunk.js.LICENSE.txt": { - "filename": "static/js/5.428f04e8.chunk.js.LICENSE.txt", - "contenttype": "text/plain", - "offset": 3450983, - "len": 426 - }, - "static/js/5.428f04e8.chunk.js.map": { - "filename": "static/js/5.428f04e8.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 10046674, - "len": 1553345 - }, - "static/js/6.29fcca22.chunk.js": { - "filename": "static/js/6.29fcca22.chunk.js", - "contenttype": "application/x-javascript", - "offset": 11600019, - "len": 296095 - }, - "static/js/6.29fcca22.chunk.js.map": { - "filename": "static/js/6.29fcca22.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 13440646, - "len": 938031 - }, - "static/js/7.8d2bc3b4.chunk.js": { - "filename": "static/js/7.8d2bc3b4.chunk.js", - "contenttype": "application/x-javascript", - "offset": 9306911, - "len": 263 - }, - "static/js/7.8d2bc3b4.chunk.js.map": { - "filename": "static/js/7.8d2bc3b4.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 11896114, - "len": 106 - }, - "static/js/8.3d784f08.chunk.js": { - "filename": "static/js/8.3d784f08.chunk.js", - "contenttype": "application/x-javascript", - "offset": 11940949, - "len": 263 - }, - "static/js/8.3d784f08.chunk.js.map": { - "filename": "static/js/8.3d784f08.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 3450877, - "len": 106 - }, - "static/js/9.08920d68.chunk.js": { - "filename": "static/js/9.08920d68.chunk.js", - "contenttype": "application/x-javascript", - "offset": 2524070, - "len": 626875 - }, - "static/js/9.08920d68.chunk.js.LICENSE.txt": { - "filename": "static/js/9.08920d68.chunk.js.LICENSE.txt", - "contenttype": "text/plain", - "offset": 3451409, - "len": 410 - }, - "static/js/9.08920d68.chunk.js.map": { - "filename": "static/js/9.08920d68.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 512852, - "len": 1374586 - }, - "static/js/main.d2a5ca05.chunk.js": { - "filename": "static/js/main.d2a5ca05.chunk.js", - "contenttype": "application/x-javascript", - "offset": 3150945, - "len": 299932 - }, - "static/js/main.d2a5ca05.chunk.js.map": { - "filename": "static/js/main.d2a5ca05.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 9307174, - "len": 739500 - }, - "static/js/runtime-main.712341b8.js": { - "filename": "static/js/runtime-main.712341b8.js", - "contenttype": "application/x-javascript", - "offset": 510389, - "len": 2463 - }, - "static/js/runtime-main.712341b8.js.map": { - "filename": "static/js/runtime-main.712341b8.js.map", - "contenttype": "application/octet-stream", - "offset": 13427974, - "len": 12672 - }, - "static/media/Inter-Black.09f4068b.woff2": { - "filename": "static/media/Inter-Black.09f4068b.woff2", - "contenttype": "application/octet-stream", - "offset": 16311114, - "len": 104656 - }, - "static/media/Inter-Black.e3735483.woff": { - "filename": "static/media/Inter-Black.e3735483.woff", - "contenttype": "application/octet-stream", - "offset": 16415770, - "len": 139648 - }, - "static/media/Inter-BlackItalic.07e69b53.woff": { - "filename": "static/media/Inter-BlackItalic.07e69b53.woff", - "contenttype": "application/octet-stream", - "offset": 15020483, - "len": 145816 - }, - "static/media/Inter-BlackItalic.daa1ca3c.woff2": { - "filename": "static/media/Inter-BlackItalic.daa1ca3c.woff2", - "contenttype": "application/octet-stream", - "offset": 19675808, - "len": 109900 - }, - "static/media/Inter-Bold.79260e5b.woff": { - "filename": "static/media/Inter-Bold.79260e5b.woff", - "contenttype": "application/octet-stream", - "offset": 15781749, - "len": 143464 - }, - "static/media/Inter-Bold.aed27700.woff2": { - "filename": "static/media/Inter-Bold.aed27700.woff2", - "contenttype": "application/octet-stream", - "offset": 16555739, - "len": 107144 - }, - "static/media/Inter-BoldItalic.8ef77a03.woff2": { - "filename": "static/media/Inter-BoldItalic.8ef77a03.woff2", - "contenttype": "application/octet-stream", - "offset": 17104768, - "len": 112276 - }, - "static/media/Inter-BoldItalic.e0879d64.woff": { - "filename": "static/media/Inter-BoldItalic.e0879d64.woff", - "contenttype": "application/octet-stream", - "offset": 15483981, - "len": 149360 - }, - "static/media/Inter-ExtraBold.38bc51bc.woff": { - "filename": "static/media/Inter-ExtraBold.38bc51bc.woff", - "contenttype": "application/octet-stream", - "offset": 19419594, - "len": 143256 - }, - "static/media/Inter-ExtraBold.92d16aee.woff2": { - "filename": "static/media/Inter-ExtraBold.92d16aee.woff2", - "contenttype": "application/octet-stream", - "offset": 19312290, - "len": 107304 - }, - "static/media/Inter-ExtraBoldItalic.0e4b21eb.woff": { - "filename": "static/media/Inter-ExtraBoldItalic.0e4b21eb.woff", - "contenttype": "application/octet-stream", - "offset": 16671312, - "len": 149116 - }, - "static/media/Inter-ExtraBoldItalic.57ea76d0.woff2": { - "filename": "static/media/Inter-ExtraBoldItalic.57ea76d0.woff2", - "contenttype": "application/octet-stream", - "offset": 18732262, - "len": 112656 - }, - "static/media/Inter-ExtraLight.4bd040df.woff": { - "filename": "static/media/Inter-ExtraLight.4bd040df.woff", - "contenttype": "application/octet-stream", - "offset": 14746958, - "len": 141344 - }, - "static/media/Inter-ExtraLight.4d9f96f8.woff2": { - "filename": "static/media/Inter-ExtraLight.4d9f96f8.woff2", - "contenttype": "application/octet-stream", - "offset": 18945450, - "len": 105444 - }, - "static/media/Inter-ExtraLightItalic.54d3d9a5.woff2": { - "filename": "static/media/Inter-ExtraLightItalic.54d3d9a5.woff2", - "contenttype": "application/octet-stream", - "offset": 14888302, - "len": 111804 - }, - "static/media/Inter-ExtraLightItalic.84c26656.woff": { - "filename": "static/media/Inter-ExtraLightItalic.84c26656.woff", - "contenttype": "application/octet-stream", - "offset": 18569981, - "len": 148416 - }, - "static/media/Inter-Italic.9528384c.woff2": { - "filename": "static/media/Inter-Italic.9528384c.woff2", - "contenttype": "application/octet-stream", - "offset": 14383371, - "len": 108172 - }, - "static/media/Inter-Italic.e4ad3666.woff": { - "filename": "static/media/Inter-Italic.e4ad3666.woff", - "contenttype": "application/octet-stream", - "offset": 20037756, - "len": 143476 - }, - "static/media/Inter-Light.5baca21a.woff2": { - "filename": "static/media/Inter-Light.5baca21a.woff2", - "contenttype": "application/octet-stream", - "offset": 18016306, - "len": 105556 - }, - "static/media/Inter-Light.b9920de0.woff": { - "filename": "static/media/Inter-Light.b9920de0.woff", - "contenttype": "application/octet-stream", - "offset": 18428717, - "len": 141264 - }, - "static/media/Inter-LightItalic.0555a46c.woff": { - "filename": "static/media/Inter-LightItalic.0555a46c.woff", - "contenttype": "application/octet-stream", - "offset": 15633341, - "len": 148408 - }, - "static/media/Inter-LightItalic.adc70179.woff2": { - "filename": "static/media/Inter-LightItalic.adc70179.woff2", - "contenttype": "application/octet-stream", - "offset": 19200250, - "len": 112040 - }, - "static/media/Inter-Medium.7a8cc724.woff": { - "filename": "static/media/Inter-Medium.7a8cc724.woff", - "contenttype": "application/octet-stream", - "offset": 17763598, - "len": 142780 - }, - "static/media/Inter-Medium.f6cf0a0b.woff2": { - "filename": "static/media/Inter-Medium.f6cf0a0b.woff2", - "contenttype": "application/octet-stream", - "offset": 17431014, - "len": 106484 - }, - "static/media/Inter-MediumItalic.417907d2.woff": { - "filename": "static/media/Inter-MediumItalic.417907d2.woff", - "contenttype": "application/octet-stream", - "offset": 16955424, - "len": 149344 - }, - "static/media/Inter-MediumItalic.565a7104.woff2": { - "filename": "static/media/Inter-MediumItalic.565a7104.woff2", - "contenttype": "application/octet-stream", - "offset": 17318374, - "len": 112640 - }, - "static/media/Inter-Regular.4dd66a11.woff2": { - "filename": "static/media/Inter-Regular.4dd66a11.woff2", - "contenttype": "application/octet-stream", - "offset": 18844918, - "len": 100368 - }, - "static/media/Inter-Regular.7c539936.woff": { - "filename": "static/media/Inter-Regular.7c539936.woff", - "contenttype": "application/octet-stream", - "offset": 16820428, - "len": 134996 - }, - "static/media/Inter-SemiBold.1db6c55c.woff": { - "filename": "static/media/Inter-SemiBold.1db6c55c.woff", - "contenttype": "application/octet-stream", - "offset": 19785708, - "len": 143148 - }, - "static/media/Inter-SemiBold.dd8a55ef.woff2": { - "filename": "static/media/Inter-SemiBold.dd8a55ef.woff2", - "contenttype": "application/octet-stream", - "offset": 14491543, - "len": 106916 - }, - "static/media/Inter-SemiBoldItalic.81678d1a.woff": { - "filename": "static/media/Inter-SemiBoldItalic.81678d1a.woff", - "contenttype": "application/octet-stream", - "offset": 19050894, - "len": 149356 - }, - "static/media/Inter-SemiBoldItalic.ac201e30.woff2": { - "filename": "static/media/Inter-SemiBoldItalic.ac201e30.woff2", - "contenttype": "application/octet-stream", - "offset": 19562850, - "len": 112768 - }, - "static/media/Inter-Thin.850febbe.woff2": { - "filename": "static/media/Inter-Thin.850febbe.woff2", - "contenttype": "application/octet-stream", - "offset": 17217044, - "len": 101004 - }, - "static/media/Inter-Thin.ead42837.woff": { - "filename": "static/media/Inter-Thin.ead42837.woff", - "contenttype": "application/octet-stream", - "offset": 18230961, - "len": 137068 - }, - "static/media/Inter-ThinItalic.a76db065.woff": { - "filename": "static/media/Inter-ThinItalic.a76db065.woff", - "contenttype": "application/octet-stream", - "offset": 16166265, - "len": 144528 - }, - "static/media/Inter-ThinItalic.e08d9b2a.woff2": { - "filename": "static/media/Inter-ThinItalic.e08d9b2a.woff2", - "contenttype": "application/octet-stream", - "offset": 19930172, - "len": 107584 - }, - "static/media/Inter-italic.var.2690e3c2.woff2": { - "filename": "static/media/Inter-italic.var.2690e3c2.woff2", - "contenttype": "application/octet-stream", - "offset": 15925213, - "len": 241052 - }, - "static/media/Inter-roman.var.90e8f61d.woff2": { - "filename": "static/media/Inter-roman.var.90e8f61d.woff2", - "contenttype": "application/octet-stream", - "offset": 17537498, - "len": 226100 - }, - "static/media/Inter.var.4b976905.woff2": { - "filename": "static/media/Inter.var.4b976905.woff2", - "contenttype": "application/octet-stream", - "offset": 15166461, - "len": 317520 - }, - "static/media/arrow-down-blue.cd061363.svg": { - "filename": "static/media/arrow-down-blue.cd061363.svg", - "contenttype": "image/svg+xml", - "offset": 17318048, - "len": 326 - }, - "static/media/arrow-down-grey.c0dedd2f.svg": { - "filename": "static/media/arrow-down-grey.c0dedd2f.svg", - "contenttype": "image/svg+xml", - "offset": 15000106, - "len": 326 - }, - "static/media/arrow-right-white.337ad716.png": { - "filename": "static/media/arrow-right-white.337ad716.png", - "contenttype": "image/png", - "offset": 15000432, - "len": 12999 - }, - "static/media/arrow-right.d285b6cf.svg": { - "filename": "static/media/arrow-right.d285b6cf.svg", - "contenttype": "image/svg+xml", - "offset": 19929626, - "len": 263 - }, - "static/media/blue-loader.904b44c2.svg": { - "filename": "static/media/blue-loader.904b44c2.svg", - "contenttype": "image/svg+xml", - "offset": 19929889, - "len": 283 - }, - "static/media/circle-grey.ed2a1dad.svg": { - "filename": "static/media/circle-grey.ed2a1dad.svg", - "contenttype": "image/svg+xml", - "offset": 16310793, - "len": 321 - }, - "static/media/circle.2d975615.svg": { - "filename": "static/media/circle.2d975615.svg", - "contenttype": "image/svg+xml", - "offset": 16555418, - "len": 321 - }, - "static/media/coinbaseWalletIcon.62578f59.svg": { - "filename": "static/media/coinbaseWalletIcon.62578f59.svg", - "contenttype": "image/svg+xml", - "offset": 18375091, - "len": 53626 - }, - "static/media/dropdown-blue.b20914ec.svg": { - "filename": "static/media/dropdown-blue.b20914ec.svg", - "contenttype": "image/svg+xml", - "offset": 14382513, - "len": 164 - }, - "static/media/dropdown.7d32d2fa.svg": { - "filename": "static/media/dropdown.7d32d2fa.svg", - "contenttype": "image/svg+xml", - "offset": 18945286, - "len": 164 - }, - "static/media/dropup-blue.b96d70e1.svg": { - "filename": "static/media/dropup-blue.b96d70e1.svg", - "contenttype": "image/svg+xml", - "offset": 15166299, - "len": 162 - }, - "static/media/link.50c67f3c.svg": { - "filename": "static/media/link.50c67f3c.svg", - "contenttype": "image/svg+xml", - "offset": 14382196, - "len": 317 - }, - "static/media/logo.5827780d.svg": { - "filename": "static/media/logo.5827780d.svg", - "contenttype": "image/svg+xml", - "offset": 15013431, - "len": 7052 - }, - "static/media/logo_white.edb44e56.svg": { - "filename": "static/media/logo_white.edb44e56.svg", - "contenttype": "image/svg+xml", - "offset": 18368029, - "len": 7062 - }, - "static/media/magnifying-glass.67440097.svg": { - "filename": "static/media/magnifying-glass.67440097.svg", - "contenttype": "image/svg+xml", - "offset": 16662883, - "len": 8429 - }, - "static/media/menu.4f2c4440.svg": { - "filename": "static/media/menu.4f2c4440.svg", - "contenttype": "image/svg+xml", - "offset": 18015579, - "len": 727 - }, - "static/media/metamask.023762b6.png": { - "filename": "static/media/metamask.023762b6.png", - "contenttype": "image/png", - "offset": 14611832, - "len": 114217 - }, - "static/media/plus-blue.e8021e51.svg": { - "filename": "static/media/plus-blue.e8021e51.svg", - "contenttype": "image/svg+xml", - "offset": 14746469, - "len": 190 - }, - "static/media/plus-grey.d8e0be7d.svg": { - "filename": "static/media/plus-grey.d8e0be7d.svg", - "contenttype": "image/svg+xml", - "offset": 19675618, - "len": 190 - }, - "static/media/portisIcon.b234b2bf.png": { - "filename": "static/media/portisIcon.b234b2bf.png", - "contenttype": "image/png", - "offset": 18718397, - "len": 13865 - }, - "static/media/question-mark.1ae4d9f4.svg": { - "filename": "static/media/question-mark.1ae4d9f4.svg", - "contenttype": "image/svg+xml", - "offset": 14726049, - "len": 818 - }, - "static/media/question.a46e8bc1.svg": { - "filename": "static/media/question.a46e8bc1.svg", - "contenttype": "image/svg+xml", - "offset": 19928856, - "len": 770 - }, - "static/media/spinner.be00fc4a.svg": { - "filename": "static/media/spinner.be00fc4a.svg", - "contenttype": "image/svg+xml", - "offset": 14382677, - "len": 694 - }, - "static/media/trustWallet.edcc1ab5.png": { - "filename": "static/media/trustWallet.edcc1ab5.png", - "contenttype": "image/png", - "offset": 14726867, - "len": 19602 - }, - "static/media/walletConnectIcon.8215855c.svg": { - "filename": "static/media/walletConnectIcon.8215855c.svg", - "contenttype": "image/svg+xml", - "offset": 14598459, - "len": 13373 - }, - "static/media/wordmark.b75565ae.svg": { - "filename": "static/media/wordmark.b75565ae.svg", - "contenttype": "image/svg+xml", - "offset": 18121862, - "len": 109099 - }, - "static/media/wordmark_white.9914390f.svg": { - "filename": "static/media/wordmark_white.9914390f.svg", - "contenttype": "image/svg+xml", - "offset": 17906378, - "len": 109201 - }, - "static/media/x.5b8e2186.svg": { - "filename": "static/media/x.5b8e2186.svg", - "contenttype": "image/svg+xml", - "offset": 14746659, - "len": 299 - } - }, - "defaultpath": "/index.html" -} diff --git a/packages/health-check/src/index.js b/packages/health-check/src/index.js deleted file mode 100644 index f3369783..00000000 --- a/packages/health-check/src/index.js +++ /dev/null @@ -1,48 +0,0 @@ -process.env.NODE_ENV = process.env.NODE_ENV || "development"; - -if (!process.env.PORTAL_DOMAIN) { - throw new Error("You need to provide PORTAL_DOMAIN environment variable"); -} - -if (process.env.ACCOUNTS_ENABLED === "true") { - if (["authenticated", "subscription"].includes(process.env.ACCOUNTS_LIMIT_ACCESS)) { - if (!process.env.ACCOUNTS_TEST_USER_EMAIL) { - throw new Error("ACCOUNTS_TEST_USER_EMAIL cannot be empty"); - } - if (!process.env.ACCOUNTS_TEST_USER_PASSWORD) { - throw new Error("ACCOUNTS_TEST_USER_PASSWORD cannot be empty"); - } - } -} - -const express = require("express"); -const db = require("./db"); - -const host = process.env.HOSTNAME || "0.0.0.0"; -const port = Number(process.env.PORT) || 3100; - -const server = express(); - -server.use(express.urlencoded({ extended: false })); -server.use(express.json()); -server.use((req, res, next) => { - db.read(); - next(); -}); - -server.get("/health-check", require("./api/index")); -server.get("/health-check/critical", require("./api/critical")); -server.get("/health-check/extended", require("./api/extended")); -server.get("/health-check/disabled", require("./api/disabled")); - -server.listen(port, host, (error) => { - if (error) throw error; - - console.info(`Server listening at http://${host}:${port} (NODE_ENV: ${process.env.NODE_ENV})`); - - const { ipRegex } = require("./utils"); - - if (ipRegex.test(process.env.serverip)) { - console.info(`Server public ip: ${process.env.serverip}`); - } -}); diff --git a/packages/health-check/src/utils.js b/packages/health-check/src/utils.js deleted file mode 100644 index 8dbab0de..00000000 --- a/packages/health-check/src/utils.js +++ /dev/null @@ -1,144 +0,0 @@ -const ipCheckService = "whatismyip.akamai.com"; -const ipRegex = new RegExp( - `^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$` -); - -/** - * Get the time between start and now in milliseconds - */ -function calculateElapsedTime(start) { - const diff = process.hrtime(start); - - return Math.round((diff[0] * 1e9 + diff[1]) / 1e6); // msec -} - -/** - * Get the ISO string with yesterday's date set (- 24 hours) - */ -function getYesterdayISOString() { - const date = new Date(); - - date.setDate(date.getDate() - 1); - - return date.toISOString(); -} - -/** - * Get response from response object if available - */ -function getResponseContent(response) { - try { - return JSON.parse(response?.body || response?.text); - } catch { - return response?.body || response?.text; - } -} - -/** - * Ensures that the object serializes to JSON properly - */ -function ensureValidJSON(object) { - const replacer = (key, value) => (value === undefined ? "--undefined--" : value); - const stringified = JSON.stringify(object, replacer); - - return JSON.parse(stringified); -} - -/** - * Get variable value from environment (process.env) - * Exit with code 1 if variable is not set or empty - * @param {string} name variable name - * @returns {string} - */ -function getRequiredEnvironmentVariable(name) { - const value = process.env[name]; - - if (!value) { - console.log(`${name} cannot be empty`); - process.exit(1); - } - - return value; -} - -/** - * Authenticate with given credentials and return auth cookie - * Creates new account if username does not exist - * Only authenticates when portal is set to authenticated users only mode - * @param {boolean} forceAuth forcibly ensure authentication with test credentials - */ -function getAuthCookie(forceAuth = false) { - // cache auth promise so only one actual request will be made - if (getAuthCookie.cache) return getAuthCookie.cache; - - // accounts disabled, do not try to authenticate - if (!isPortalModuleEnabled("a")) return ""; - - // do not authenticate if it is not required by portal limit access rule - if (!forceAuth && !["authenticated", "subscription"].includes(process.env.ACCOUNTS_LIMIT_ACCESS)) return ""; - - // assign all required environment variables - const portalDomain = getRequiredEnvironmentVariable("PORTAL_DOMAIN"); - const email = getRequiredEnvironmentVariable("ACCOUNTS_TEST_USER_EMAIL"); - const password = getRequiredEnvironmentVariable("ACCOUNTS_TEST_USER_PASSWORD"); - - async function authenticate() { - const got = require("got"); - - try { - // authenticate with given test user credentials - const response = await got.post(`https://account.${portalDomain}/api/login`, { - json: { email, password }, - }); - - // extract set-cookie from successful authentication request - const cookies = response.headers["set-cookie"]; - - // throw meaningful error when set-cookie header is missing - if (!cookies) throw new Error(`Auth successful (code ${response.statusCode}) but 'set-cookie' header is missing`); - - // find the skynet-jwt cookie - const jwtcookie = cookies.find((cookie) => cookie.startsWith("skynet-jwt")); - - // throw meaningful error when skynet-jwt cookie is missing - if (!jwtcookie) throw new Error(`Header 'set-cookie' found but 'skynet-jwt' cookie is missing`); - - // extract just the cookie value (no set-cookie props) from set-cookie - return jwtcookie.match(/skynet-jwt=[^;]+;/)[0]; - } catch (error) { - // 401 means that service worked but user could not have been authenticated - if (error.response && error.response.statusCode === 401) { - // sign up with the given credentials - await got.post(`https://account.${portalDomain}/api/user`, { - json: { email, password }, - }); - - // retry authentication - return authenticate(); - } - - // rethrow unhandled exception - throw error; - } - } - - return (getAuthCookie.cache = authenticate()); -} - -/** - * isPortalModuleEnabled returns true if the given module is enabled - */ -function isPortalModuleEnabled(module) { - return process.env.PORTAL_MODULES && process.env.PORTAL_MODULES.indexOf(module) !== -1; -} - -module.exports = { - calculateElapsedTime, - getYesterdayISOString, - getResponseContent, - ensureValidJSON, - getAuthCookie, - isPortalModuleEnabled, - ipCheckService, - ipRegex, -}; diff --git a/packages/health-check/src/utils.test.js b/packages/health-check/src/utils.test.js deleted file mode 100644 index c0d9a30f..00000000 --- a/packages/health-check/src/utils.test.js +++ /dev/null @@ -1,19 +0,0 @@ -describe("ipRegex", () => { - const { ipRegex } = require("./utils"); - - test("should test true for valid ip", () => { - expect(ipRegex.test("8.8.8.8")).toEqual(true); - expect(ipRegex.test("127.0.0.1")).toEqual(true); - expect(ipRegex.test("192.168.0.1")).toEqual(true); - expect(ipRegex.test("10.10.10.10")).toEqual(true); - expect(ipRegex.test("135.124.12.47")).toEqual(true); - }); - - test("should test false for invalid ip", () => { - expect(ipRegex.test("888.8.8.8")).toEqual(false); - expect(ipRegex.test("....")).toEqual(false); - expect(ipRegex.test(null)).toEqual(false); - expect(ipRegex.test("foo")).toEqual(false); - expect(ipRegex.test("")).toEqual(false); - }); -}); diff --git a/packages/health-check/src/whatismyip.js b/packages/health-check/src/whatismyip.js deleted file mode 100644 index f91da4dc..00000000 --- a/packages/health-check/src/whatismyip.js +++ /dev/null @@ -1,18 +0,0 @@ -const http = require("http"); -const { ipCheckService, ipRegex } = require("./utils"); - -const request = http.request({ host: ipCheckService }, (response) => { - response.on("data", (data) => { - if (ipRegex.test(data)) { - process.stdout.write(data); - } else { - throw new Error(`${ipCheckService} responded with invalid ip: "${data}"`); - } - }); -}); - -request.on("error", (error) => { - throw error; // throw error to exit with code 1 -}); - -request.end(); diff --git a/packages/health-check/yarn.lock b/packages/health-check/yarn.lock deleted file mode 100644 index 5624d881..00000000 --- a/packages/health-check/yarn.lock +++ /dev/null @@ -1,3200 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.0.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.0.tgz#72becdf17ee44b2d1ac5651fb12f1952c336fe23" - integrity sha512-d5RysTlJ7hmw5Tw4UxgxcY3lkMe92n8sXCcuLPAyIAHK6j8DefDwtGnVVDgOnv+RnEosulDJ9NPKQL27bDId0g== - dependencies: - "@jridgewell/trace-mapping" "^0.3.0" - -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/compat-data@^7.16.4": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" - integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== - -"@babel/compat-data@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" - integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== - -"@babel/core@^7.11.6": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.10.tgz#74ef0fbf56b7dfc3f198fc2d927f4f03e12f4b05" - integrity sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.10" - "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.10" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.10" - "@babel/types" "^7.17.10" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/core@^7.12.3": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.0.tgz#16b8772b0a567f215839f689c5ded6bb20e864d5" - integrity sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA== - dependencies: - "@ampproject/remapping" "^2.0.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.0" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.17.0" - "@babel/parser" "^7.17.0" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.0" - "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - -"@babel/generator@^7.17.0", "@babel/generator@^7.7.2": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.0.tgz#7bd890ba706cd86d3e2f727322346ffdbf98f65e" - integrity sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw== - dependencies: - "@babel/types" "^7.17.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.10.tgz#c281fa35b0c349bbe9d02916f4ae08fc85ed7189" - integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg== - dependencies: - "@babel/types" "^7.17.10" - "@jridgewell/gen-mapping" "^0.1.0" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" - integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== - dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz#09c63106d47af93cf31803db6bc49fef354e2ebe" - integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ== - dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.20.2" - semver "^6.3.0" - -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" - integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== - dependencies: - "@babel/helper-get-function-arity" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-get-function-arity@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" - integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" - integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" - integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== - -"@babel/helper-simple-access@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" - integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" - integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helpers@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.0.tgz#79cdf6c66a579f3a7b5e739371bc63ca0306886b" - integrity sha512-Xe/9NFxjPwELUvW2dsukcMZIp6XwPSbI4ojFBJuX5ramHuVE22SVcZIwqzdWo5uCgeTXW8qV97lMvSOjq+1+nQ== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.0" - "@babel/types" "^7.17.0" - -"@babel/helpers@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" - integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" - -"@babel/highlight@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" - integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.0.tgz#f0ac33eddbe214e4105363bb17c3341c5ffcc43c" - integrity sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw== - -"@babel/parser@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" - integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" - integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/template@^7.16.7", "@babel/template@^7.3.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/traverse@^7.16.7", "@babel/traverse@^7.17.0", "@babel/traverse@^7.7.2": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.0.tgz#3143e5066796408ccc880a33ecd3184f3e75cd30" - integrity sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.0" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.0" - "@babel/types" "^7.17.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" - integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.10" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.10" - "@babel/types" "^7.17.10" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@babel/types@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4" - integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.0.2.tgz#d11e8b43ae431ae9b3112656848417ae4008fcad" - integrity sha512-tiRpnMeeyQuuzgL5UNSeiqMwF8UOWPbAE5rzcu/1zyq4oPG2Ox6xm4YCOruwbp10F8odWc+XwVxTyGzMSLMqxA== - dependencies: - "@jest/types" "^28.0.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^28.0.2" - jest-util "^28.0.2" - slash "^3.0.0" - -"@jest/core@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.0.3.tgz#2b8223914ef6ae16ff740e65235ef8ef49c46d52" - integrity sha512-cCQW06vEZ+5r50SB06pOnSWsOBs7F+lswPYnKKfBz1ncLlj1sMqmvjgam8q40KhlZ8Ut4eNAL2Hvfx4BKIO2FA== - dependencies: - "@jest/console" "^28.0.2" - "@jest/reporters" "^28.0.3" - "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^28.0.2" - jest-config "^28.0.3" - jest-haste-map "^28.0.2" - jest-message-util "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.0.3" - jest-resolve-dependencies "^28.0.3" - jest-runner "^28.0.3" - jest-runtime "^28.0.3" - jest-snapshot "^28.0.3" - jest-util "^28.0.2" - jest-validate "^28.0.2" - jest-watcher "^28.0.2" - micromatch "^4.0.4" - pretty-format "^28.0.2" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.0.2.tgz#a865949d876b2d364b979bbc0a46338ffd23de26" - integrity sha512-IvI7dEfqVEffDYlw9FQfVBt6kXt/OI38V7QUIur0ulOQgzpKYJDVvLzj4B1TVmHWTGW5tcnJdlZ3hqzV6/I9Qg== - dependencies: - "@jest/fake-timers" "^28.0.2" - "@jest/types" "^28.0.2" - "@types/node" "*" - jest-mock "^28.0.2" - -"@jest/expect-utils@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.0.2.tgz#0a055868d225261eac82a12013e2e0735238774d" - integrity sha512-YryfH2zN5c7M8eLtn9oTBRj1sfD+X4cHNXJnTejqCveOS33wADEZUxJ7de5++lRvByNpRpfAnc8zTK7yrUJqgA== - dependencies: - jest-get-type "^28.0.2" - -"@jest/expect@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.0.3.tgz#80e0233bee62586e1112f904d28b904dd1143ef2" - integrity sha512-VEzZr85bqNomgayQkR7hWG5HnbZYWYWagQriZsixhLmOzU6PCpMP61aeVhkCoRrg7ri5f7JDpeTPzDAajIwFHw== - dependencies: - expect "^28.0.2" - jest-snapshot "^28.0.3" - -"@jest/fake-timers@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.0.2.tgz#d36e62bc58f39d65ea6adac1ff7749e63aff05f3" - integrity sha512-R75yUv+WeybPa4ZVhX9C+8XN0TKjUoceUX+/QEaDVQGxZZOK50eD74cs7iMDTtpodh00d8iLlc9197vgF6oZjA== - dependencies: - "@jest/types" "^28.0.2" - "@sinonjs/fake-timers" "^9.1.1" - "@types/node" "*" - jest-message-util "^28.0.2" - jest-mock "^28.0.2" - jest-util "^28.0.2" - -"@jest/globals@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.0.3.tgz#70f68a06c863d1c9d14aea151c69b9690e3efeb4" - integrity sha512-q/zXYI6CKtTSIt1WuTHBYizJhH7K8h+xG5PE3C0oawLlPIvUMDYmpj0JX0XsJwPRLCsz/fYXHZVG46AaEhSPmw== - dependencies: - "@jest/environment" "^28.0.2" - "@jest/expect" "^28.0.3" - "@jest/types" "^28.0.2" - -"@jest/reporters@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.0.3.tgz#9996189e5552e37fcdffe0f41c07754f5d2ea854" - integrity sha512-xrbIc7J/xwo+D7AY3enAR9ZWYCmJ8XIkstTukTGpKDph0gLl/TJje9jl3dssvE4KJzYqMKiSrnE5Nt68I4fTEg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.0.2" - "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" - "@jridgewell/trace-mapping" "^0.3.7" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-util "^28.0.2" - jest-worker "^28.0.2" - slash "^3.0.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^9.0.0" - -"@jest/schemas@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.0.2.tgz#08c30df6a8d07eafea0aef9fb222c5e26d72e613" - integrity sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA== - dependencies: - "@sinclair/typebox" "^0.23.3" - -"@jest/source-map@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.0.2.tgz#914546f4410b67b1d42c262a1da7e0406b52dc90" - integrity sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.7" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.0.2.tgz#bc8e15a95347e3c2149572ae06a5a6fed939c522" - integrity sha512-4EUqgjq9VzyUiVTvZfI9IRJD6t3NYBNP4f+Eq8Zr93+hkJ0RrGU4OBTw8tfNzidKX+bmuYzn8FxqpxOPIGGCMA== - dependencies: - "@jest/console" "^28.0.2" - "@jest/types" "^28.0.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.0.2.tgz#7669b7d8ff2aa7a8221b11bb37cce552de81b1bb" - integrity sha512-zhnZ8ydkZQTPL7YucB86eOlD79zPy5EGSUKiR2Iv93RVEDU6OEP33kwDBg70ywOcxeJGDRhyo09q7TafNCBiIg== - dependencies: - "@jest/test-result" "^28.0.2" - graceful-fs "^4.2.9" - jest-haste-map "^28.0.2" - slash "^3.0.0" - -"@jest/transform@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.0.3.tgz#591fb5ebc1d84db5c5f21e1225c7406c35f5eb1e" - integrity sha512-+Y0ikI7SwoW/YbK8t9oKwC70h4X2Gd0OVuz5tctRvSV/EDQU00AAkoqevXgPSSFimUmp/sp7Yl8s/1bExDqOIg== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^28.0.2" - "@jridgewell/trace-mapping" "^0.3.7" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.0.2" - jest-regex-util "^28.0.2" - jest-util "^28.0.2" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - -"@jest/types@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.0.2.tgz#70b9538c1863fb060b2f438ca008b5563d00c5b4" - integrity sha512-hi3jUdm9iht7I2yrV5C4s3ucCJHUP8Eh3W6rQ1s4n/Qw9rQgsda4eqCt+r3BKRi7klVmZfQlMx1nGlzNMP2d8A== - dependencies: - "@jest/schemas" "^28.0.2" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72" - integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg== - -"@jridgewell/set-array@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.0.tgz#1179863356ac8fbea64a5a4bcde93a4871012c01" - integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.10" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186" - integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg== - -"@jridgewell/trace-mapping@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.2.tgz#e051581782a770c30ba219634f2019241c5d3cde" - integrity sha512-9KzzH4kMjA2XmBRHfqG2/Vtl7s92l6uNDd0wW7frDE+EUvQFGqNXhWp0UGJjSkt3v2AYjzOZn1QO9XaTNJIt1Q== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@sinclair/typebox@^0.23.3": - version "0.23.5" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.5.tgz#93f7b9f4e3285a7a9ade7557d9a8d36809cbc47d" - integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg== - -"@sindresorhus/is@^4.0.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.2.0.tgz#667bfc6186ae7c9e0b45a08960c551437176e1ca" - integrity sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw== - -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^9.1.1": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@skynetlabs/tus-js-client@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@skynetlabs/tus-js-client/-/tus-js-client-2.3.0.tgz#a14fd4197e2bc4ce8be724967a0e4c17d937cb64" - integrity sha512-piGvPlJh+Bu3Qf08bDlc/TnFLXE81KnFoPgvnsddNwTSLyyspxPFxJmHO5ki6SYyOl3HmUtGPoix+r2M2UpFEA== - dependencies: - buffer-from "^0.1.1" - combine-errors "^3.0.3" - is-stream "^2.0.0" - js-base64 "^2.6.1" - lodash.throttle "^4.1.1" - proper-lockfile "^2.0.1" - url-parse "^1.4.3" - -"@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== - dependencies: - defer-to-connect "^2.0.0" - -"@types/babel__core@^7.1.14": - version "7.1.18" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" - integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== - dependencies: - "@babel/types" "^7.3.0" - -"@types/cacheable-request@^6.0.1": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" - integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "*" - "@types/node" "*" - "@types/responselike" "*" - -"@types/graceful-fs@^4.1.3": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/http-cache-semantics@*": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/keyv@*": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.3.tgz#1c9aae32872ec1f20dcdaee89a9f3ba88f465e41" - integrity sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg== - dependencies: - "@types/node" "*" - -"@types/node@*": - version "16.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" - integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== - -"@types/prettier@^2.1.5": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.3.tgz#a3c65525b91fca7da00ab1a3ac2b5a2a4afbffbf" - integrity sha512-QzSuZMBuG5u8HqYz01qtMdg/Jfctlnvj1z/lYnIDXs/golxw0fxtRAHd9KrzjR7Yxz1qVeI00o0kiO3PmVdJ9w== - -"@types/responselike@*", "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== - -"@types/yargs@^17.0.8": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" - integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== - dependencies: - "@types/yargs-parser" "*" - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -async-mutex@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.3.2.tgz#1485eda5bda1b0ec7c8df1ac2e815757ad1831df" - integrity sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA== - dependencies: - tslib "^2.3.1" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -axios@^0.26.0: - version "0.26.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" - integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== - dependencies: - follow-redirects "^1.14.8" - -babel-jest@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.0.3.tgz#843dc170da5b9671d4054ada9fdcd28f85f92a6e" - integrity sha512-S0ADyYdcrt5fp9YldRYWCUHdk1BKt9AkvBkLWBoNAEV9NoWZPIj5+MYhPcGgTS65mfv3a+Ymf2UqgWoAVd41cA== - dependencies: - "@jest/transform" "^28.0.3" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.0.2" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.2.tgz#9307d03a633be6fc4b1a6bc5c3a87e22bd01dd3b" - integrity sha512-Kizhn/ZL+68ZQHxSnHyuvJv8IchXD62KQxV77TBDV/xoBFBOfgRAk97GNs6hXdTTCiVES9nB2I6+7MXXrk5llQ== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.0.2.tgz#d8210fe4e46c1017e9fa13d7794b166e93aa9f89" - integrity sha512-sYzXIdgIXXroJTFeB3S6sNDWtlJ2dllCdTEsnZ65ACrMojj3hVNFRmnJ1HZtomGi+Be7aqpY/HJ92fr8OhKVkQ== - dependencies: - babel-plugin-jest-hoist "^28.0.2" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base32-decode@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base32-decode/-/base32-decode-1.0.0.tgz#2a821d6a664890c872f20aa9aca95a4b4b80e2a7" - integrity sha512-KNWUX/R7wKenwE/G/qFMzGScOgVntOmbE27vvc6GrniDGYb6a5+qWcuoXl8WIOQL7q0TpK7nZDm1Y04Yi3Yn5g== - -base32-encode@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/base32-encode/-/base32-encode-1.2.0.tgz#e150573a5e431af0a998e32bdfde7045725ca453" - integrity sha512-cHFU8XeRyx0GgmoWi5qHMCVRiqU6J3MHWxVgun7jggCBUpVzm1Ir7M9dYr2whjSNc3tFeXfQ/oZjQu/4u55h9A== - dependencies: - to-data-view "^1.1.0" - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -blakejs@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" - integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== - -body-parser@1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.10.3" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.17.5: - version "4.19.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== - dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" - -browserslist@^4.20.2: - version "4.20.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== - dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" - escalade "^3.1.1" - node-releases "^2.0.3" - picocolors "^1.0.0" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0" - integrity sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer@^6.0.1: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - -cacheable-request@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^6.0.1" - responselike "^2.0.0" - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001286: - version "1.0.30001309" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001309.tgz#e0ee78b9bec0704f67304b00ff3c5c0c768a9f62" - integrity sha512-Pl8vfigmBXXq+/yUz1jUwULeq9xhMJznzdc/xwl4WclDAuebcTHVefpz8lE/bMI+UN7TOkSSe7B7RnZd6+dzjA== - -caniuse-lite@^1.0.30001332: - version "1.0.30001334" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001334.tgz#892e9965b35285033fc2b8a8eff499fe02f13d8b" - integrity sha512-kbaCEBRRVSoeNs74sCuq92MJyGrMtjWVfhltoHUCW4t4pXFvGjUBrfo47weBRViHkiV3eBYyIsfl956NtHGazw== - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - 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" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -ci-info@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" - integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combine-errors@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/combine-errors/-/combine-errors-3.0.3.tgz#f4df6740083e5703a3181110c2b10551f003da86" - integrity sha1-9N9nQAg+VwOjGBEQwrEFUfAD2oY= - dependencies: - custom-error-instance "2.1.1" - lodash.uniqby "4.5.0" - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -custom-error-instance@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/custom-error-instance/-/custom-error-instance-2.1.1.tgz#3cf6391487a6629a6247eb0ca0ce00081b7e361a" - integrity sha1-PPY5FIemYppiR+sMoM4ACBt+Nho= - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.1.0, debug@^4.1.1: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - -deep-object-diff@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.7.tgz#348b3246f426427dd633eaa50e1ed1fc2eafc7e4" - integrity sha512-QkgBca0mL08P6HiOjoqvmm6xOAl2W6CT2+34Ljhg0OeFan8cwlcdq8jrLKsBBuUFAZLsN5b6y491KdKEoSo9lg== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -defer-to-connect@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.0.2.tgz#40f8d4ffa081acbd8902ba35c798458d0ff1af41" - integrity sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ== - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.4.118: - version "1.4.129" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.129.tgz#c675793885721beefff99da50f57c6525c2cd238" - integrity sha512-GgtN6bsDtHdtXJtlMYZWGB/uOyjZWjmRDumXTas7dGBaB9zUyCjzHet1DY2KhyHN8R0GLbzZWqm4efeddqqyRQ== - -electron-to-chromium@^1.4.17: - version "1.4.65" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.65.tgz#c0820db06e268e0a2fd4dbce38fb5376d38ca449" - integrity sha512-0/d8Skk8sW3FxXP0Dd6MnBlrwx7Qo9cqQec3BlIAlvKnrmS3pHsIbaroEi+nd0kZkGpQ6apMEre7xndzjlEnLw== - -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expect@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.0.2.tgz#86f0d6fa971bc533faf68d4d103d00f343d6a4b3" - integrity sha512-X0qIuI/zKv98k34tM+uGeOgAC73lhs4vROF9MkPk94C1zujtwv4Cla8SxhWn0G1OwvG9gLLL7RjFBkwGVaZ83w== - dependencies: - "@jest/expect-utils" "^28.0.2" - jest-get-type "^28.0.2" - jest-matcher-utils "^28.0.2" - jest-message-util "^28.0.2" - jest-util "^28.0.2" - -express@^4.18.1: - version "4.18.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.0" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.10.3" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -follow-redirects@^1.14.8: - version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -glob@^7.1.3, glob@^7.1.4: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -got@^11.8.2: - version "11.8.2" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.2.tgz#7abb3959ea28c31f3576f1576c1effce23f33599" - integrity sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.1" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.2.10, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hasha@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" - integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== - dependencies: - is-stream "^2.0.0" - type-fest "^0.8.0" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-status-codes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.2.0.tgz#bb2efe63d941dfc2be18e15f703da525169622be" - integrity sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng== - -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== - dependencies: - has "^1.0.3" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-promise@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" - integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.0.2.tgz#7d7810660a5bd043af9e9cfbe4d58adb05e91531" - integrity sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA== - dependencies: - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.0.3.tgz#45f77090b4b9fe5c1b84f72816868c9d4c0f57b1" - integrity sha512-HJ3rUCm3A3faSy7KVH5MFCncqJLtrjEFkTPn9UIcs4Kq77+TXqHsOaI+/k73aHe6DJQigLUXq9rCYj3MYFlbIw== - dependencies: - "@jest/environment" "^28.0.2" - "@jest/expect" "^28.0.3" - "@jest/test-result" "^28.0.2" - "@jest/types" "^28.0.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - is-generator-fn "^2.0.0" - jest-each "^28.0.2" - jest-matcher-utils "^28.0.2" - jest-message-util "^28.0.2" - jest-runtime "^28.0.3" - jest-snapshot "^28.0.3" - jest-util "^28.0.2" - pretty-format "^28.0.2" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.0.3.tgz#4a4e55078ec772e0ea2583dd4c4b38fb306dc556" - integrity sha512-NCPTEONCnhYGo1qzPP4OOcGF04YasM5GZSwQLI1HtEluxa3ct4U65IbZs6DSRt8XN1Rq0jhXwv02m5lHB28Uyg== - dependencies: - "@jest/core" "^28.0.3" - "@jest/test-result" "^28.0.2" - "@jest/types" "^28.0.2" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^28.0.3" - jest-util "^28.0.2" - jest-validate "^28.0.2" - prompts "^2.0.1" - yargs "^17.3.1" - -jest-config@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.0.3.tgz#9c0556d60d692153a6bc8652974182c22db9244f" - integrity sha512-3gWOEHwGpNhyYOk9vnUMv94x15QcdjACm7A3lERaluwnyD6d1WZWe9RFCShgIXVOHzRfG1hWxsI2U0gKKSGgDQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.0.2" - "@jest/types" "^28.0.2" - babel-jest "^28.0.3" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^28.0.3" - jest-environment-node "^28.0.2" - jest-get-type "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.0.3" - jest-runner "^28.0.3" - jest-util "^28.0.2" - jest-validate "^28.0.2" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^28.0.2" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.0.2.tgz#a543c90082560cd6cb14c5f28c39e6d4618ad7a6" - integrity sha512-33Rnf821Y54OAloav0PGNWHlbtEorXpjwchnToyyWbec10X74FOW7hGfvrXLGz7xOe2dz0uo9JVFAHHj/2B5pg== - dependencies: - chalk "^4.0.0" - diff-sequences "^28.0.2" - jest-get-type "^28.0.2" - pretty-format "^28.0.2" - -jest-docblock@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.0.2.tgz#3cab8abea53275c9d670cdca814fc89fba1298c2" - integrity sha512-FH10WWw5NxLoeSdQlJwu+MTiv60aXV/t8KEwIRGEv74WARE1cXIqh1vGdy2CraHuWOOrnzTWj/azQKqW4fO7xg== - dependencies: - detect-newline "^3.0.0" - -jest-each@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.0.2.tgz#fcf6843e9afe5a3f2d0b1c02aab1f41889d92f1d" - integrity sha512-/W5Wc0b+ipR36kDaLngdVEJ/5UYPOITK7rW0djTlCCQdMuWpCFJweMW4TzAoJ6GiRrljPL8FwiyOSoSHKrda2w== - dependencies: - "@jest/types" "^28.0.2" - chalk "^4.0.0" - jest-get-type "^28.0.2" - jest-util "^28.0.2" - pretty-format "^28.0.2" - -jest-environment-node@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.0.2.tgz#bd58e192b8f36a37e52c52fac812bd24b360c0b9" - integrity sha512-o9u5UHZ+NCuIoa44KEF0Behhsz/p1wMm0WumsZfWR1k4IVoWSt3aN0BavSC5dd26VxSGQvkrCnJxxOzhhUEG3Q== - dependencies: - "@jest/environment" "^28.0.2" - "@jest/fake-timers" "^28.0.2" - "@jest/types" "^28.0.2" - "@types/node" "*" - jest-mock "^28.0.2" - jest-util "^28.0.2" - -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== - -jest-haste-map@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.0.2.tgz#0c768f43680013cfd2a4471a3ec76c47bfb9e7c6" - integrity sha512-EokdL7l5uk4TqWGawwrIt8w3tZNcbeiRxmKGEURf42pl+/rWJy3sCJlon5HBhJXZTW978jk6600BLQOI7i25Ig== - dependencies: - "@jest/types" "^28.0.2" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^28.0.2" - jest-util "^28.0.2" - jest-worker "^28.0.2" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.0.2.tgz#cbde3d22d09bd690ececdc2ed01c608435328456" - integrity sha512-UGaSPYtxKXl/YKacq6juRAKmMp1z2os8NaU8PSC+xvNikmu3wF6QFrXrihMM4hXeMr9HuNotBrQZHmzDY8KIBQ== - dependencies: - jest-get-type "^28.0.2" - pretty-format "^28.0.2" - -jest-matcher-utils@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.0.2.tgz#eb461af204b6d0f05281e9228094f0ab7e9e8537" - integrity sha512-SxtTiI2qLJHFtOz/bySStCnwCvISAuxQ/grS+74dfTy5AuJw3Sgj9TVUvskcnImTfpzLoMCDJseRaeRrVYbAOA== - dependencies: - chalk "^4.0.0" - jest-diff "^28.0.2" - jest-get-type "^28.0.2" - pretty-format "^28.0.2" - -jest-message-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.0.2.tgz#f3cf36be72be4c4c4058cb34bd6673996d26dee3" - integrity sha512-knK7XyojvwYh1XiF2wmVdskgM/uN11KsjcEWWHfnMZNEdwXCrqB4sCBO94F4cfiAwCS8WFV6CDixDwPlMh/wdA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.0.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^28.0.2" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.0.2.tgz#059b500b34c1dd76474ebcdeccc249fe4dd0249f" - integrity sha512-vfnJ4zXRB0i24jOTGtQJyl26JKsgBKtqRlCnsrORZbG06FToSSn33h2x/bmE8XxqxkLWdZBRo+/65l8Vi3nD+g== - dependencies: - "@jest/types" "^28.0.2" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== - -jest-resolve-dependencies@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.0.3.tgz#76d8f59f7e76ba36d76a1677eeaaed24560da7e0" - integrity sha512-lCgHMm0/5p0qHemrOzm7kI6JDei28xJwIf7XOEcv1HeAVHnsON8B8jO/woqlU+/GcOXb58ymieYqhk3zjGWnvQ== - dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.0.3" - -jest-resolve@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.0.3.tgz#63f8e6b53e40f265b3ca9116195221dd43e3d16d" - integrity sha512-lfgjd9JhEjpjIN3HLUfdysdK+A7ePQoYmd7WL9DUEWqdnngb1rF56eee6iDXJxl/3eSolpP43VD7VrhjL3NsoQ== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.0.2" - jest-pnp-resolver "^1.2.2" - jest-util "^28.0.2" - jest-validate "^28.0.2" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.0.3.tgz#a8a409c685ad3081a44b149b2eb04bc4d47faaf9" - integrity sha512-4OsHMjBLtYUWCENucAQ4Za0jGfEbOFi/Fusv6dzUuaweqx8apb4+5p2LR2yvgF4StFulmxyC238tGLftfu+zBA== - dependencies: - "@jest/console" "^28.0.2" - "@jest/environment" "^28.0.2" - "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.10.2" - graceful-fs "^4.2.9" - jest-docblock "^28.0.2" - jest-environment-node "^28.0.2" - jest-haste-map "^28.0.2" - jest-leak-detector "^28.0.2" - jest-message-util "^28.0.2" - jest-resolve "^28.0.3" - jest-runtime "^28.0.3" - jest-util "^28.0.2" - jest-watcher "^28.0.2" - jest-worker "^28.0.2" - source-map-support "0.5.13" - throat "^6.0.1" - -jest-runtime@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.0.3.tgz#02346a34de0ac61d23bdb0e8c035ad973d7bb087" - integrity sha512-7FtPUmvbZEHLOdjsF6dyHg5Pe4E0DU+f3Vvv8BPzVR7mQA6nFR4clQYLAPyJGnsUvN8WRWn+b5a5SVwnj1WaGg== - dependencies: - "@jest/environment" "^28.0.2" - "@jest/fake-timers" "^28.0.2" - "@jest/globals" "^28.0.3" - "@jest/source-map" "^28.0.2" - "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^28.0.2" - jest-message-util "^28.0.2" - jest-mock "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.0.3" - jest-snapshot "^28.0.3" - jest-util "^28.0.2" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.0.3.tgz#9a768d0c617d070e87c1bd37240f22b344616154" - integrity sha512-nVzAAIlAbrMuvVUrS1YxmAeo1TfSsDDU+K5wv/Ow56MBp+L+Y71ksAbwRp3kGCgZAz4oOXcAMPAwtT9Yh1hlQQ== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^28.0.2" - graceful-fs "^4.2.9" - jest-diff "^28.0.2" - jest-get-type "^28.0.2" - jest-haste-map "^28.0.2" - jest-matcher-utils "^28.0.2" - jest-message-util "^28.0.2" - jest-util "^28.0.2" - natural-compare "^1.4.0" - pretty-format "^28.0.2" - semver "^7.3.5" - -jest-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.0.2.tgz#8e22cdd6e0549e0a393055f0e2da7eacc334b143" - integrity sha512-EVdpIRCC8lzqhp9A0u0aAKlsFIzufK6xKxNK7awsnebTdOP4hpyQW5o6Ox2qPl8gbeUKYF+POLyItaND53kpGA== - dependencies: - "@jest/types" "^28.0.2" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.0.2.tgz#58bb7e826c054a8bb3b54c05f73758d96cf6dbef" - integrity sha512-nr0UOvCTtxP0YPdsk01Gk7e7c0xIiEe2nncAe3pj0wBfUvAykTVrMrdeASlAJnlEQCBuwN/GF4hKoCzbkGNCNw== - dependencies: - "@jest/types" "^28.0.2" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^28.0.2" - leven "^3.1.0" - pretty-format "^28.0.2" - -jest-watcher@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.0.2.tgz#649fa24df531d4071be5784b6274d494d788c88b" - integrity sha512-uIVJLpQ/5VTGQWBiBatHsi7jrCqHjHl0e0dFHMWzwuIfUbdW/muk0DtSr0fteY2T7QTFylv+7a5Rm8sBKrE12Q== - dependencies: - "@jest/test-result" "^28.0.2" - "@jest/types" "^28.0.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.10.2" - jest-util "^28.0.2" - string-length "^4.0.1" - -jest-worker@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.0.2.tgz#75f7e5126541289ba02e9c1a67e46349ddb8141d" - integrity sha512-pijNxfjxT0tGAx+8+OzZ+eayVPCwy/rsZFhebmC0F4YnXu1EHPEPxg7utL3m5uX3EaFH1/jwDxGa1EbjJCST2g== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.0.3.tgz#92a7d6ee097b61de4ba2db7f3ab723e81a99b32d" - integrity sha512-uS+T5J3w5xyzd1KSJCGKhCo8WTJXbNl86f5SW11wgssbandJOVLRKKUxmhdFfmKxhPeksl1hHZ0HaA8VBzp7xA== - dependencies: - "@jest/core" "^28.0.3" - import-local "^3.0.2" - jest-cli "^28.0.3" - -js-base64@^2.6.1: - version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -keyv@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" - integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== - dependencies: - json-buffer "3.0.1" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash._baseiteratee@~4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz#34a9b5543572727c3db2e78edae3c0e9e66bd102" - integrity sha1-NKm1VDVycnw9sueO2uPA6eZr0QI= - dependencies: - lodash._stringtopath "~4.8.0" - -lodash._basetostring@~4.12.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz#9327c9dc5158866b7fa4b9d42f4638e5766dd9df" - integrity sha1-kyfJ3FFYhmt/pLnUL0Y45XZt2d8= - -lodash._baseuniq@~4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" - integrity sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg= - dependencies: - lodash._createset "~4.0.0" - lodash._root "~3.0.0" - -lodash._createset@~4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" - integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= - -lodash._root@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" - integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= - -lodash._stringtopath@~4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz#941bcf0e64266e5fc1d66fed0a6959544c576824" - integrity sha1-lBvPDmQmbl/B1m/tCmlZVExXaCQ= - dependencies: - lodash._basetostring "~4.12.0" - -lodash.throttle@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" - integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= - -lodash.uniqby@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz#a3a17bbf62eeb6240f491846e97c1c4e2a5e1e21" - integrity sha1-o6F7v2LutiQPSRhG6XwcTipeHiE= - dependencies: - lodash._baseiteratee "~4.7.0" - lodash._baseuniq "~4.6.0" - -lodash@4, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -lowdb@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz#5243be6b22786ccce30e50c9a33eac36b20c8064" - integrity sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ== - dependencies: - graceful-fs "^4.1.3" - is-promise "^2.1.0" - lodash "4" - pify "^3.0.0" - steno "^0.4.1" - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mime-db@1.50.0: - version "1.50.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" - integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== - -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== - -mime-types@^2.1.12, mime-types@~2.1.24: - version "2.1.33" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" - integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== - dependencies: - mime-db "1.50.0" - -mime-types@~2.1.34: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== - dependencies: - mime-db "1.51.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" - integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -minimatch@^3.0.4: - version "3.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" - integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== - -node-releases@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476" - integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - 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" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.3: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -post-me@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/post-me/-/post-me-0.4.5.tgz#6171b721c7b86230c51cfbe48ddea047ef8831ce" - integrity sha512-XgPdktF/2M5jglgVDULr9NUb/QNv3bY3g6RG22iTb5MIMtB07/5FJB5fbVmu5Eaopowc6uZx7K3e7x1shPwnXw== - -prettier@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" - integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== - -pretty-format@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.0.2.tgz#6a24d71cbb61a5e5794ba7513fe22101675481bc" - integrity sha512-UmGZ1IERwS3yY35LDMTaBUYI1w4udZDdJGGT/DqQeKG9ZLDn7/K2Jf/JtYSRiHCCKMHvUA+zsEGSmHdpaVp1yw== - dependencies: - "@jest/schemas" "^28.0.2" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -proper-lockfile@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-2.0.1.tgz#159fb06193d32003f4b3691dd2ec1a634aa80d1d" - integrity sha1-FZ+wYZPTIAP0s2kd0uwaY0qoDR0= - dependencies: - graceful-fs "^4.1.2" - retry "^0.10.0" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -qs@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -react-is@^18.0.0: - version "18.1.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" - integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-alpn@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - -resolve@^1.20.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -responselike@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" - integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== - dependencies: - lowercase-keys "^2.0.0" - -retry@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" - integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= - -rimraf@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -safe-buffer@5.2.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.5: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -sjcl@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/sjcl/-/sjcl-1.0.8.tgz#f2ec8d7dc1f0f21b069b8914a41a8f236b0e252a" - integrity sha512-LzIjEQ0S0DpIgnxMEayM1rq9aGwGRG4OnZhCdjx7glTaJtf4zRfpg87ImfjSJjoW9vKpagd82McDOwbRT5kQKQ== - -skynet-js@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/skynet-js/-/skynet-js-4.1.0.tgz#eccb84d04e9f42aa4f86ecb24fb4d59ed21e44cc" - integrity sha512-VmUjJ9QnLpfuQA2j7vzFh8JvukjQlX4QLGw1HY3VyslFPj92vPpyO8gqjPfzgbkR05TXL7CbdqZoLZr/RBDZPw== - dependencies: - "@skynetlabs/tus-js-client" "^2.3.0" - async-mutex "^0.3.2" - axios "^0.26.0" - base32-decode "^1.0.0" - base32-encode "^1.1.1" - base64-js "^1.3.1" - blakejs "^1.1.0" - buffer "^6.0.1" - mime "^3.0.0" - path-browserify "^1.0.1" - post-me "^0.4.5" - randombytes "^2.1.0" - sjcl "^1.0.8" - skynet-mysky-utils "^0.3.0" - tweetnacl "^1.0.3" - url-join "^4.0.1" - url-parse "^1.5.1" - -skynet-mysky-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/skynet-mysky-utils/-/skynet-mysky-utils-0.3.0.tgz#87fdc0a5f8547cf660280ef86b7a762269919bad" - integrity sha512-X9L6SrVTdwTUFook/E6zUWCOpXHdyspLAu0elQbbPkZCWeFpr/XXTMbiyPV3m1liYsesngAKxzaSqylaTWOGUA== - dependencies: - post-me "^0.4.5" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -steno@^0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/steno/-/steno-0.4.4.tgz#071105bdfc286e6615c0403c27e9d7b5dcb855cb" - integrity sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs= - dependencies: - graceful-fs "^4.1.3" - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-data-view@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/to-data-view/-/to-data-view-1.1.0.tgz#08d6492b0b8deb9b29bdf1f61c23eadfa8994d00" - integrity sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tslib@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.8.0: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -url-join@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" - integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== - -url-parse@^1.4.3, url-parse@^1.5.1: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -v8-to-istanbul@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz#be0dae58719fc53cb97e5c7ac1d7e6d4f5b19511" - integrity sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.7" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" - integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" - integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA== - -yargs@^17.3.1, yargs@^17.4.1: - version "17.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.1.tgz#ebe23284207bb75cee7c408c33e722bfb27b5284" - integrity sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" From c3c369c3123ed087313b65e7f556d59fa7469c2a Mon Sep 17 00:00:00 2001 From: Matthew Sevey Date: Thu, 26 May 2022 13:12:58 -0400 Subject: [PATCH 2/7] Update health check image --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index cf7ee3ec..3118ce69 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -173,7 +173,7 @@ services: # build: # context: https://github.com/SkynetLabs/webportal-health-check.git#master # dockerfile: Dockerfile - image: skynetlabs/webportal-health-check:0.1.2 + image: skynetlabs/webportal-health-check:0.1.3 container_name: health-check restart: unless-stopped logging: *default-logging From ba72d340abd0981e2bd8ee83b72697e5565a6099 Mon Sep 17 00:00:00 2001 From: Matthew Sevey Date: Wed, 25 May 2022 11:47:53 -0400 Subject: [PATCH 3/7] Remove Health-Check package --- .github/workflows/lint-dockerfiles.yml | 1 - .../workflows/lint-packages-health-check.yml | 23 - .../workflows/test-packages-health-check.yml | 23 - docker-compose.yml | 6 +- packages/health-check/.gitignore | 1 - packages/health-check/.prettierignore | 1 - packages/health-check/.prettierrc | 3 - packages/health-check/Dockerfile | 41 - packages/health-check/README.md | 0 packages/health-check/bin/cli | 94 - packages/health-check/cli/disable | 5 - packages/health-check/cli/enable | 5 - packages/health-check/cli/run | 5 - packages/health-check/package.json | 24 - .../src/adapters/FileSyncAtomic.js | 28 - packages/health-check/src/api/critical.js | 14 - packages/health-check/src/api/disabled.js | 8 - packages/health-check/src/api/extended.js | 14 - packages/health-check/src/api/index.js | 75 - packages/health-check/src/checks/critical.js | 239 -- packages/health-check/src/checks/extended.js | 1247 ------- .../health-check/src/checks/middleware.js | 45 - packages/health-check/src/db.js | 12 - .../src/fixtures/developMomentumMetadata.json | 322 -- .../src/fixtures/skygalleryMetadata.json | 122 - .../src/fixtures/uniswapMetadata.json | 658 ---- packages/health-check/src/index.js | 48 - packages/health-check/src/utils.js | 144 - packages/health-check/src/utils.test.js | 19 - packages/health-check/src/whatismyip.js | 18 - packages/health-check/yarn.lock | 3200 ----------------- 31 files changed, 3 insertions(+), 6442 deletions(-) delete mode 100644 .github/workflows/lint-packages-health-check.yml delete mode 100644 .github/workflows/test-packages-health-check.yml delete mode 100644 packages/health-check/.gitignore delete mode 100644 packages/health-check/.prettierignore delete mode 100644 packages/health-check/.prettierrc delete mode 100644 packages/health-check/Dockerfile delete mode 100644 packages/health-check/README.md delete mode 100755 packages/health-check/bin/cli delete mode 100755 packages/health-check/cli/disable delete mode 100755 packages/health-check/cli/enable delete mode 100755 packages/health-check/cli/run delete mode 100644 packages/health-check/package.json delete mode 100644 packages/health-check/src/adapters/FileSyncAtomic.js delete mode 100644 packages/health-check/src/api/critical.js delete mode 100644 packages/health-check/src/api/disabled.js delete mode 100644 packages/health-check/src/api/extended.js delete mode 100644 packages/health-check/src/api/index.js delete mode 100644 packages/health-check/src/checks/critical.js delete mode 100644 packages/health-check/src/checks/extended.js delete mode 100644 packages/health-check/src/checks/middleware.js delete mode 100644 packages/health-check/src/db.js delete mode 100644 packages/health-check/src/fixtures/developMomentumMetadata.json delete mode 100644 packages/health-check/src/fixtures/skygalleryMetadata.json delete mode 100644 packages/health-check/src/fixtures/uniswapMetadata.json delete mode 100644 packages/health-check/src/index.js delete mode 100644 packages/health-check/src/utils.js delete mode 100644 packages/health-check/src/utils.test.js delete mode 100644 packages/health-check/src/whatismyip.js delete mode 100644 packages/health-check/yarn.lock diff --git a/.github/workflows/lint-dockerfiles.yml b/.github/workflows/lint-dockerfiles.yml index afdd6558..a999becc 100644 --- a/.github/workflows/lint-dockerfiles.yml +++ b/.github/workflows/lint-dockerfiles.yml @@ -20,7 +20,6 @@ jobs: - packages/dashboard-v2/Dockerfile - packages/dnslink-api/Dockerfile - packages/handshake-api/Dockerfile - - packages/health-check/Dockerfile - packages/website/Dockerfile steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/lint-packages-health-check.yml b/.github/workflows/lint-packages-health-check.yml deleted file mode 100644 index afd5d96b..00000000 --- a/.github/workflows/lint-packages-health-check.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Lint - packages/health-check - -on: - pull_request: - paths: - - packages/health-check/** - -defaults: - run: - working-directory: packages/health-check - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: 16.x - - - run: yarn - - run: yarn prettier --check . diff --git a/.github/workflows/test-packages-health-check.yml b/.github/workflows/test-packages-health-check.yml deleted file mode 100644 index 79cfe324..00000000 --- a/.github/workflows/test-packages-health-check.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Test - packages/health-check - -on: - pull_request: - paths: - - packages/health-check/** - -defaults: - run: - working-directory: packages/health-check - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: 16.x - - - run: yarn - - run: yarn jest diff --git a/docker-compose.yml b/docker-compose.yml index 08095730..cf7ee3ec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -171,9 +171,9 @@ services: health-check: # uncomment "build" and comment out "image" to build from sources # build: - # context: https://github.com/SkynetLabs/skynet-webportal.git#master - # dockerfile: ./packages/health-check/Dockerfile - image: skynetlabs/health-check + # context: https://github.com/SkynetLabs/webportal-health-check.git#master + # dockerfile: Dockerfile + image: skynetlabs/webportal-health-check:0.1.2 container_name: health-check restart: unless-stopped logging: *default-logging diff --git a/packages/health-check/.gitignore b/packages/health-check/.gitignore deleted file mode 100644 index dc3b76b2..00000000 --- a/packages/health-check/.gitignore +++ /dev/null @@ -1 +0,0 @@ -state/ diff --git a/packages/health-check/.prettierignore b/packages/health-check/.prettierignore deleted file mode 100644 index 245a383f..00000000 --- a/packages/health-check/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -/package.json \ No newline at end of file diff --git a/packages/health-check/.prettierrc b/packages/health-check/.prettierrc deleted file mode 100644 index 963354f2..00000000 --- a/packages/health-check/.prettierrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "printWidth": 120 -} diff --git a/packages/health-check/Dockerfile b/packages/health-check/Dockerfile deleted file mode 100644 index a7661da5..00000000 --- a/packages/health-check/Dockerfile +++ /dev/null @@ -1,41 +0,0 @@ -FROM node:16.14.2-alpine - -RUN apk add --no-cache dnsmasq~=2 - -WORKDIR /usr/app - -ENV PATH="/usr/app/bin:${PATH}" - -# schedule critical checks to run every 5 minutes (any failures will disable server) -# schedule extended checks to run on every hour (optional checks, report only) -RUN echo '*/5 * * * * source /etc/environment ; /usr/app/bin/cli run critical >> /proc/1/fd/1' >> /etc/crontabs/root && \ - echo '0 * * * * source /etc/environment ; /usr/app/bin/cli run extended >> /proc/1/fd/1' >> /etc/crontabs/root - -COPY packages/health-check/package.json \ - packages/health-check/yarn.lock \ - ./ - -RUN yarn --frozen-lockfile - -COPY packages/health-check/src src -COPY packages/health-check/cli cli -COPY packages/health-check/bin bin - -EXPOSE 3100 -ENV NODE_ENV production - -# 1. get public server ip and save it in /etc/environment (passed to cron tasks as env variable) -# 2. start dnsmasq in the background with: -# - alias PORTAL_DOMAIN with current server ip so it overrides potential load balancer request -# - default docker nameserver 127.0.0.11 for any other request -# 3. replace docker nameserver with dnsmasq nameserver in /etc/resolv.conf -# 4. start crond in the background to schedule periodic health checks -# 5. start the health-check api service -CMD [ "sh", "-c", \ - "export serverip=$(node src/whatismyip.js) && \ - echo \"export serverip=${serverip}\" >> /etc/environment && \ - dnsmasq --no-resolv --log-facility=/var/log/dnsmasq.log --address=/$PORTAL_DOMAIN/$serverip --server=127.0.0.11 && \ - echo \"$(sed 's/127.0.0.11/127.0.0.1/' /etc/resolv.conf)\" > /etc/resolv.conf && \ - crond && \ - node src/index.js" \ - ] diff --git a/packages/health-check/README.md b/packages/health-check/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/health-check/bin/cli b/packages/health-check/bin/cli deleted file mode 100755 index c6753b57..00000000 --- a/packages/health-check/bin/cli +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/env node - -process.env.NODE_ENV = process.env.NODE_ENV || "production"; - -require("yargs/yargs")(process.argv.slice(2)) - .help() - .demandCommand() - .strict(true) - .command( - "__authenticate", // Internal only function - this function will be removed when API keys are implemented - false, // hide this function cli help - () => {}, - async () => { - const { getAuthCookie } = require("../src/utils"); - - console.log(await getAuthCookie(true)); - } - ) - .command( - "enable", - "Mark portal as enabled", - () => {}, - () => { - const db = require("../src/db"); - - db.set("disabled", false).write(); - } - ) - .command( - "disable ", - "Mark portal as disabled (provide meaningful reason)", - () => {}, - ({ reason }) => { - const db = require("../src/db"); - - db.set("disabled", reason).write(); - } - ) - .command( - "run ", - "Skynet portal health checks", - (yargs) => { - yargs - .positional("type", { - describe: "Type of checks to run", - type: "string", - choices: ["critical", "extended"], - }) - .option("portal-url", { - describe: "Skynet portal url", - default: process.env.PORTAL_DOMAIN ? `https://${process.env.PORTAL_DOMAIN}` : "https://siasky.net", - type: "string", - }) - .option("state-dir", { - describe: "State directory", - default: process.env.STATE_DIR || "state", - type: "string", - }); - }, - async ({ type, portalUrl, stateDir }) => { - const { hostname: portalDomain } = new URL(portalUrl); // extract domain from portal url - process.env.PORTAL_DOMAIN = portalDomain; - process.env.STATE_DIR = stateDir; - - const util = require("util"); - const { getYesterdayISOString } = require("../src/utils"); - const createMiddleware = require("../src/checks/middleware"); - const db = require("../src/db"); - const checks = require(`../src/checks/${type}`); - const middleware = await createMiddleware(); - - const entry = { - date: new Date().toISOString(), - checks: (await Promise.all(checks.map((check) => new Promise(check)))).filter(Boolean).map(middleware), - }; - - db.read() // read before writing to make sure no external changes are overwritten - .get(type) // get the list of records of given type - .push(entry) // insert new record - .remove(({ date }) => date < getYesterdayISOString()) // drop old records - .write(); - - // exit with code 1 if any of the checks report failure - if (entry.checks.some(({ up }) => !up)) { - console.log( - util.inspect( - entry.checks.filter(({ up }) => !up), - { colors: true, depth: 7 } // increase depth to ensure errors are printed - ) - ); - process.exit(1); - } - } - ).argv; diff --git a/packages/health-check/cli/disable b/packages/health-check/cli/disable deleted file mode 100755 index e6105112..00000000 --- a/packages/health-check/cli/disable +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/ash - -echo "DEPRECATED: 'cli/disable' command is deprecated, use 'cli disable' instead" - -/usr/app/bin/cli disable $@ diff --git a/packages/health-check/cli/enable b/packages/health-check/cli/enable deleted file mode 100755 index d362b267..00000000 --- a/packages/health-check/cli/enable +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/ash - -echo "DEPRECATED: 'cli/enable' command is deprecated, use 'cli enable' instead" - -/usr/app/bin/cli enable $@ diff --git a/packages/health-check/cli/run b/packages/health-check/cli/run deleted file mode 100755 index c310fc15..00000000 --- a/packages/health-check/cli/run +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/ash - -echo "DEPRECATED: 'cli/run' command is deprecated, use 'cli run' instead" - -/usr/app/bin/cli run $@ diff --git a/packages/health-check/package.json b/packages/health-check/package.json deleted file mode 100644 index 40a60698..00000000 --- a/packages/health-check/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "health-check", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "dependencies": { - "deep-object-diff": "^1.1.7", - "express": "^4.18.1", - "form-data": "^4.0.0", - "got": "^11.8.2", - "graceful-fs": "^4.2.10", - "hasha": "^5.2.2", - "http-status-codes": "^2.2.0", - "lodash": "^4.17.21", - "lowdb": "^1.0.0", - "skynet-js": "^4.1.0", - "write-file-atomic": "^4.0.1", - "yargs": "^17.4.1" - }, - "devDependencies": { - "jest": "^28.0.3", - "prettier": "^2.6.2" - } -} diff --git a/packages/health-check/src/adapters/FileSyncAtomic.js b/packages/health-check/src/adapters/FileSyncAtomic.js deleted file mode 100644 index 247481e9..00000000 --- a/packages/health-check/src/adapters/FileSyncAtomic.js +++ /dev/null @@ -1,28 +0,0 @@ -const fs = require("graceful-fs"); -const Base = require("lowdb/adapters/Base"); -const { sync: writeFileAtomicSync } = require("write-file-atomic"); - -class FileSyncAtomic extends Base { - read() { - if (fs.existsSync(this.source)) { - try { - const data = fs.readFileSync(this.source, "utf-8").trim(); - return data ? this.deserialize(data) : this.defaultValue; - } catch (e) { - if (e instanceof SyntaxError) { - e.message = `Malformed JSON in file: ${this.source}\n${e.message}`; - } - throw e; - } - } else { - writeFileAtomicSync(this.source, this.serialize(this.defaultValue)); - return this.defaultValue; - } - } - - write(data) { - return writeFileAtomicSync(this.source, this.serialize(data)); - } -} - -module.exports = FileSyncAtomic; diff --git a/packages/health-check/src/api/critical.js b/packages/health-check/src/api/critical.js deleted file mode 100644 index a84b4d25..00000000 --- a/packages/health-check/src/api/critical.js +++ /dev/null @@ -1,14 +0,0 @@ -const db = require("../db"); -const { getYesterdayISOString } = require("../utils"); - -// returns all critical health check entries -module.exports = (req, res) => { - const yesterday = getYesterdayISOString(); - const entries = db - .get("critical") - .orderBy("date", "desc") - .filter(({ date }) => date > yesterday) - .value(); - - res.send(entries); -}; diff --git a/packages/health-check/src/api/disabled.js b/packages/health-check/src/api/disabled.js deleted file mode 100644 index 6471ad2f..00000000 --- a/packages/health-check/src/api/disabled.js +++ /dev/null @@ -1,8 +0,0 @@ -const db = require("../db"); - -// returns a disabled flag status -module.exports = (req, res) => { - const disabled = db.get("disabled").value(); - - res.send({ disabled }); -}; diff --git a/packages/health-check/src/api/extended.js b/packages/health-check/src/api/extended.js deleted file mode 100644 index ff23e704..00000000 --- a/packages/health-check/src/api/extended.js +++ /dev/null @@ -1,14 +0,0 @@ -const db = require("../db"); -const { getYesterdayISOString } = require("../utils"); - -// returns all extended health check entries -module.exports = (req, res) => { - const yesterday = getYesterdayISOString(); - const entries = db - .get("extended") - .orderBy("date", "desc") - .filter(({ date }) => date > yesterday) - .value(); - - res.send(entries); -}; diff --git a/packages/health-check/src/api/index.js b/packages/health-check/src/api/index.js deleted file mode 100644 index 641b154a..00000000 --- a/packages/health-check/src/api/index.js +++ /dev/null @@ -1,75 +0,0 @@ -const { StatusCodes } = require("http-status-codes"); -const { sum, sumBy } = require("lodash"); -const db = require("../db"); - -/** - * Get status code that should be returned in the API response. - * - OK (200) in case everything is healthy - * - SERVICE_UNAVAILABLE (503) in case of any failures or if disabled - */ -function getStatusCode() { - // check whether the portal has been manually disabled - const disabled = getDisabled(); - - if (disabled) { - return StatusCodes.SERVICE_UNAVAILABLE; - } - - // grab the most recent critical entry element from DB - const entry = getMostRecentCriticalEntry(); - - // in case there is no entry yet or at least one check failed in the most recent entry - if (!entry || entry.checks.some(({ up }) => !up)) { - return StatusCodes.SERVICE_UNAVAILABLE; - } - - return StatusCodes.OK; -} - -/** - * Get the sample of most recent critical entries and - * calculate the average response time of all of them - */ -function getAverageResponseTime() { - // get most recent 10 successfull checks for the calculation - const sample = db - .get("critical") - .orderBy("date", "desc") - .filter(({ checks }) => checks.every(({ up }) => up)) - .take(10) - .value(); - - // calculate average time of response - return Math.round(sum(sample.map(({ checks }) => sumBy(checks, "time"))) / sample.size); -} - -/** - * Get one, most current critical entry - */ -function getMostRecentCriticalEntry() { - return db.get("critical").orderBy("date", "desc").head().value(); -} - -/** - * Get the disabled flag state (manual portal disable) - */ -function getDisabled() { - return db.get("disabled").value(); -} - -module.exports = (req, res) => { - const statusCode = getStatusCode(); - const timeout = statusCode === StatusCodes.OK ? getAverageResponseTime() : 0; - - // We want to delay the response for the load balancer to be able to prioritize - // servers based on the successful response time of this endpoint. Load balancer - // will pull the server if the response is an error so there is no point in delaying - // failures, hence 0 timeout on those. - setTimeout(() => { - // include some health information in the response body - const entry = getMostRecentCriticalEntry(); - const disabled = getDisabled(); - - res.status(statusCode).send({ disabled, entry }); - }, timeout); -}; diff --git a/packages/health-check/src/checks/critical.js b/packages/health-check/src/checks/critical.js deleted file mode 100644 index 28992b28..00000000 --- a/packages/health-check/src/checks/critical.js +++ /dev/null @@ -1,239 +0,0 @@ -const got = require("got"); -const FormData = require("form-data"); -const { isEqual } = require("lodash"); -const { calculateElapsedTime, getResponseContent, getAuthCookie, isPortalModuleEnabled } = require("../utils"); -const { SkynetClient, stringToUint8ArrayUtf8, genKeyPairAndSeed } = require("skynet-js"); - -const MODULE_BLOCKER = "b"; - -const skynetClient = new SkynetClient(`https://${process.env.PORTAL_DOMAIN}`); -const exampleSkylink = "AACogzrAimYPG42tDOKhS3lXZD8YvlF8Q8R17afe95iV2Q"; - -// check that any relevant configuration is properly set in skyd -async function skydConfigCheck(done) { - const time = process.hrtime(); - const data = { up: false }; - - try { - const response = await got(`http://10.10.10.10:9980/renter`, { headers: { "User-Agent": "Sia-Agent" } }).json(); - - // make sure initial funding is set to 10SC - if (response.settings.allowance.paymentcontractinitialfunding !== "10000000000000000000000000") { - throw new Error("Skynet Portal Per-Contract Budget is not set correctly!"); - } - - data.up = true; - data.ip = response.ip; - } catch (error) { - data.statusCode = error.response?.statusCode || error.statusCode || error.status; - data.errorMessage = error.message; - data.errorResponseContent = getResponseContent(error.response); - data.ip = error?.response?.ip ?? null; - } - - done({ name: "skyd_config", time: calculateElapsedTime(time), ...data }); -} - -// uploadCheck returns the result of uploading a sample file -async function uploadCheck(done) { - const authCookie = await getAuthCookie(); - const time = process.hrtime(); - const form = new FormData(); - const payload = Buffer.from(new Date()); // current date to ensure data uniqueness - const data = { up: false }; - - form.append("file", payload, { filename: "time.txt", contentType: "text/plain" }); - - try { - const response = await got.post(`https://${process.env.PORTAL_DOMAIN}/skynet/skyfile`, { - body: form, - headers: { cookie: authCookie }, - }); - - data.statusCode = response.statusCode; - data.up = true; - data.ip = response.ip; - } catch (error) { - data.statusCode = error.response?.statusCode || error.statusCode || error.status; - data.errorMessage = error.message; - data.errorResponseContent = getResponseContent(error.response); - data.ip = error?.response?.ip ?? null; - } - - done({ name: "upload_file", time: calculateElapsedTime(time), ...data }); -} - -// websiteCheck checks whether the main website is working -async function websiteCheck(done) { - return done(await genericAccessCheck("website", `https://${process.env.PORTAL_DOMAIN}`)); -} - -// downloadCheck returns the result of downloading the hard coded link -async function downloadCheck(done) { - const url = await skynetClient.getSkylinkUrl(exampleSkylink); - - return done(await genericAccessCheck("skylink", url)); -} - -// skylinkSubdomainCheck returns the result of downloading the hard coded link via subdomain -async function skylinkSubdomainCheck(done) { - const url = await skynetClient.getSkylinkUrl(exampleSkylink, { subdomain: true }); - - return done(await genericAccessCheck("skylink_via_subdomain", url)); -} - -// handshakeSubdomainCheck returns the result of downloading the skylink via handshake domain -async function handshakeSubdomainCheck(done) { - const url = await skynetClient.getHnsUrl("note-to-self", { subdomain: true }); - - return done(await genericAccessCheck("hns_via_subdomain", url)); -} - -// accountWebsiteCheck returns the result of accessing account dashboard website -async function accountWebsiteCheck(done) { - const url = `https://account.${process.env.PORTAL_DOMAIN}/auth/login`; - - return done(await genericAccessCheck("account_website", url)); -} - -// registryWriteAndReadCheck writes to registry and immediately reads and compares the data -async function registryWriteAndReadCheck(done) { - const authCookie = await getAuthCookie(); - const time = process.hrtime(); - const data = { name: "registry_write_and_read", up: false }; - const { privateKey, publicKey } = genKeyPairAndSeed(); - const expected = { dataKey: "foo-key", data: stringToUint8ArrayUtf8("foo-data"), revision: BigInt(0) }; - - try { - await skynetClient.registry.setEntry(privateKey, expected, { customCookie: authCookie }); - const { entry } = await skynetClient.registry.getEntry(publicKey, expected.dataKey, { customCookie: authCookie }); - - if (isEqual(expected, entry)) { - data.up = true; - } else { - data.errors = [{ message: "Data mismatch in registry (read after write)", entry, expected }]; - } - } catch (error) { - data.errors = [{ message: error?.response?.data?.message ?? error.message }]; - } - - return done({ ...data, time: calculateElapsedTime(time) }); -} - -// directServerApiAccessCheck returns the basic server api check on direct server address -async function directServerApiAccessCheck(done) { - // skip if SERVER_DOMAIN is not set or it equals PORTAL_DOMAIN (single server portals) - if (!process.env.SERVER_DOMAIN || process.env.SERVER_DOMAIN === process.env.PORTAL_DOMAIN) { - return done(); - } - - const [portalAccessCheck, serverAccessCheck] = await Promise.all([ - genericAccessCheck("portal_api_access", `https://${process.env.PORTAL_DOMAIN}`), - genericAccessCheck("server_api_access", `https://${process.env.SERVER_DOMAIN}`), - ]); - - if (portalAccessCheck.ip !== serverAccessCheck.ip) { - serverAccessCheck.up = false; - serverAccessCheck.errors = serverAccessCheck.errors ?? []; - serverAccessCheck.errors.push({ - message: "Access ip mismatch between portal and server access", - response: { - portal: { name: process.env.PORTAL_DOMAIN, ip: portalAccessCheck.ip }, - server: { name: process.env.SERVER_DOMAIN, ip: serverAccessCheck.ip }, - }, - }); - } - - return done(serverAccessCheck); -} - -// accountHealthCheck returns the result of accounts service health checks -async function accountHealthCheck(done) { - const time = process.hrtime(); - const data = { up: false }; - - try { - const response = await got(`https://account.${process.env.PORTAL_DOMAIN}/health`, { responseType: "json" }); - - data.statusCode = response.statusCode; - data.response = response.body; - data.up = response.body.dbAlive === true; - data.ip = response.ip; - } catch (error) { - data.statusCode = error?.response?.statusCode || error.statusCode || error.status; - data.errorMessage = error.message; - data.errorResponseContent = getResponseContent(error.response); - data.ip = error?.response?.ip ?? null; - } - - done({ name: "accounts", time: calculateElapsedTime(time), ...data }); -} - -// blockerHealthCheck returns the result of blocker container health endpoint -async function blockerHealthCheck(done) { - const time = process.hrtime(); - const data = { up: false }; - - try { - const response = await got(`http://${process.env.BLOCKER_HOST}:${process.env.BLOCKER_PORT}/health`, { - responseType: "json", - }); - - data.statusCode = response.statusCode; - data.response = response.body; - data.up = response.body.dbAlive === true; - } catch (error) { - data.statusCode = error?.response?.statusCode || error.statusCode || error.status; - data.errorMessage = error.message; - data.errorResponseContent = getResponseContent(error.response); - } - - // this is a no-op but it's added to explicitly document the ip property - // should not be set on the data object to prevent the IP from being compared - // to the server's IP - this is not required for this check and will fail - delete data.ip; - - done({ name: "blocker", time: calculateElapsedTime(time), ...data }); -} - -async function genericAccessCheck(name, url) { - const authCookie = await getAuthCookie(); - const time = process.hrtime(); - const data = { up: false, url }; - - try { - const response = await got(url, { headers: { cookie: `nocache=true;${authCookie}` } }); - - data.statusCode = response.statusCode; - data.up = true; - data.ip = response.ip; - } catch (error) { - data.statusCode = error?.response?.statusCode || error.statusCode || error.status; - data.errorMessage = error.message; - data.errorResponseContent = getResponseContent(error.response); - data.ip = error?.response?.ip ?? null; - } - - return { name, time: calculateElapsedTime(time), ...data }; -} - -const checks = [ - skydConfigCheck, - uploadCheck, - websiteCheck, - downloadCheck, - skylinkSubdomainCheck, - handshakeSubdomainCheck, - registryWriteAndReadCheck, - directServerApiAccessCheck, -]; - -if (process.env.ACCOUNTS_ENABLED === "true") { - checks.push(accountHealthCheck, accountWebsiteCheck); -} - -if (isPortalModuleEnabled(MODULE_BLOCKER)) { - checks.push(blockerHealthCheck); -} - -module.exports = checks; diff --git a/packages/health-check/src/checks/extended.js b/packages/health-check/src/checks/extended.js deleted file mode 100644 index aaf74389..00000000 --- a/packages/health-check/src/checks/extended.js +++ /dev/null @@ -1,1247 +0,0 @@ -const got = require("got"); -const hasha = require("hasha"); -const { detailedDiff } = require("deep-object-diff"); -const { isEqual } = require("lodash"); -const { calculateElapsedTime, ensureValidJSON, getResponseContent, getAuthCookie } = require("../utils"); -const { parseSkylink } = require("skynet-js"); - -// audioExampleCheck returns the result of trying to download the skylink -// for the Example audio file on siasky.net -function audioExampleCheck(done) { - const linkInfo = { - name: "Audio Example", - skylink: "_A2zt5SKoqwnnZU4cBF8uBycSKULXMyeg1c5ZISBr2Q3dA", - bodyHash: "1bea1f570043f20149ae4cb4d30089d90897b15b", - metadata: { filename: "feel-good.mp3" }, - headers: { - "skynet-skylink": "_A2zt5SKoqwnnZU4cBF8uBycSKULXMyeg1c5ZISBr2Q3dA", - "content-disposition": 'inline; filename="feel-good.mp3"', - "content-type": "audio/mpeg", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// covid19PaperCheck returns the result of trying to download the skylink -// for a known Covid19 paper -function covid19PaperCheck(done) { - const linkInfo = { - name: "Covid-19 Paper", - skylink: "PAMZVmfutxWoG6Wnl5BRKuWLkDNZR42k_okRRvksJekA3A", - bodyHash: "7ce20bfc4221503fd0bf909ad20c422eca125c7d", - metadata: { - filename: "An Effective Treatment for Coronavirus (COVID-19).pdf", - subfiles: { - "An Effective Treatment for Coronavirus (COVID-19).pdf": { - filename: "An Effective Treatment for Coronavirus (COVID-19).pdf", - contenttype: "application/pdf", - len: 474803, - }, - }, - }, - headers: { - "skynet-skylink": "PAMZVmfutxWoG6Wnl5BRKuWLkDNZR42k_okRRvksJekA3A", - "content-disposition": 'inline; filename="An Effective Treatment for Coronavirus (COVID-19).pdf"', - "content-type": "application/pdf", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// covid19CoroNopePaperCheck returns the result of trying to download the skylink -// for another known Covid19 paper -function covid19CoroNopePaperCheck(done) { - const linkInfo = { - name: "Covid-19 CoroNope Paper", - skylink: "bACLKGmcmX4NCp47WwOOJf0lU666VLeT5HRWpWVtqZPjEA", - bodyHash: "0db705da1b1232f8344ed74fd38245d35a49a965", - metadata: { filename: "coronope.pdf" }, - headers: { - "skynet-skylink": "bACLKGmcmX4NCp47WwOOJf0lU666VLeT5HRWpWVtqZPjEA", - "content-disposition": 'inline; filename="coronope.pdf"', - "content-type": "application/pdf", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// dappExampleCheck returns the result of trying to download the skylink -// for the Example Dapp on siasky.net -function dappExampleCheck(done) { - const linkInfo = { - name: "Dapp Example (UniSwap)", - skylink: "EADWpKD0myqH2tZa6xtKebg6kNnwYnI94fl4R8UKgNrmOA", - bodyHash: "7b74cbb5927e964db493b82cc1f8a532f1ff72f5", - metadata: { - filename: "build", - length: 15578459, - subfiles: { - "451.html": { - filename: "451.html", - contenttype: "text/html", - offset: 40966, - len: 200, - }, - "asset-manifest.json": { - filename: "asset-manifest.json", - contenttype: "application/json", - offset: 35832, - len: 5134, - }, - "favicon.ico": { - filename: "favicon.ico", - contenttype: "image/vnd.microsoft.icon", - len: 31701, - }, - "index.html": { - filename: "index.html", - contenttype: "text/html", - offset: 31701, - len: 4131, - }, - "locales/de.json": { - filename: "locales/de.json", - contenttype: "application/json", - offset: 15542609, - len: 4376, - }, - "locales/en.json": { - filename: "locales/en.json", - contenttype: "application/json", - offset: 15558827, - len: 4049, - }, - "locales/es-AR.json": { - filename: "locales/es-AR.json", - contenttype: "application/json", - offset: 15551984, - len: 3624, - }, - "locales/es-US.json": { - filename: "locales/es-US.json", - contenttype: "application/json", - offset: 15574829, - len: 3630, - }, - "locales/it-IT.json": { - filename: "locales/it-IT.json", - contenttype: "application/json", - offset: 15538386, - len: 4223, - }, - "locales/ro.json": { - filename: "locales/ro.json", - contenttype: "application/json", - offset: 15562876, - len: 3794, - }, - "locales/ru.json": { - filename: "locales/ru.json", - contenttype: "application/json", - offset: 15546985, - len: 4999, - }, - "locales/vi.json": { - filename: "locales/vi.json", - contenttype: "application/json", - offset: 15569928, - len: 4901, - }, - "locales/zh-CN.json": { - filename: "locales/zh-CN.json", - contenttype: "application/json", - offset: 15555608, - len: 3219, - }, - "locales/zh-TW.json": { - filename: "locales/zh-TW.json", - contenttype: "application/json", - offset: 15566670, - len: 3258, - }, - "manifest.json": { - filename: "manifest.json", - contenttype: "application/json", - offset: 41166, - len: 297, - }, - "precache-manifest.cd4677068c6058f8626d6818e2c12fd3.js": { - filename: "precache-manifest.cd4677068c6058f8626d6818e2c12fd3.js", - contenttype: "text/javascript", - offset: 41463, - len: 4721, - }, - "service-worker.js": { - filename: "service-worker.js", - contenttype: "text/javascript", - offset: 46184, - len: 1185, - }, - "static/css/0.07de6c03.chunk.css": { - filename: "static/css/0.07de6c03.chunk.css", - contenttype: "text/css", - offset: 15537249, - len: 285, - }, - "static/css/0.07de6c03.chunk.css.map": { - filename: "static/css/0.07de6c03.chunk.css.map", - contenttype: "application/octet-stream", - offset: 15537818, - len: 568, - }, - "static/css/5.d75e0ccb.chunk.css": { - filename: "static/css/5.d75e0ccb.chunk.css", - contenttype: "text/css", - offset: 15537534, - len: 284, - }, - "static/css/5.d75e0ccb.chunk.css.map": { - filename: "static/css/5.d75e0ccb.chunk.css.map", - contenttype: "application/octet-stream", - offset: 15536511, - len: 738, - }, - "static/js/0.58b0f69f.chunk.js": { - filename: "static/js/0.58b0f69f.chunk.js", - contenttype: "text/javascript", - offset: 7300150, - len: 30029, - }, - "static/js/0.58b0f69f.chunk.js.map": { - filename: "static/js/0.58b0f69f.chunk.js.map", - contenttype: "application/octet-stream", - offset: 12111459, - len: 81144, - }, - "static/js/1.19c370e0.chunk.js": { - filename: "static/js/1.19c370e0.chunk.js", - contenttype: "text/javascript", - offset: 15495781, - len: 40203, - }, - "static/js/1.19c370e0.chunk.js.map": { - filename: "static/js/1.19c370e0.chunk.js.map", - contenttype: "application/octet-stream", - offset: 7330179, - len: 104594, - }, - "static/js/10.8ea29dcd.chunk.js": { - filename: "static/js/10.8ea29dcd.chunk.js", - contenttype: "text/javascript", - offset: 15483299, - len: 12345, - }, - "static/js/10.8ea29dcd.chunk.js.map": { - filename: "static/js/10.8ea29dcd.chunk.js.map", - contenttype: "application/octet-stream", - offset: 14524416, - len: 30393, - }, - "static/js/11.764b8915.chunk.js": { - filename: "static/js/11.764b8915.chunk.js", - contenttype: "text/javascript", - offset: 12208196, - len: 7103, - }, - "static/js/11.764b8915.chunk.js.map": { - filename: "static/js/11.764b8915.chunk.js.map", - contenttype: "application/octet-stream", - offset: 12192603, - len: 15593, - }, - "static/js/12.88d4fbe5.chunk.js": { - filename: "static/js/12.88d4fbe5.chunk.js", - contenttype: "text/javascript", - offset: 12055261, - len: 16721, - }, - "static/js/12.88d4fbe5.chunk.js.map": { - filename: "static/js/12.88d4fbe5.chunk.js.map", - contenttype: "application/octet-stream", - offset: 14460215, - len: 46695, - }, - "static/js/13.ea207f69.chunk.js": { - filename: "static/js/13.ea207f69.chunk.js", - contenttype: "text/javascript", - offset: 7168280, - len: 347, - }, - "static/js/13.ea207f69.chunk.js.map": { - filename: "static/js/13.ea207f69.chunk.js.map", - contenttype: "application/octet-stream", - offset: 6928538, - len: 563, - }, - "static/js/14.d8bc0d4c.chunk.js": { - filename: "static/js/14.d8bc0d4c.chunk.js", - contenttype: "text/javascript", - offset: 12870711, - len: 336, - }, - "static/js/14.d8bc0d4c.chunk.js.map": { - filename: "static/js/14.d8bc0d4c.chunk.js.map", - contenttype: "application/octet-stream", - offset: 15535984, - len: 527, - }, - "static/js/15.e6215497.chunk.js": { - filename: "static/js/15.e6215497.chunk.js", - contenttype: "text/javascript", - offset: 15495644, - len: 137, - }, - "static/js/15.e6215497.chunk.js.map": { - filename: "static/js/15.e6215497.chunk.js.map", - contenttype: "application/octet-stream", - offset: 6928431, - len: 107, - }, - "static/js/2.f6da9598.chunk.js": { - filename: "static/js/2.f6da9598.chunk.js", - contenttype: "text/javascript", - offset: 14506910, - len: 17506, - }, - "static/js/2.f6da9598.chunk.js.map": { - filename: "static/js/2.f6da9598.chunk.js.map", - contenttype: "application/octet-stream", - offset: 12071982, - len: 39477, - }, - "static/js/5.5cc0868a.chunk.js": { - filename: "static/js/5.5cc0868a.chunk.js", - contenttype: "text/javascript", - offset: 10199338, - len: 1842002, - }, - "static/js/5.5cc0868a.chunk.js.LICENSE": { - filename: "static/js/5.5cc0868a.chunk.js.LICENSE", - contenttype: "application/octet-stream", - offset: 14554809, - len: 3119, - }, - "static/js/5.5cc0868a.chunk.js.map": { - filename: "static/js/5.5cc0868a.chunk.js.map", - contenttype: "application/octet-stream", - offset: 289328, - len: 6632626, - }, - "static/js/6.b7681521.chunk.js": { - filename: "static/js/6.b7681521.chunk.js", - contenttype: "text/javascript", - offset: 14237363, - len: 222852, - }, - "static/js/6.b7681521.chunk.js.map": { - filename: "static/js/6.b7681521.chunk.js.map", - contenttype: "application/octet-stream", - offset: 12215299, - len: 655412, - }, - "static/js/7.0614dbc4.chunk.js": { - filename: "static/js/7.0614dbc4.chunk.js", - contenttype: "text/javascript", - offset: 6921954, - len: 6477, - }, - "static/js/7.0614dbc4.chunk.js.map": { - filename: "static/js/7.0614dbc4.chunk.js.map", - contenttype: "application/octet-stream", - offset: 12041340, - len: 13921, - }, - "static/js/8.7975098c.chunk.js": { - filename: "static/js/8.7975098c.chunk.js", - contenttype: "text/javascript", - offset: 13796515, - len: 420712, - }, - "static/js/8.7975098c.chunk.js.LICENSE": { - filename: "static/js/8.7975098c.chunk.js.LICENSE", - contenttype: "application/octet-stream", - offset: 13796191, - len: 324, - }, - "static/js/8.7975098c.chunk.js.map": { - filename: "static/js/8.7975098c.chunk.js.map", - contenttype: "application/octet-stream", - offset: 12871047, - len: 925144, - }, - "static/js/9.cc860b76.chunk.js": { - filename: "static/js/9.cc860b76.chunk.js", - contenttype: "text/javascript", - offset: 14557928, - len: 920812, - }, - "static/js/9.cc860b76.chunk.js.LICENSE": { - filename: "static/js/9.cc860b76.chunk.js.LICENSE", - contenttype: "application/octet-stream", - offset: 15478740, - len: 4559, - }, - "static/js/9.cc860b76.chunk.js.map": { - filename: "static/js/9.cc860b76.chunk.js.map", - contenttype: "application/octet-stream", - offset: 7434773, - len: 2764565, - }, - "static/js/main.a7822f79.chunk.js": { - filename: "static/js/main.a7822f79.chunk.js", - contenttype: "text/javascript", - offset: 7168627, - len: 131523, - }, - "static/js/main.a7822f79.chunk.js.map": { - filename: "static/js/main.a7822f79.chunk.js.map", - contenttype: "application/octet-stream", - offset: 6929101, - len: 239179, - }, - "static/js/runtime-main.68d129c6.js": { - filename: "static/js/runtime-main.68d129c6.js", - contenttype: "text/javascript", - offset: 14217227, - len: 3546, - }, - "static/js/runtime-main.68d129c6.js.map": { - filename: "static/js/runtime-main.68d129c6.js.map", - contenttype: "application/octet-stream", - offset: 14220773, - len: 16590, - }, - "static/media/arrow-down-blue.cd061363.svg": { - filename: "static/media/arrow-down-blue.cd061363.svg", - contenttype: "image/svg+xml", - offset: 219284, - len: 326, - }, - "static/media/arrow-down-grey.c0dedd2f.svg": { - filename: "static/media/arrow-down-grey.c0dedd2f.svg", - contenttype: "image/svg+xml", - offset: 196726, - len: 326, - }, - "static/media/arrow-right-white.337ad716.png": { - filename: "static/media/arrow-right-white.337ad716.png", - contenttype: "image/png", - offset: 197052, - len: 12999, - }, - "static/media/arrow-right.d285b6cf.svg": { - filename: "static/media/arrow-right.d285b6cf.svg", - contenttype: "image/svg+xml", - offset: 289065, - len: 263, - }, - "static/media/circle-grey.ed2a1dad.svg": { - filename: "static/media/circle-grey.ed2a1dad.svg", - contenttype: "image/svg+xml", - offset: 210213, - len: 321, - }, - "static/media/circle.2d975615.svg": { - filename: "static/media/circle.2d975615.svg", - contenttype: "image/svg+xml", - offset: 210534, - len: 321, - }, - "static/media/coinbaseWalletIcon.62578f59.svg": { - filename: "static/media/coinbaseWalletIcon.62578f59.svg", - contenttype: "image/svg+xml", - offset: 220450, - len: 53626, - }, - "static/media/dropdown-blue.b20914ec.svg": { - filename: "static/media/dropdown-blue.b20914ec.svg", - contenttype: "image/svg+xml", - offset: 47369, - len: 164, - }, - "static/media/dropdown.7d32d2fa.svg": { - filename: "static/media/dropdown.7d32d2fa.svg", - contenttype: "image/svg+xml", - offset: 287941, - len: 164, - }, - "static/media/dropup-blue.b96d70e1.svg": { - filename: "static/media/dropup-blue.b96d70e1.svg", - contenttype: "image/svg+xml", - offset: 210051, - len: 162, - }, - "static/media/ethereum-logo.802c6eac.svg": { - filename: "static/media/ethereum-logo.802c6eac.svg", - contenttype: "image/svg+xml", - offset: 219610, - len: 840, - }, - "static/media/magnifying-glass.67440097.svg": { - filename: "static/media/magnifying-glass.67440097.svg", - contenttype: "image/svg+xml", - offset: 210855, - len: 8429, - }, - "static/media/metamask.023762b6.png": { - filename: "static/media/metamask.023762b6.png", - contenttype: "image/png", - offset: 61600, - len: 114217, - }, - "static/media/plus-blue.e8021e51.svg": { - filename: "static/media/plus-blue.e8021e51.svg", - contenttype: "image/svg+xml", - offset: 196237, - len: 190, - }, - "static/media/plus-grey.d8e0be7d.svg": { - filename: "static/media/plus-grey.d8e0be7d.svg", - contenttype: "image/svg+xml", - offset: 288875, - len: 190, - }, - "static/media/portisIcon.b234b2bf.png": { - filename: "static/media/portisIcon.b234b2bf.png", - contenttype: "image/png", - offset: 274076, - len: 13865, - }, - "static/media/question-mark.1ae4d9f4.svg": { - filename: "static/media/question-mark.1ae4d9f4.svg", - contenttype: "image/svg+xml", - offset: 175817, - len: 818, - }, - "static/media/question.cc0a2451.svg": { - filename: "static/media/question.cc0a2451.svg", - contenttype: "image/svg+xml", - offset: 288105, - len: 770, - }, - "static/media/spinner.be00fc4a.svg": { - filename: "static/media/spinner.be00fc4a.svg", - contenttype: "image/svg+xml", - offset: 47533, - len: 694, - }, - "static/media/trustWallet.edcc1ab5.png": { - filename: "static/media/trustWallet.edcc1ab5.png", - contenttype: "image/png", - offset: 176635, - len: 19602, - }, - "static/media/walletConnectIcon.8215855c.svg": { - filename: "static/media/walletConnectIcon.8215855c.svg", - contenttype: "image/svg+xml", - offset: 48227, - len: 13373, - }, - "static/media/x.5b8e2186.svg": { - filename: "static/media/x.5b8e2186.svg", - contenttype: "image/svg+xml", - offset: 196427, - len: 299, - }, - }, - }, - headers: { - "skynet-skylink": "EADWpKD0myqH2tZa6xtKebg6kNnwYnI94fl4R8UKgNrmOA", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -const developMomentumBodyHash = "08e96877dd6c99c3e1d98105f2fd9df377b53d65"; -const developMomentumMetadata = require("../fixtures/developMomentumMetadata.json"); - -// developMomentumCheck returns the result of trying to download the skylink -// for the Develop Momentum Application -function developMomentumCheck(done) { - const linkInfo = { - name: "Develop Momentum Index File", - skylink: "EAA1fG_ip4C1Vi1Ijvsr1oyr8jpH0Bo9HXya0T3kw-elGw/", - bodyHash: developMomentumBodyHash, - // metadata: developMomentumMetadata, - headers: { - "skynet-skylink": "EAA1fG_ip4C1Vi1Ijvsr1oyr8jpH0Bo9HXya0T3kw-elGw", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// developMomentumRedirectCheck returns the result of trying to download the skylink -// for the Develop Momentum Application without the tailing slash -function developMomentumRedirectCheck(done) { - const linkInfo = { - name: "Develop Momentum Index File - no trailing slash", - skylink: "EAA1fG_ip4C1Vi1Ijvsr1oyr8jpH0Bo9HXya0T3kw-elGw", - bodyHash: developMomentumBodyHash, - metadata: developMomentumMetadata, - headers: { - "skynet-skylink": "EAA1fG_ip4C1Vi1Ijvsr1oyr8jpH0Bo9HXya0T3kw-elGw", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// developMomentumIndexFileCheck returns the result of trying to download the skylink -// for the Develop Momentum Application with a trailing /index.html -function developMomentumIndexFileCheck(done) { - const linkInfo = { - name: "Develop Momentum Index File", - skylink: "EAA1fG_ip4C1Vi1Ijvsr1oyr8jpH0Bo9HXya0T3kw-elGw/index.html", - bodyHash: developMomentumBodyHash, - headers: { - "skynet-skylink": "EAA1fG_ip4C1Vi1Ijvsr1oyr8jpH0Bo9HXya0T3kw-elGw", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// htmlExampleCheck returns the result of trying to download the skylink -// for the Example HTML file on siasky.net -function htmlExampleCheck(done) { - const linkInfo = { - name: "HTML Example", - skylink: "PAL0w4SdA5rFCDGEutgpeQ50Om-YkBabtXVOJAkmedslKw", - bodyHash: "ecffcfbb74e017698cad30a91a74b9ba0b046413", - metadata: { filename: "introduction – Sia API Documentation.html" }, - headers: { - "skynet-skylink": "PAL0w4SdA5rFCDGEutgpeQ50Om-YkBabtXVOJAkmedslKw", - "content-disposition": 'inline; filename="introduction â\x80\x93 Sia API Documentation.html"', - "content-type": "text/html; charset=utf-8", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// imageExampleCheck returns the result of trying to download the skylink -// for the Example image on siasky.net -function imageExampleCheck(done) { - const linkInfo = { - name: "Image Example", - skylink: "IADUs8d9CQjUO34LmdaaNPK_STuZo24rpKVfYW3wPPM2uQ", - bodyHash: "e318667a9d53a45a9d010ac4e0d120ad064279ac", - metadata: { filename: "sia-lm.png" }, - headers: { - "skynet-skylink": "IADUs8d9CQjUO34LmdaaNPK_STuZo24rpKVfYW3wPPM2uQ", - "content-disposition": 'inline; filename="sia-lm.png"', - "content-type": "image/png", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// jsonExampleCheck returns the result of trying to download the skylink -// for the Example JSON file on siasky.net -function jsonExampleCheck(done) { - const linkInfo = { - name: "JSON Example", - skylink: "AAC0uO43g64ULpyrW0zO3bjEknSFbAhm8c-RFP21EQlmSQ", - bodyHash: "b514603ce8acd937197712700e21259f18a857d6", - metadata: { filename: "consensus.json" }, - headers: { - "skynet-skylink": "AAC0uO43g64ULpyrW0zO3bjEknSFbAhm8c-RFP21EQlmSQ", - "content-disposition": 'inline; filename="consensus.json"', - "content-type": "application/json", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// pdfExampleCheck returns the result of trying to download the skylink -// for the Example PDF file on siasky.net -function pdfExampleCheck(done) { - const linkInfo = { - name: "PDF Example", - skylink: "XABvi7JtJbQSMAcDwnUnmp2FKDPjg8_tTTFP4BwMSxVdEg", - bodyHash: "7e079f7afc9e5bc0c1be04543e22ac552a14a8da", - metadata: { filename: "sia.pdf" }, - headers: { - "skynet-skylink": "XABvi7JtJbQSMAcDwnUnmp2FKDPjg8_tTTFP4BwMSxVdEg", - "content-disposition": 'inline; filename="sia.pdf"', - "content-type": "application/pdf", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// skyBayCheck returns the result of trying to download the skylink for the SkyBay Application. -function skyBayCheck(done) { - const linkInfo = { - name: "SkyBay", - skylink: "EABkMjXzxJRpPz0eO0Or5fy2eo-rz3prdigGwRlyNd9mwA/", - bodyHash: "dfc0b1d3d1113254d7545d19f6118855ed9c778b", - metadata: { - filename: "skybay.html", - subfiles: { "skybay.html": { filename: "skybay.html", contenttype: "text/html", len: 11655 } }, - }, - headers: { - "skynet-skylink": "EABkMjXzxJRpPz0eO0Or5fy2eo-rz3prdigGwRlyNd9mwA", - "content-disposition": 'inline; filename="skybay.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// skyBayRedirectCheck returns the result of trying to download the skylink -// for the SkyBay Application with no trailing slash. -function skyBayRedirectCheck(done) { - const linkInfo = { - name: "SkyBay Redirect", - skylink: "EABkMjXzxJRpPz0eO0Or5fy2eo-rz3prdigGwRlyNd9mwA", - bodyHash: "dfc0b1d3d1113254d7545d19f6118855ed9c778b", - metadata: { - filename: "skybay.html", - subfiles: { "skybay.html": { filename: "skybay.html", contenttype: "text/html", len: 11655 } }, - }, - headers: { - "skynet-skylink": "EABkMjXzxJRpPz0eO0Or5fy2eo-rz3prdigGwRlyNd9mwA", - "content-disposition": 'inline; filename="skybay.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// skyBinCheck returns the result of trying to download the skylink for the SkyBin Application. -function skyBinCheck(done) { - const linkInfo = { - name: "SkyBin", - skylink: "CAAVU14pB9GRIqCrejD7rlS27HltGGiiCLICzmrBV0wVtA/", - bodyHash: "858ff733c4cb06a80060b8a62cf303fd5a051651", - metadata: { filename: "skybin.html" }, - headers: { - "skynet-skylink": "CAAVU14pB9GRIqCrejD7rlS27HltGGiiCLICzmrBV0wVtA", - "content-disposition": 'inline; filename="skybin.html"', - "content-type": "text/html; charset=utf-8", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// skyBinRedirectCheck returns the result of trying to download the skylink -// for the SkyBin Application with no trailing slash. -function skyBinRedirectCheck(done) { - const linkInfo = { - name: "SkyBin Redirect", - skylink: "CAAVU14pB9GRIqCrejD7rlS27HltGGiiCLICzmrBV0wVtA", - bodyHash: "858ff733c4cb06a80060b8a62cf303fd5a051651", - metadata: { filename: "skybin.html" }, - headers: { - "skynet-skylink": "CAAVU14pB9GRIqCrejD7rlS27HltGGiiCLICzmrBV0wVtA", - "content-disposition": 'inline; filename="skybin.html"', - "content-type": "text/html; charset=utf-8", - }, - }; - - skylinkVerification(done, linkInfo); -} - -const skyGalleryBodyHash = "cb5905023a29bdd60d58817f26503345c9a1bd09"; -const skyGalleryMetadata = require("../fixtures/skygalleryMetadata.json"); - -// skyGalleryCheck returns the result of trying to download the skylink for the SkyGallery Application. -function skyGalleryCheck(done) { - const linkInfo = { - name: "SkyGallery", - skylink: "AADW6GsQcetwDBaDYnGCSTbYjSKY743NtY1A5VRx5sj3Dg/", - bodyHash: skyGalleryBodyHash, - metadata: skyGalleryMetadata, - headers: { - "skynet-skylink": "AADW6GsQcetwDBaDYnGCSTbYjSKY743NtY1A5VRx5sj3Dg", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// skyGalleryIndexFileCheck returns the result of trying to download the skylink -// for the SkyGallery Application with a trailing /index.html -function skyGalleryIndexFileCheck(done) { - const linkInfo = { - name: "SkyGallery Index File", - skylink: "AADW6GsQcetwDBaDYnGCSTbYjSKY743NtY1A5VRx5sj3Dg/index.html", - bodyHash: skyGalleryBodyHash, - headers: { - "skynet-skylink": "AADW6GsQcetwDBaDYnGCSTbYjSKY743NtY1A5VRx5sj3Dg", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// skyGalleryRedirectCheck returns the result of trying to download the skylink -// for the SkyGallery Application with no trailing slash. -function skyGalleryRedirectCheck(done) { - const linkInfo = { - name: "SkyGallery Redirect", - skylink: "AADW6GsQcetwDBaDYnGCSTbYjSKY743NtY1A5VRx5sj3Dg", - bodyHash: skyGalleryBodyHash, - metadata: skyGalleryMetadata, - headers: { - "skynet-skylink": "AADW6GsQcetwDBaDYnGCSTbYjSKY743NtY1A5VRx5sj3Dg", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// uncensoredLibraryCheck returns the result of trying to download the skylink -// for the uncensored library skylink -function uncensoredLibraryCheck(done) { - const linkInfo = { - name: "Unzip The Uncensored Library Map", - skylink: "AAC5glnZyNJ4Ieb4MhnYJGtID6qdMqEjl0or5EvEMt7bWQ", - bodyHash: "cd0377661eefd656c8b46c497aa03112393ba893", - metadata: { - filename: "Unzip_The_Uncensored_Library_Map.zip", - subfiles: { - "Unzip_The_Uncensored_Library_Map.zip": { - filename: "Unzip_The_Uncensored_Library_Map.zip", - contenttype: "application/zip", - len: 76744822, - }, - }, - }, - headers: { - "skynet-skylink": "AAC5glnZyNJ4Ieb4MhnYJGtID6qdMqEjl0or5EvEMt7bWQ", - "content-disposition": 'inline; filename="Unzip_The_Uncensored_Library_Map.zip"', - "content-type": "application/zip", - }, - }; - - skylinkVerification(done, linkInfo); -} - -function uncensoredLibraryPressReleaseCheck(done) { - const linkInfo = { - name: "The Uncensored Library - Press Release", - skylink: "AABHwuml_EhvyY8Gm7j1E2xGwodUNAJgX0A6-Cd22p9kNA", - bodyHash: "da39a3ee5e6b4b0d3255bfef95601890afd80709", - metadata: { - filename: "press-release-Reporters-Without-Borders-The-Uncensored-Library.zip", - subfiles: { - "press-release-Reporters-Without-Borders-The-Uncensored-Library.zip": { - filename: "press-release-Reporters-Without-Borders-The-Uncensored-Library.zip", - contenttype: "application/zip", - len: 383501533, - }, - }, - }, - headers: { - "skynet-skylink": "AABHwuml_EhvyY8Gm7j1E2xGwodUNAJgX0A6-Cd22p9kNA", - "content-disposition": 'inline; filename="press-release-Reporters-Without-Borders-The-Uncensored-Library.zip"', - "content-type": "application/zip", - }, - }; - - // request too large, use head just to verify the headers - skylinkVerification(done, linkInfo, { method: "head" }); -} - -function uncensoredLibraryV2Check(done) { - const linkInfo = { - name: "The Uncensored Library V2", - skylink: "AAAs-JOsRGWgABYIo7AwTDqSX79-BxQKjDj0wiRGoRPFnw", - bodyHash: "f2a802c2b7482825613a08853538203a53c96bd1", - metadata: { - filename: "The Uncensored Library V2.zip", - subfiles: { - "The Uncensored Library V2.zip": { - filename: "The Uncensored Library V2.zip", - contenttype: "application/zip", - len: 101262134, - }, - }, - }, - headers: { - "skynet-skylink": "AAAs-JOsRGWgABYIo7AwTDqSX79-BxQKjDj0wiRGoRPFnw", - "content-disposition": 'inline; filename="The Uncensored Library V2.zip"', - "content-type": "application/zip", - }, - }; - - skylinkVerification(done, linkInfo); -} - -function bitcoinWhitepaper(done) { - skylinkVerification(done, { - name: "Bitcoin Whitepaper", - skylink: "3ACpC9Umme41zlWUgMQh1fw0sNwgWwyfDDhRQ9Sppz9hjQ", - bodyHash: "8de2fdb04edce612738eb51e14ecc426381f8ed8", - headers: { - "skynet-skylink": "3ACpC9Umme41zlWUgMQh1fw0sNwgWwyfDDhRQ9Sppz9hjQ", - "content-disposition": 'inline; filename="bitcoin.pdf"', - "content-type": "application/pdf", - }, - }); -} - -const uniswapBodyHash = "3965f9a7def085b3a764ddc76a528eda38d72359"; -const uniswapMetadata = require("../fixtures/uniswapMetadata.json"); - -// uniswapCheck returns the result of trying to download the skylink -// for the Uniswap Application -function uniswapCheck(done) { - const linkInfo = { - name: "Uniswap", - skylink: "IAC6CkhNYuWZqMVr1gob1B6tPg4MrBGRzTaDvAIAeu9A9w/", - bodyHash: uniswapBodyHash, - metadata: uniswapMetadata, - }; - - skylinkVerification(done, linkInfo); -} - -// uniswapRedirectCheck returns the result of trying to download the skylink -// for the Uniswap Application without a trailing slash -function uniswapRedirectCheck(done) { - const linkInfo = { - name: "Uniswap", - skylink: "IAC6CkhNYuWZqMVr1gob1B6tPg4MrBGRzTaDvAIAeu9A9w", - bodyHash: uniswapBodyHash, - metadata: uniswapMetadata, - }; - - skylinkVerification(done, linkInfo); -} - -// uniswapIndexFileCheck returns the result of trying to download the skylink -// for the Uniswap Application with a trailing /index.html -function uniswapIndexFileCheck(done) { - const linkInfo = { - name: "Uniswap Skylink Index File", - skylink: "IAC6CkhNYuWZqMVr1gob1B6tPg4MrBGRzTaDvAIAeu9A9w/index.html", - bodyHash: uniswapBodyHash, - metadata: { - filename: "/index.html", - length: 3268, - subfiles: { "index.html": { filename: "index.html", contenttype: "text/html", len: 3268 } }, - }, - }; - - skylinkVerification(done, linkInfo); -} - -// uniswapHNSCheck returns the result of trying to download the skylink -// for the Uniswap Application with the HNS domain -function uniswapHNSCheck(done) { - const linkInfo = { - name: "Uniswap HNS", - skylink: "hns/uniswap-dex/", - bodyHash: uniswapBodyHash, - metadata: uniswapMetadata, - }; - - skylinkVerification(done, linkInfo); -} - -// uniswapHNSRedirectCheck returns the result of trying to download the skylink -// for the Uniswap Application with the HNS domain and without a trailing slash -function uniswapHNSRedirectCheck(done) { - const linkInfo = { - name: "Uniswap HNS Redirect", - skylink: "hns/uniswap-dex", - bodyHash: uniswapBodyHash, - metadata: uniswapMetadata, - }; - - skylinkVerification(done, linkInfo); -} - -// uniswapHNSResolverCheck returns the result of trying to download the skylink -// for the Uniswap Application via the HNS resolver endpoint -function uniswapHNSResolverCheck(done) { - const linkInfo = { - name: "Uniswap HNS Resolver", - skylink: "hnsres/uniswap-dex/", - bodyHash: "3634496800c254b93f9dcbca2aeb53e644f706c0", - }; - - skylinkVerification(done, linkInfo); -} - -// uniswapHNSResolverRedirectCheck returns the result of trying to download the skylink -// for the Uniswap Application via the HNS resolver endpoint without the -// trailing slash -function uniswapHNSResolverRedirectCheck(done) { - const linkInfo = { - name: "Uniswap HNS Resolver Redirect", - skylink: "hnsres/uniswap-dex", - bodyHash: "3634496800c254b93f9dcbca2aeb53e644f706c0", - }; - - skylinkVerification(done, linkInfo); -} - -// check whether content disposition is set correctly for downloads -function fileEndpointCheck(done) { - const linkInfo = { - name: "File endpoint check", - skylink: "file/XABvi7JtJbQSMAcDwnUnmp2FKDPjg8_tTTFP4BwMSxVdEg", - bodyHash: "7e079f7afc9e5bc0c1be04543e22ac552a14a8da", - // metadata: { filename: "sia2.pdf" }, - headers: { - "skynet-skylink": "XABvi7JtJbQSMAcDwnUnmp2FKDPjg8_tTTFP4BwMSxVdEg", - "content-disposition": 'attachment; filename="sia.pdf"', - "content-type": "application/pdf", - }, - }; - - skylinkVerification(done, linkInfo); -} - -// check whether hns/note-to-self would properly redirect to note-to-self/ -function hnsEndpointDirectoryRedirect(done) { - const expected = { - name: "hns endpoint directory redirect", - skylink: "hns/note-to-self", - statusCode: 308, - headers: { - location: "note-to-self/", - }, - }; - - skylinkVerification(done, expected, { followRedirect: false }); -} - -function skappSkySend(done) { - skylinkVerification(done, { - name: "skysend.hns", - source: "https://github.com/redsolver/skysend/", - skylink: "GADlWH3ALR2g1cDUBI6Ti8B22iD7R5dfn_8jLfq-atm5iw", - bodyHash: "35bc25301501a3b28913ca7a7a06120681365a9c", - headers: { - "skynet-skylink": "GADlWH3ALR2g1cDUBI6Ti8B22iD7R5dfn_8jLfq-atm5iw", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }); -} - -function skappNoteToSelf(done) { - skylinkVerification(done, { - name: "note-to-self.hns", - source: "https://github.com/kwypchlo/note-to-self/", - skylink: "EAD_w2YcqtpqVgtRwKXPno9VmKfTcVG3E_OIL-Np_Hz_1g", - bodyHash: "e00c1b7348dd419e96bf3c188185a5fb8d04af53", - headers: { - "skynet-skylink": "EAD_w2YcqtpqVgtRwKXPno9VmKfTcVG3E_OIL-Np_Hz_1g", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }); -} - -function skappUniswap(done) { - skylinkVerification(done, { - name: "uniswap skynet labs fork", - source: "https://github.com/SkynetLabs/uniswap-interface/", - skylink: "OAAy4_g9EYfuOiUZlz_irkoPgsc_seAjgGozerrT1QvE5A", - bodyHash: "db2882b7902f24d62e49905b77d536aaf7b7da75", - headers: { - "skynet-skylink": "OAAy4_g9EYfuOiUZlz_irkoPgsc_seAjgGozerrT1QvE5A", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }); -} - -function skappHackerPaste(done) { - skylinkVerification(done, { - name: "hackerpaste.hns", - source: "https://github.com/harej/hackerpaste/", - skylink: "_AGZuZCyRn5kZMFHBssWYc20poXyez1XMO6hmPqAVcM1qg", - bodyHash: "12817ac933b7f64fc63ae24a652132ed11e5b622", - headers: { - "skynet-skylink": "_AGZuZCyRn5kZMFHBssWYc20poXyez1XMO6hmPqAVcM1qg", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }); -} - -function skappHowAboutSkapp(done) { - skylinkVerification(done, { - name: "tirthahalli.hns", - source: "-", - skylink: "AAAsdvGalu2Fj9P5zLvZhfwoI0CpXeO_kPMSG_YU1PSIWg", - bodyHash: "734c49ddde2a49ac6ddbf1c6d90a014ff82e2f87", - headers: { - "skynet-skylink": "AAAsdvGalu2Fj9P5zLvZhfwoI0CpXeO_kPMSG_YU1PSIWg", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }); -} - -function skappSkyDeploy(done) { - skylinkVerification(done, { - name: "sky-deploy.hns", - source: "-", - skylink: "CABR1ic_lIPaN9JYLG6AiudkW5GShRd-Cr6Wkjur7z29Rw", - bodyHash: "b2b0498a8a7f6fcfe76c29ae1a1176b4e64cb5ab", - headers: { - "skynet-skylink": "CABR1ic_lIPaN9JYLG6AiudkW5GShRd-Cr6Wkjur7z29Rw", - "content-disposition": 'inline; filename="index.html"', - "content-type": "text/html", - }, - }); -} - -function parseHeaderString(header) { - try { - return JSON.parse(header); - } catch { - return header; - } -} - -// skylinkVerification verifies a skylink against provided information. -async function skylinkVerification(done, expected, { followRedirect = true, method = "get" } = {}) { - const authCookie = await getAuthCookie(); - const time = process.hrtime(); - const details = { name: expected.name, skylink: expected.skylink }; - - try { - const query = `https://${process.env.PORTAL_DOMAIN}/${expected.skylink}`; - const response = await got[method](query, { followRedirect, headers: { cookie: `nocache=true;${authCookie}` } }); - const entry = { ...details, up: true, statusCode: response.statusCode, time: calculateElapsedTime(time) }; - const info = {}; - - if (expected.statusCode && expected.statusCode !== response.statusCode) { - entry.up = false; - info.statusCode = { expected: expected.statusCode, current: response.statusCode }; - } - - // Check if the response body is valid by checking against the known hash - if ("bodyHash" in expected) { - const currentBodyHash = hasha(response.rawBody, { algorithm: "sha1" }); - if (currentBodyHash !== expected.bodyHash) { - entry.up = false; - info.bodyHash = { expected: expected.bodyHash, current: currentBodyHash }; - } - } - - if (expected.headers) { - Object.entries(expected.headers).forEach(([headerName, expectedHeader]) => { - const currentHeader = parseHeaderString(response.headers[headerName]); - if (!isEqual(currentHeader, expectedHeader)) { - entry.up = false; - info.headers = info.headers ?? {}; - if (typeof currentHeader === "object") { - info.headers[headerName] = ensureValidJSON(detailedDiff(expectedHeader, currentHeader)); - } else { - info.headers[headerName] = { expected: expectedHeader, current: currentHeader }; - } - } - }); - } - - if (expected.metadata && expected.skylink) { - const skylink = parseSkylink(expected.skylink); - const url = `https://${process.env.PORTAL_DOMAIN}/skynet/metadata/${skylink}`; - try { - const metadata = await got(url, { headers: { cookie: `nocache=true;${authCookie}` } }).json(); - if (!isEqual(expected.metadata, metadata)) { - entry.up = false; - info.metadata = { url, diff: ensureValidJSON(detailedDiff(expected.metadata, metadata)) }; - } - } catch (error) { - entry.up = false; - info.metadata = { - url, - ip: error?.response?.ip ?? null, - statusCode: error?.response?.statusCode || error.statusCode || error.status, - errorMessage: error.message, - errorResponseContent: getResponseContent(error.response), - }; - } - } - - if (Object.keys(info).length) entry.info = info; // add info only if it exists - - done(entry); // Return the entry information - } catch (error) { - done({ - ...details, - up: false, - ip: error?.response?.ip ?? null, - statusCode: error?.response?.statusCode || error.statusCode || error.status, - errorMessage: error.message, - errorResponseContent: getResponseContent(error.response), - time: calculateElapsedTime(time), - }); - } -} - -module.exports = [ - audioExampleCheck, - covid19PaperCheck, - covid19CoroNopePaperCheck, - dappExampleCheck, - developMomentumIndexFileCheck, - developMomentumCheck, - developMomentumRedirectCheck, - htmlExampleCheck, - imageExampleCheck, - jsonExampleCheck, - pdfExampleCheck, - skyBayCheck, - skyBayRedirectCheck, - skyBinCheck, - skyBinRedirectCheck, - skyGalleryCheck, - skyGalleryIndexFileCheck, - skyGalleryRedirectCheck, - uncensoredLibraryCheck, - uncensoredLibraryPressReleaseCheck, - uncensoredLibraryV2Check, - fileEndpointCheck, - bitcoinWhitepaper, - // uniswapIndexFileCheck, - // uniswapCheck, - // uniswapRedirectCheck, - // uniswapHNSCheck, - // uniswapHNSRedirectCheck, - uniswapHNSResolverCheck, - uniswapHNSResolverRedirectCheck, - hnsEndpointDirectoryRedirect, - skappSkySend, - skappNoteToSelf, - skappUniswap, - skappHackerPaste, - skappHowAboutSkapp, - skappSkyDeploy, -]; diff --git a/packages/health-check/src/checks/middleware.js b/packages/health-check/src/checks/middleware.js deleted file mode 100644 index 98ad71e1..00000000 --- a/packages/health-check/src/checks/middleware.js +++ /dev/null @@ -1,45 +0,0 @@ -const got = require("got"); -const { ipCheckService, ipRegex } = require("../utils"); - -const getCurrentAddress = async () => { - // use serverip env variable when available (set via Dockerfile) - if (process.env.serverip) { - if (ipRegex.test(process.env.serverip)) return process.env.serverip; - - // log error to console for future reference but do not break - console.log(`Environment variable serverip contains invalid ip: "${process.env.serverip}"`); - } - - try { - const { body } = await got(`http://${ipCheckService}`); - if (ipRegex.test(body)) { - console.info(`Server public ip: ${body} (source: ${ipCheckService})`); - - return body; - } - - throw new Error(`${ipCheckService} responded with invalid ip: "${body}"`); - } catch (error) { - console.log(error.message); // log error to console for future reference - - return null; - } -}; - -module.exports = async function middleware() { - const ip = await getCurrentAddress(); - - return (check) => { - // check only if current ip and check ip are provided - if (ip && check.ip && check.ip !== ip) { - check.up = false; - check.errors = check.errors ?? []; - check.errors.push({ - message: "Response ip was different than current server ip - possibly there was an error with routing request", - data: { response: check.ip, server: ip }, - }); - } - - return check; - }; -}; diff --git a/packages/health-check/src/db.js b/packages/health-check/src/db.js deleted file mode 100644 index d7e47708..00000000 --- a/packages/health-check/src/db.js +++ /dev/null @@ -1,12 +0,0 @@ -const fs = require("graceful-fs"); -const low = require("lowdb"); -const FileSyncAtomic = require("./adapters/FileSyncAtomic"); - -if (!fs.existsSync(process.env.STATE_DIR)) fs.mkdirSync(process.env.STATE_DIR); - -const adapter = new FileSyncAtomic(`${process.env.STATE_DIR}/state.json`); -const db = low(adapter); - -db.defaults({ disabled: false, critical: [], extended: [] }).write(); - -module.exports = db; diff --git a/packages/health-check/src/fixtures/developMomentumMetadata.json b/packages/health-check/src/fixtures/developMomentumMetadata.json deleted file mode 100644 index dec5b298..00000000 --- a/packages/health-check/src/fixtures/developMomentumMetadata.json +++ /dev/null @@ -1,322 +0,0 @@ -{ - "filename": "output", - "subfiles": { - ".well-known/brave-rewards-verification.txt": { - "filename": ".well-known/brave-rewards-verification.txt", - "contenttype": "text/plain", - "len": 154 - }, - "404.html": { "filename": "404.html", "contenttype": "text/html", "offset": 154, "len": 5482 }, - "assets/bootstrap/bootstrap-grid.css": { - "filename": "assets/bootstrap/bootstrap-grid.css", - "contenttype": "text/css", - "offset": 5636, - "len": 49901 - }, - "assets/bootstrap/bootstrap-reboot.css": { - "filename": "assets/bootstrap/bootstrap-reboot.css", - "contenttype": "text/css", - "offset": 55537, - "len": 4187 - }, - "assets/bootstrap/bootstrap.css": { - "filename": "assets/bootstrap/bootstrap.css", - "contenttype": "text/css", - "offset": 59724, - "len": 172594 - }, - "assets/css/styles.css": { - "filename": "assets/css/styles.css", - "contenttype": "text/css", - "offset": 232318, - "len": 4887 - }, - "assets/fonts/dm-serif-display-v4-latin-regular.woff": { - "filename": "assets/fonts/dm-serif-display-v4-latin-regular.woff", - "contenttype": "application/font-woff", - "offset": 237205, - "len": 29916 - }, - "assets/fonts/dm-serif-display-v4-latin-regular.woff2": { - "filename": "assets/fonts/dm-serif-display-v4-latin-regular.woff2", - "contenttype": "application/octet-stream", - "offset": 267121, - "len": 24980 - }, - "assets/fonts/open-sans-v16-latin-regular.woff": { - "filename": "assets/fonts/open-sans-v16-latin-regular.woff", - "contenttype": "application/font-woff", - "offset": 292101, - "len": 18100 - }, - "assets/fonts/open-sans-v16-latin-regular.woff2": { - "filename": "assets/fonts/open-sans-v16-latin-regular.woff2", - "contenttype": "application/octet-stream", - "offset": 310201, - "len": 14380 - }, - "assets/fonts/questrial-v9-latin-regular.woff": { - "filename": "assets/fonts/questrial-v9-latin-regular.woff", - "contenttype": "application/font-woff", - "offset": 324581, - "len": 23048 - }, - "assets/fonts/questrial-v9-latin-regular.woff2": { - "filename": "assets/fonts/questrial-v9-latin-regular.woff2", - "contenttype": "application/octet-stream", - "offset": 347629, - "len": 13776 - }, - "assets/images/blog/2a40df99-1847-4726-9c5b-af4779eeb667-w1920-h1440.jpg": { - "filename": "assets/images/blog/2a40df99-1847-4726-9c5b-af4779eeb667-w1920-h1440.jpg", - "contenttype": "image/jpeg", - "offset": 361405, - "len": 79551 - }, - "assets/images/blog/2a40df99-1847-4726-9c5b-af4779eeb667-w960-h720.jpg": { - "filename": "assets/images/blog/2a40df99-1847-4726-9c5b-af4779eeb667-w960-h720.jpg", - "contenttype": "image/jpeg", - "offset": 440956, - "len": 31700 - }, - "assets/images/blog/2a40df99-1847-4726-9c5b-af4779eeb667.jpg": { - "filename": "assets/images/blog/2a40df99-1847-4726-9c5b-af4779eeb667.jpg", - "contenttype": "image/jpeg", - "offset": 472656, - "len": 69094 - }, - "assets/images/blog/512e4dd1-6b3d-41aa-80a1-b96c3370b3c3-w1920-h1440.jpg": { - "filename": "assets/images/blog/512e4dd1-6b3d-41aa-80a1-b96c3370b3c3-w1920-h1440.jpg", - "contenttype": "image/jpeg", - "offset": 541750, - "len": 219602 - }, - "assets/images/blog/512e4dd1-6b3d-41aa-80a1-b96c3370b3c3-w960-h720.jpg": { - "filename": "assets/images/blog/512e4dd1-6b3d-41aa-80a1-b96c3370b3c3-w960-h720.jpg", - "contenttype": "image/jpeg", - "offset": 761352, - "len": 67741 - }, - "assets/images/blog/512e4dd1-6b3d-41aa-80a1-b96c3370b3c3.jpg": { - "filename": "assets/images/blog/512e4dd1-6b3d-41aa-80a1-b96c3370b3c3.jpg", - "contenttype": "image/jpeg", - "offset": 829093, - "len": 226910 - }, - "assets/images/blog/823a7764-af7c-4687-a42e-bd70768068ab-w1920-h1440.jpg": { - "filename": "assets/images/blog/823a7764-af7c-4687-a42e-bd70768068ab-w1920-h1440.jpg", - "contenttype": "image/jpeg", - "offset": 1056003, - "len": 258292 - }, - "assets/images/blog/823a7764-af7c-4687-a42e-bd70768068ab-w960-h720.jpg": { - "filename": "assets/images/blog/823a7764-af7c-4687-a42e-bd70768068ab-w960-h720.jpg", - "contenttype": "image/jpeg", - "offset": 1314295, - "len": 93250 - }, - "assets/images/blog/823a7764-af7c-4687-a42e-bd70768068ab.jpg": { - "filename": "assets/images/blog/823a7764-af7c-4687-a42e-bd70768068ab.jpg", - "contenttype": "image/jpeg", - "offset": 1407545, - "len": 236722 - }, - "assets/images/blog/9aeea0d6-737c-4be8-8b63-5ec38cbf394b-w1920-h1440.jpg": { - "filename": "assets/images/blog/9aeea0d6-737c-4be8-8b63-5ec38cbf394b-w1920-h1440.jpg", - "contenttype": "image/jpeg", - "offset": 1644267, - "len": 285727 - }, - "assets/images/blog/9aeea0d6-737c-4be8-8b63-5ec38cbf394b-w960-h720.jpg": { - "filename": "assets/images/blog/9aeea0d6-737c-4be8-8b63-5ec38cbf394b-w960-h720.jpg", - "contenttype": "image/jpeg", - "offset": 1929994, - "len": 115524 - }, - "assets/images/blog/9aeea0d6-737c-4be8-8b63-5ec38cbf394b.jpg": { - "filename": "assets/images/blog/9aeea0d6-737c-4be8-8b63-5ec38cbf394b.jpg", - "contenttype": "image/jpeg", - "offset": 2045518, - "len": 338905 - }, - "assets/images/blog/a1ee6dcf-55ef-43cd-ae05-682d2e28e932-w1920-h1440.jpg": { - "filename": "assets/images/blog/a1ee6dcf-55ef-43cd-ae05-682d2e28e932-w1920-h1440.jpg", - "contenttype": "image/jpeg", - "offset": 2384423, - "len": 66608 - }, - "assets/images/blog/a1ee6dcf-55ef-43cd-ae05-682d2e28e932-w960-h720.jpg": { - "filename": "assets/images/blog/a1ee6dcf-55ef-43cd-ae05-682d2e28e932-w960-h720.jpg", - "contenttype": "image/jpeg", - "offset": 2451031, - "len": 23239 - }, - "assets/images/blog/a1ee6dcf-55ef-43cd-ae05-682d2e28e932.jpg": { - "filename": "assets/images/blog/a1ee6dcf-55ef-43cd-ae05-682d2e28e932.jpg", - "contenttype": "image/jpeg", - "offset": 2474270, - "len": 82334 - }, - "assets/images/blog/content/17343f27-a62f-4193-a0e5-4190d948eb2e.png": { - "filename": "assets/images/blog/content/17343f27-a62f-4193-a0e5-4190d948eb2e.png", - "contenttype": "image/png", - "offset": 2556604, - "len": 8571 - }, - "assets/images/blog/content/1748cc9c-9ea0-47b8-a110-ad3a114408d1.png": { - "filename": "assets/images/blog/content/1748cc9c-9ea0-47b8-a110-ad3a114408d1.png", - "contenttype": "image/png", - "offset": 2565175, - "len": 19776 - }, - "assets/images/blog/content/27b98c5e-ba57-47e6-9fe7-9b82fb89868b.jpg": { - "filename": "assets/images/blog/content/27b98c5e-ba57-47e6-9fe7-9b82fb89868b.jpg", - "contenttype": "image/jpeg", - "offset": 2584951, - "len": 68054 - }, - "assets/images/blog/content/39374de9-f24a-46f6-9955-982687607c6d.png": { - "filename": "assets/images/blog/content/39374de9-f24a-46f6-9955-982687607c6d.png", - "contenttype": "image/png", - "offset": 2653005, - "len": 30305 - }, - "assets/images/blog/content/5c660f5c-04fb-46cd-9846-edccb9a7b778.jpg": { - "filename": "assets/images/blog/content/5c660f5c-04fb-46cd-9846-edccb9a7b778.jpg", - "contenttype": "image/jpeg", - "offset": 2683310, - "len": 10409 - }, - "assets/images/blog/content/5cb6fb87-75d0-4aa4-99c7-b7815ca7ea70.png": { - "filename": "assets/images/blog/content/5cb6fb87-75d0-4aa4-99c7-b7815ca7ea70.png", - "contenttype": "image/png", - "offset": 2693719, - "len": 123977 - }, - "assets/images/blog/content/765827f6-192b-48c9-b3e1-cb7b33e3b881.png": { - "filename": "assets/images/blog/content/765827f6-192b-48c9-b3e1-cb7b33e3b881.png", - "contenttype": "image/png", - "offset": 2817696, - "len": 110297 - }, - "assets/images/blog/content/7b39a2f8-8060-43e7-a439-43f799d3e069.jpg": { - "filename": "assets/images/blog/content/7b39a2f8-8060-43e7-a439-43f799d3e069.jpg", - "contenttype": "image/jpeg", - "offset": 2927993, - "len": 24372 - }, - "assets/images/blog/content/8af4faff-e011-4e31-ba28-5023f65d1003.png": { - "filename": "assets/images/blog/content/8af4faff-e011-4e31-ba28-5023f65d1003.png", - "contenttype": "image/png", - "offset": 2952365, - "len": 106400 - }, - "assets/images/blog/content/ae29cd58-f28f-4a0e-bffb-a7e4e1235797.png": { - "filename": "assets/images/blog/content/ae29cd58-f28f-4a0e-bffb-a7e4e1235797.png", - "contenttype": "image/png", - "offset": 3058765, - "len": 33357 - }, - "assets/images/blog/content/b3be6c1c-725a-4af2-a85f-e47e09bbceef.png": { - "filename": "assets/images/blog/content/b3be6c1c-725a-4af2-a85f-e47e09bbceef.png", - "contenttype": "image/png", - "offset": 3092122, - "len": 37074 - }, - "assets/images/blog/content/b4e772a3-effb-4a5d-82d9-db9596ccfe51.png": { - "filename": "assets/images/blog/content/b4e772a3-effb-4a5d-82d9-db9596ccfe51.png", - "contenttype": "image/png", - "offset": 3129196, - "len": 79662 - }, - "assets/images/blog/content/d2731109-b50f-4c1f-b4f9-7ab8cac196da.png": { - "filename": "assets/images/blog/content/d2731109-b50f-4c1f-b4f9-7ab8cac196da.png", - "contenttype": "image/png", - "offset": 3208858, - "len": 104535 - }, - "assets/images/blog/content/fed0e592-d063-497b-9a3b-2bfc29b04d1a.jpg": { - "filename": "assets/images/blog/content/fed0e592-d063-497b-9a3b-2bfc29b04d1a.jpg", - "contenttype": "image/jpeg", - "offset": 3313393, - "len": 9535 - }, - "assets/images/blog/e4956336-3662-46ae-bea2-7fd3059919c3-w1920-h1440.jpg": { - "filename": "assets/images/blog/e4956336-3662-46ae-bea2-7fd3059919c3-w1920-h1440.jpg", - "contenttype": "image/jpeg", - "offset": 3322928, - "len": 402770 - }, - "assets/images/blog/e4956336-3662-46ae-bea2-7fd3059919c3-w960-h720.jpg": { - "filename": "assets/images/blog/e4956336-3662-46ae-bea2-7fd3059919c3-w960-h720.jpg", - "contenttype": "image/jpeg", - "offset": 3725698, - "len": 143539 - }, - "assets/images/blog/e4956336-3662-46ae-bea2-7fd3059919c3.jpg": { - "filename": "assets/images/blog/e4956336-3662-46ae-bea2-7fd3059919c3.jpg", - "contenttype": "image/jpeg", - "offset": 3869237, - "len": 375170 - }, - "assets/images/logo.svg": { - "filename": "assets/images/logo.svg", - "contenttype": "image/svg+xml", - "offset": 4244407, - "len": 2183 - }, - "assets/js/themes.js": { - "filename": "assets/js/themes.js", - "contenttype": "text/javascript", - "offset": 4246590, - "len": 779 - }, - "blog/building_a_web_farm_with_docker_and_raspberry_pi.html": { - "filename": "blog/building_a_web_farm_with_docker_and_raspberry_pi.html", - "contenttype": "text/html", - "offset": 4247369, - "len": 23111 - }, - "blog/continuously_deploy_a_static_website_with_azure_pipelines.html": { - "filename": "blog/continuously_deploy_a_static_website_with_azure_pipelines.html", - "contenttype": "text/html", - "offset": 4270480, - "len": 24738 - }, - "blog/decentralise_your_website_as_much_as_possible.html": { - "filename": "blog/decentralise_your_website_as_much_as_possible.html", - "contenttype": "text/html", - "offset": 4295218, - "len": 14825 - }, - "blog/developing_smart_contracts_for_business.html": { - "filename": "blog/developing_smart_contracts_for_business.html", - "contenttype": "text/html", - "offset": 4310043, - "len": 25783 - }, - "blog/getting_to_grips_with_jwt_in_asp_net_core.html": { - "filename": "blog/getting_to_grips_with_jwt_in_asp_net_core.html", - "contenttype": "text/html", - "offset": 4335826, - "len": 20915 - }, - "blog/index.html": { "filename": "blog/index.html", "contenttype": "text/html", "offset": 4356741, "len": 7345 }, - "blog/setting_up_an_asp_net_core_web_farm.html": { - "filename": "blog/setting_up_an_asp_net_core_web_farm.html", - "contenttype": "text/html", - "offset": 4364086, - "len": 11464 - }, - "favicon-16x16.png": { "filename": "favicon-16x16.png", "contenttype": "image/png", "offset": 4375550, "len": 430 }, - "favicon-32x32.png": { "filename": "favicon-32x32.png", "contenttype": "image/png", "offset": 4375980, "len": 540 }, - "favicon.ico": { "filename": "favicon.ico", "contenttype": "image/x-icon", "offset": 4376520, "len": 15086 }, - "feed.atom": { - "filename": "feed.atom", - "contenttype": "application/octet-stream", - "offset": 4391606, - "len": 95092 - }, - "index.html": { "filename": "index.html", "contenttype": "text/html", "offset": 4486698, "len": 4981 } - } -} diff --git a/packages/health-check/src/fixtures/skygalleryMetadata.json b/packages/health-check/src/fixtures/skygalleryMetadata.json deleted file mode 100644 index 525b8f57..00000000 --- a/packages/health-check/src/fixtures/skygalleryMetadata.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "filename": "skygallery-v0.1.1-76c4c115fcb526716b2564568850f433", - "subfiles": { - "css/app.84a130ed.css": { "filename": "css/app.84a130ed.css", "contenttype": "text/css", "len": 698 }, - "css/chunk-5ce44031.d4e78528.css": { - "filename": "css/chunk-5ce44031.d4e78528.css", - "contenttype": "text/css", - "offset": 698, - "len": 45 - }, - "css/chunk-6bef839b.593aa2be.css": { - "filename": "css/chunk-6bef839b.593aa2be.css", - "contenttype": "text/css", - "offset": 743, - "len": 5013 - }, - "css/chunk-8ed50a48.8ba8c09d.css": { - "filename": "css/chunk-8ed50a48.8ba8c09d.css", - "contenttype": "text/css", - "offset": 5756, - "len": 7204 - }, - "css/chunk-eb4c1efc.2a7e25ed.css": { - "filename": "css/chunk-eb4c1efc.2a7e25ed.css", - "contenttype": "text/css", - "offset": 12960, - "len": 45 - }, - "css/chunk-vendors.b4f58487.css": { - "filename": "css/chunk-vendors.b4f58487.css", - "contenttype": "text/css", - "offset": 13005, - "len": 382063 - }, - "img/skygallery_logo.2336197e.svg": { - "filename": "img/skygallery_logo.2336197e.svg", - "contenttype": "image/svg+xml", - "offset": 395068, - "len": 923 - }, - "img/skynet-logo-animated.4d24345c.svg": { - "filename": "img/skynet-logo-animated.4d24345c.svg", - "contenttype": "image/svg+xml", - "offset": 395991, - "len": 2600 - }, - "index.html": { "filename": "index.html", "contenttype": "text/html", "offset": 398591, "len": 2534 }, - "js/app.cff1e0a4.js": { - "filename": "js/app.cff1e0a4.js", - "contenttype": "application/javascript", - "offset": 401125, - "len": 15604 - }, - "js/app.cff1e0a4.js.map": { - "filename": "js/app.cff1e0a4.js.map", - "contenttype": "application/json", - "offset": 416729, - "len": 54424 - }, - "js/chunk-5ce44031.7fb55da9.js": { - "filename": "js/chunk-5ce44031.7fb55da9.js", - "contenttype": "application/javascript", - "offset": 471153, - "len": 3644 - }, - "js/chunk-5ce44031.7fb55da9.js.map": { - "filename": "js/chunk-5ce44031.7fb55da9.js.map", - "contenttype": "application/json", - "offset": 474797, - "len": 13494 - }, - "js/chunk-6bef839b.b543fe7d.js": { - "filename": "js/chunk-6bef839b.b543fe7d.js", - "contenttype": "application/javascript", - "offset": 488291, - "len": 13349 - }, - "js/chunk-6bef839b.b543fe7d.js.map": { - "filename": "js/chunk-6bef839b.b543fe7d.js.map", - "contenttype": "application/json", - "offset": 501640, - "len": 46690 - }, - "js/chunk-8ed50a48.35f8ef35.js": { - "filename": "js/chunk-8ed50a48.35f8ef35.js", - "contenttype": "application/javascript", - "offset": 548330, - "len": 130329 - }, - "js/chunk-8ed50a48.35f8ef35.js.map": { - "filename": "js/chunk-8ed50a48.35f8ef35.js.map", - "contenttype": "application/json", - "offset": 678659, - "len": 507145 - }, - "js/chunk-eb4c1efc.57b6e01c.js": { - "filename": "js/chunk-eb4c1efc.57b6e01c.js", - "contenttype": "application/javascript", - "offset": 1185804, - "len": 4407 - }, - "js/chunk-eb4c1efc.57b6e01c.js.map": { - "filename": "js/chunk-eb4c1efc.57b6e01c.js.map", - "contenttype": "application/json", - "offset": 1190211, - "len": 15355 - }, - "js/chunk-vendors.1fd55121.js": { - "filename": "js/chunk-vendors.1fd55121.js", - "contenttype": "application/javascript", - "offset": 1205566, - "len": 749829 - }, - "js/chunk-vendors.1fd55121.js.map": { - "filename": "js/chunk-vendors.1fd55121.js.map", - "contenttype": "application/json", - "offset": 1955395, - "len": 2793251 - } - }, - "defaultpath": "/index.html" -} diff --git a/packages/health-check/src/fixtures/uniswapMetadata.json b/packages/health-check/src/fixtures/uniswapMetadata.json deleted file mode 100644 index 2072887f..00000000 --- a/packages/health-check/src/fixtures/uniswapMetadata.json +++ /dev/null @@ -1,658 +0,0 @@ -{ - "filename": "build", - "subfiles": { - "451.html": { "filename": "451.html", "contenttype": "text/html", "offset": 20181232, "len": 200 }, - "asset-manifest.json": { - "filename": "asset-manifest.json", - "contenttype": "application/json", - "offset": 485031, - "len": 4561 - }, - "favicon.png": { "filename": "favicon.png", "contenttype": "image/png", "offset": 489592, "len": 7072 }, - "images/192x192_App_Icon.png": { - "filename": "images/192x192_App_Icon.png", - "contenttype": "image/png", - "offset": 434153, - "len": 50878 - }, - "images/512x512_App_Icon.png": { - "filename": "images/512x512_App_Icon.png", - "contenttype": "image/png", - "offset": 47542, - "len": 386611 - }, - "index.html": { "filename": "index.html", "contenttype": "text/html", "len": 3268 }, - "locales/de.json": { - "filename": "locales/de.json", - "contenttype": "application/json", - "offset": 7491, - "len": 4376 - }, - "locales/en.json": { - "filename": "locales/en.json", - "contenttype": "application/json", - "offset": 23709, - "len": 4321 - }, - "locales/es-AR.json": { - "filename": "locales/es-AR.json", - "contenttype": "application/json", - "offset": 16866, - "len": 3624 - }, - "locales/es-US.json": { - "filename": "locales/es-US.json", - "contenttype": "application/json", - "offset": 43912, - "len": 3630 - }, - "locales/it-IT.json": { - "filename": "locales/it-IT.json", - "contenttype": "application/json", - "offset": 3268, - "len": 4223 - }, - "locales/iw.json": { - "filename": "locales/iw.json", - "contenttype": "application/json", - "offset": 28030, - "len": 3929 - }, - "locales/ro.json": { - "filename": "locales/ro.json", - "contenttype": "application/json", - "offset": 31959, - "len": 3794 - }, - "locales/ru.json": { - "filename": "locales/ru.json", - "contenttype": "application/json", - "offset": 11867, - "len": 4999 - }, - "locales/vi.json": { - "filename": "locales/vi.json", - "contenttype": "application/json", - "offset": 39011, - "len": 4901 - }, - "locales/zh-CN.json": { - "filename": "locales/zh-CN.json", - "contenttype": "application/json", - "offset": 20490, - "len": 3219 - }, - "locales/zh-TW.json": { - "filename": "locales/zh-TW.json", - "contenttype": "application/json", - "offset": 35753, - "len": 3258 - }, - "manifest.json": { "filename": "manifest.json", "contenttype": "application/json", "offset": 20190818, "len": 470 }, - "precache-manifest.5ce41899d70d2e0450f591b3e917c2a4.js": { - "filename": "precache-manifest.5ce41899d70d2e0450f591b3e917c2a4.js", - "contenttype": "application/x-javascript", - "offset": 20181432, - "len": 9386 - }, - "service-worker.js": { - "filename": "service-worker.js", - "contenttype": "application/x-javascript", - "offset": 20191288, - "len": 1183 - }, - "static/css/4.f04942fe.chunk.css": { - "filename": "static/css/4.f04942fe.chunk.css", - "contenttype": "text/css", - "offset": 496664, - "len": 5331 - }, - "static/css/4.f04942fe.chunk.css.map": { - "filename": "static/css/4.f04942fe.chunk.css.map", - "contenttype": "application/octet-stream", - "offset": 501995, - "len": 8394 - }, - "static/js/0.1043efff.chunk.js": { - "filename": "static/js/0.1043efff.chunk.js", - "contenttype": "application/x-javascript", - "offset": 3451819, - "len": 226756 - }, - "static/js/0.1043efff.chunk.js.map": { - "filename": "static/js/0.1043efff.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 8495570, - "len": 811341 - }, - "static/js/1.722d768c.chunk.js": { - "filename": "static/js/1.722d768c.chunk.js", - "contenttype": "application/x-javascript", - "offset": 2503781, - "len": 20289 - }, - "static/js/1.722d768c.chunk.js.map": { - "filename": "static/js/1.722d768c.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 11896220, - "len": 44729 - }, - "static/js/4.cebcd4f8.chunk.js": { - "filename": "static/js/4.cebcd4f8.chunk.js", - "contenttype": "application/x-javascript", - "offset": 11941212, - "len": 1486762 - }, - "static/js/4.cebcd4f8.chunk.js.LICENSE.txt": { - "filename": "static/js/4.cebcd4f8.chunk.js.LICENSE.txt", - "contenttype": "text/plain", - "offset": 14378677, - "len": 3519 - }, - "static/js/4.cebcd4f8.chunk.js.map": { - "filename": "static/js/4.cebcd4f8.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 3678575, - "len": 4816995 - }, - "static/js/5.428f04e8.chunk.js": { - "filename": "static/js/5.428f04e8.chunk.js", - "contenttype": "application/x-javascript", - "offset": 1887438, - "len": 616343 - }, - "static/js/5.428f04e8.chunk.js.LICENSE.txt": { - "filename": "static/js/5.428f04e8.chunk.js.LICENSE.txt", - "contenttype": "text/plain", - "offset": 3450983, - "len": 426 - }, - "static/js/5.428f04e8.chunk.js.map": { - "filename": "static/js/5.428f04e8.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 10046674, - "len": 1553345 - }, - "static/js/6.29fcca22.chunk.js": { - "filename": "static/js/6.29fcca22.chunk.js", - "contenttype": "application/x-javascript", - "offset": 11600019, - "len": 296095 - }, - "static/js/6.29fcca22.chunk.js.map": { - "filename": "static/js/6.29fcca22.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 13440646, - "len": 938031 - }, - "static/js/7.8d2bc3b4.chunk.js": { - "filename": "static/js/7.8d2bc3b4.chunk.js", - "contenttype": "application/x-javascript", - "offset": 9306911, - "len": 263 - }, - "static/js/7.8d2bc3b4.chunk.js.map": { - "filename": "static/js/7.8d2bc3b4.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 11896114, - "len": 106 - }, - "static/js/8.3d784f08.chunk.js": { - "filename": "static/js/8.3d784f08.chunk.js", - "contenttype": "application/x-javascript", - "offset": 11940949, - "len": 263 - }, - "static/js/8.3d784f08.chunk.js.map": { - "filename": "static/js/8.3d784f08.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 3450877, - "len": 106 - }, - "static/js/9.08920d68.chunk.js": { - "filename": "static/js/9.08920d68.chunk.js", - "contenttype": "application/x-javascript", - "offset": 2524070, - "len": 626875 - }, - "static/js/9.08920d68.chunk.js.LICENSE.txt": { - "filename": "static/js/9.08920d68.chunk.js.LICENSE.txt", - "contenttype": "text/plain", - "offset": 3451409, - "len": 410 - }, - "static/js/9.08920d68.chunk.js.map": { - "filename": "static/js/9.08920d68.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 512852, - "len": 1374586 - }, - "static/js/main.d2a5ca05.chunk.js": { - "filename": "static/js/main.d2a5ca05.chunk.js", - "contenttype": "application/x-javascript", - "offset": 3150945, - "len": 299932 - }, - "static/js/main.d2a5ca05.chunk.js.map": { - "filename": "static/js/main.d2a5ca05.chunk.js.map", - "contenttype": "application/octet-stream", - "offset": 9307174, - "len": 739500 - }, - "static/js/runtime-main.712341b8.js": { - "filename": "static/js/runtime-main.712341b8.js", - "contenttype": "application/x-javascript", - "offset": 510389, - "len": 2463 - }, - "static/js/runtime-main.712341b8.js.map": { - "filename": "static/js/runtime-main.712341b8.js.map", - "contenttype": "application/octet-stream", - "offset": 13427974, - "len": 12672 - }, - "static/media/Inter-Black.09f4068b.woff2": { - "filename": "static/media/Inter-Black.09f4068b.woff2", - "contenttype": "application/octet-stream", - "offset": 16311114, - "len": 104656 - }, - "static/media/Inter-Black.e3735483.woff": { - "filename": "static/media/Inter-Black.e3735483.woff", - "contenttype": "application/octet-stream", - "offset": 16415770, - "len": 139648 - }, - "static/media/Inter-BlackItalic.07e69b53.woff": { - "filename": "static/media/Inter-BlackItalic.07e69b53.woff", - "contenttype": "application/octet-stream", - "offset": 15020483, - "len": 145816 - }, - "static/media/Inter-BlackItalic.daa1ca3c.woff2": { - "filename": "static/media/Inter-BlackItalic.daa1ca3c.woff2", - "contenttype": "application/octet-stream", - "offset": 19675808, - "len": 109900 - }, - "static/media/Inter-Bold.79260e5b.woff": { - "filename": "static/media/Inter-Bold.79260e5b.woff", - "contenttype": "application/octet-stream", - "offset": 15781749, - "len": 143464 - }, - "static/media/Inter-Bold.aed27700.woff2": { - "filename": "static/media/Inter-Bold.aed27700.woff2", - "contenttype": "application/octet-stream", - "offset": 16555739, - "len": 107144 - }, - "static/media/Inter-BoldItalic.8ef77a03.woff2": { - "filename": "static/media/Inter-BoldItalic.8ef77a03.woff2", - "contenttype": "application/octet-stream", - "offset": 17104768, - "len": 112276 - }, - "static/media/Inter-BoldItalic.e0879d64.woff": { - "filename": "static/media/Inter-BoldItalic.e0879d64.woff", - "contenttype": "application/octet-stream", - "offset": 15483981, - "len": 149360 - }, - "static/media/Inter-ExtraBold.38bc51bc.woff": { - "filename": "static/media/Inter-ExtraBold.38bc51bc.woff", - "contenttype": "application/octet-stream", - "offset": 19419594, - "len": 143256 - }, - "static/media/Inter-ExtraBold.92d16aee.woff2": { - "filename": "static/media/Inter-ExtraBold.92d16aee.woff2", - "contenttype": "application/octet-stream", - "offset": 19312290, - "len": 107304 - }, - "static/media/Inter-ExtraBoldItalic.0e4b21eb.woff": { - "filename": "static/media/Inter-ExtraBoldItalic.0e4b21eb.woff", - "contenttype": "application/octet-stream", - "offset": 16671312, - "len": 149116 - }, - "static/media/Inter-ExtraBoldItalic.57ea76d0.woff2": { - "filename": "static/media/Inter-ExtraBoldItalic.57ea76d0.woff2", - "contenttype": "application/octet-stream", - "offset": 18732262, - "len": 112656 - }, - "static/media/Inter-ExtraLight.4bd040df.woff": { - "filename": "static/media/Inter-ExtraLight.4bd040df.woff", - "contenttype": "application/octet-stream", - "offset": 14746958, - "len": 141344 - }, - "static/media/Inter-ExtraLight.4d9f96f8.woff2": { - "filename": "static/media/Inter-ExtraLight.4d9f96f8.woff2", - "contenttype": "application/octet-stream", - "offset": 18945450, - "len": 105444 - }, - "static/media/Inter-ExtraLightItalic.54d3d9a5.woff2": { - "filename": "static/media/Inter-ExtraLightItalic.54d3d9a5.woff2", - "contenttype": "application/octet-stream", - "offset": 14888302, - "len": 111804 - }, - "static/media/Inter-ExtraLightItalic.84c26656.woff": { - "filename": "static/media/Inter-ExtraLightItalic.84c26656.woff", - "contenttype": "application/octet-stream", - "offset": 18569981, - "len": 148416 - }, - "static/media/Inter-Italic.9528384c.woff2": { - "filename": "static/media/Inter-Italic.9528384c.woff2", - "contenttype": "application/octet-stream", - "offset": 14383371, - "len": 108172 - }, - "static/media/Inter-Italic.e4ad3666.woff": { - "filename": "static/media/Inter-Italic.e4ad3666.woff", - "contenttype": "application/octet-stream", - "offset": 20037756, - "len": 143476 - }, - "static/media/Inter-Light.5baca21a.woff2": { - "filename": "static/media/Inter-Light.5baca21a.woff2", - "contenttype": "application/octet-stream", - "offset": 18016306, - "len": 105556 - }, - "static/media/Inter-Light.b9920de0.woff": { - "filename": "static/media/Inter-Light.b9920de0.woff", - "contenttype": "application/octet-stream", - "offset": 18428717, - "len": 141264 - }, - "static/media/Inter-LightItalic.0555a46c.woff": { - "filename": "static/media/Inter-LightItalic.0555a46c.woff", - "contenttype": "application/octet-stream", - "offset": 15633341, - "len": 148408 - }, - "static/media/Inter-LightItalic.adc70179.woff2": { - "filename": "static/media/Inter-LightItalic.adc70179.woff2", - "contenttype": "application/octet-stream", - "offset": 19200250, - "len": 112040 - }, - "static/media/Inter-Medium.7a8cc724.woff": { - "filename": "static/media/Inter-Medium.7a8cc724.woff", - "contenttype": "application/octet-stream", - "offset": 17763598, - "len": 142780 - }, - "static/media/Inter-Medium.f6cf0a0b.woff2": { - "filename": "static/media/Inter-Medium.f6cf0a0b.woff2", - "contenttype": "application/octet-stream", - "offset": 17431014, - "len": 106484 - }, - "static/media/Inter-MediumItalic.417907d2.woff": { - "filename": "static/media/Inter-MediumItalic.417907d2.woff", - "contenttype": "application/octet-stream", - "offset": 16955424, - "len": 149344 - }, - "static/media/Inter-MediumItalic.565a7104.woff2": { - "filename": "static/media/Inter-MediumItalic.565a7104.woff2", - "contenttype": "application/octet-stream", - "offset": 17318374, - "len": 112640 - }, - "static/media/Inter-Regular.4dd66a11.woff2": { - "filename": "static/media/Inter-Regular.4dd66a11.woff2", - "contenttype": "application/octet-stream", - "offset": 18844918, - "len": 100368 - }, - "static/media/Inter-Regular.7c539936.woff": { - "filename": "static/media/Inter-Regular.7c539936.woff", - "contenttype": "application/octet-stream", - "offset": 16820428, - "len": 134996 - }, - "static/media/Inter-SemiBold.1db6c55c.woff": { - "filename": "static/media/Inter-SemiBold.1db6c55c.woff", - "contenttype": "application/octet-stream", - "offset": 19785708, - "len": 143148 - }, - "static/media/Inter-SemiBold.dd8a55ef.woff2": { - "filename": "static/media/Inter-SemiBold.dd8a55ef.woff2", - "contenttype": "application/octet-stream", - "offset": 14491543, - "len": 106916 - }, - "static/media/Inter-SemiBoldItalic.81678d1a.woff": { - "filename": "static/media/Inter-SemiBoldItalic.81678d1a.woff", - "contenttype": "application/octet-stream", - "offset": 19050894, - "len": 149356 - }, - "static/media/Inter-SemiBoldItalic.ac201e30.woff2": { - "filename": "static/media/Inter-SemiBoldItalic.ac201e30.woff2", - "contenttype": "application/octet-stream", - "offset": 19562850, - "len": 112768 - }, - "static/media/Inter-Thin.850febbe.woff2": { - "filename": "static/media/Inter-Thin.850febbe.woff2", - "contenttype": "application/octet-stream", - "offset": 17217044, - "len": 101004 - }, - "static/media/Inter-Thin.ead42837.woff": { - "filename": "static/media/Inter-Thin.ead42837.woff", - "contenttype": "application/octet-stream", - "offset": 18230961, - "len": 137068 - }, - "static/media/Inter-ThinItalic.a76db065.woff": { - "filename": "static/media/Inter-ThinItalic.a76db065.woff", - "contenttype": "application/octet-stream", - "offset": 16166265, - "len": 144528 - }, - "static/media/Inter-ThinItalic.e08d9b2a.woff2": { - "filename": "static/media/Inter-ThinItalic.e08d9b2a.woff2", - "contenttype": "application/octet-stream", - "offset": 19930172, - "len": 107584 - }, - "static/media/Inter-italic.var.2690e3c2.woff2": { - "filename": "static/media/Inter-italic.var.2690e3c2.woff2", - "contenttype": "application/octet-stream", - "offset": 15925213, - "len": 241052 - }, - "static/media/Inter-roman.var.90e8f61d.woff2": { - "filename": "static/media/Inter-roman.var.90e8f61d.woff2", - "contenttype": "application/octet-stream", - "offset": 17537498, - "len": 226100 - }, - "static/media/Inter.var.4b976905.woff2": { - "filename": "static/media/Inter.var.4b976905.woff2", - "contenttype": "application/octet-stream", - "offset": 15166461, - "len": 317520 - }, - "static/media/arrow-down-blue.cd061363.svg": { - "filename": "static/media/arrow-down-blue.cd061363.svg", - "contenttype": "image/svg+xml", - "offset": 17318048, - "len": 326 - }, - "static/media/arrow-down-grey.c0dedd2f.svg": { - "filename": "static/media/arrow-down-grey.c0dedd2f.svg", - "contenttype": "image/svg+xml", - "offset": 15000106, - "len": 326 - }, - "static/media/arrow-right-white.337ad716.png": { - "filename": "static/media/arrow-right-white.337ad716.png", - "contenttype": "image/png", - "offset": 15000432, - "len": 12999 - }, - "static/media/arrow-right.d285b6cf.svg": { - "filename": "static/media/arrow-right.d285b6cf.svg", - "contenttype": "image/svg+xml", - "offset": 19929626, - "len": 263 - }, - "static/media/blue-loader.904b44c2.svg": { - "filename": "static/media/blue-loader.904b44c2.svg", - "contenttype": "image/svg+xml", - "offset": 19929889, - "len": 283 - }, - "static/media/circle-grey.ed2a1dad.svg": { - "filename": "static/media/circle-grey.ed2a1dad.svg", - "contenttype": "image/svg+xml", - "offset": 16310793, - "len": 321 - }, - "static/media/circle.2d975615.svg": { - "filename": "static/media/circle.2d975615.svg", - "contenttype": "image/svg+xml", - "offset": 16555418, - "len": 321 - }, - "static/media/coinbaseWalletIcon.62578f59.svg": { - "filename": "static/media/coinbaseWalletIcon.62578f59.svg", - "contenttype": "image/svg+xml", - "offset": 18375091, - "len": 53626 - }, - "static/media/dropdown-blue.b20914ec.svg": { - "filename": "static/media/dropdown-blue.b20914ec.svg", - "contenttype": "image/svg+xml", - "offset": 14382513, - "len": 164 - }, - "static/media/dropdown.7d32d2fa.svg": { - "filename": "static/media/dropdown.7d32d2fa.svg", - "contenttype": "image/svg+xml", - "offset": 18945286, - "len": 164 - }, - "static/media/dropup-blue.b96d70e1.svg": { - "filename": "static/media/dropup-blue.b96d70e1.svg", - "contenttype": "image/svg+xml", - "offset": 15166299, - "len": 162 - }, - "static/media/link.50c67f3c.svg": { - "filename": "static/media/link.50c67f3c.svg", - "contenttype": "image/svg+xml", - "offset": 14382196, - "len": 317 - }, - "static/media/logo.5827780d.svg": { - "filename": "static/media/logo.5827780d.svg", - "contenttype": "image/svg+xml", - "offset": 15013431, - "len": 7052 - }, - "static/media/logo_white.edb44e56.svg": { - "filename": "static/media/logo_white.edb44e56.svg", - "contenttype": "image/svg+xml", - "offset": 18368029, - "len": 7062 - }, - "static/media/magnifying-glass.67440097.svg": { - "filename": "static/media/magnifying-glass.67440097.svg", - "contenttype": "image/svg+xml", - "offset": 16662883, - "len": 8429 - }, - "static/media/menu.4f2c4440.svg": { - "filename": "static/media/menu.4f2c4440.svg", - "contenttype": "image/svg+xml", - "offset": 18015579, - "len": 727 - }, - "static/media/metamask.023762b6.png": { - "filename": "static/media/metamask.023762b6.png", - "contenttype": "image/png", - "offset": 14611832, - "len": 114217 - }, - "static/media/plus-blue.e8021e51.svg": { - "filename": "static/media/plus-blue.e8021e51.svg", - "contenttype": "image/svg+xml", - "offset": 14746469, - "len": 190 - }, - "static/media/plus-grey.d8e0be7d.svg": { - "filename": "static/media/plus-grey.d8e0be7d.svg", - "contenttype": "image/svg+xml", - "offset": 19675618, - "len": 190 - }, - "static/media/portisIcon.b234b2bf.png": { - "filename": "static/media/portisIcon.b234b2bf.png", - "contenttype": "image/png", - "offset": 18718397, - "len": 13865 - }, - "static/media/question-mark.1ae4d9f4.svg": { - "filename": "static/media/question-mark.1ae4d9f4.svg", - "contenttype": "image/svg+xml", - "offset": 14726049, - "len": 818 - }, - "static/media/question.a46e8bc1.svg": { - "filename": "static/media/question.a46e8bc1.svg", - "contenttype": "image/svg+xml", - "offset": 19928856, - "len": 770 - }, - "static/media/spinner.be00fc4a.svg": { - "filename": "static/media/spinner.be00fc4a.svg", - "contenttype": "image/svg+xml", - "offset": 14382677, - "len": 694 - }, - "static/media/trustWallet.edcc1ab5.png": { - "filename": "static/media/trustWallet.edcc1ab5.png", - "contenttype": "image/png", - "offset": 14726867, - "len": 19602 - }, - "static/media/walletConnectIcon.8215855c.svg": { - "filename": "static/media/walletConnectIcon.8215855c.svg", - "contenttype": "image/svg+xml", - "offset": 14598459, - "len": 13373 - }, - "static/media/wordmark.b75565ae.svg": { - "filename": "static/media/wordmark.b75565ae.svg", - "contenttype": "image/svg+xml", - "offset": 18121862, - "len": 109099 - }, - "static/media/wordmark_white.9914390f.svg": { - "filename": "static/media/wordmark_white.9914390f.svg", - "contenttype": "image/svg+xml", - "offset": 17906378, - "len": 109201 - }, - "static/media/x.5b8e2186.svg": { - "filename": "static/media/x.5b8e2186.svg", - "contenttype": "image/svg+xml", - "offset": 14746659, - "len": 299 - } - }, - "defaultpath": "/index.html" -} diff --git a/packages/health-check/src/index.js b/packages/health-check/src/index.js deleted file mode 100644 index f3369783..00000000 --- a/packages/health-check/src/index.js +++ /dev/null @@ -1,48 +0,0 @@ -process.env.NODE_ENV = process.env.NODE_ENV || "development"; - -if (!process.env.PORTAL_DOMAIN) { - throw new Error("You need to provide PORTAL_DOMAIN environment variable"); -} - -if (process.env.ACCOUNTS_ENABLED === "true") { - if (["authenticated", "subscription"].includes(process.env.ACCOUNTS_LIMIT_ACCESS)) { - if (!process.env.ACCOUNTS_TEST_USER_EMAIL) { - throw new Error("ACCOUNTS_TEST_USER_EMAIL cannot be empty"); - } - if (!process.env.ACCOUNTS_TEST_USER_PASSWORD) { - throw new Error("ACCOUNTS_TEST_USER_PASSWORD cannot be empty"); - } - } -} - -const express = require("express"); -const db = require("./db"); - -const host = process.env.HOSTNAME || "0.0.0.0"; -const port = Number(process.env.PORT) || 3100; - -const server = express(); - -server.use(express.urlencoded({ extended: false })); -server.use(express.json()); -server.use((req, res, next) => { - db.read(); - next(); -}); - -server.get("/health-check", require("./api/index")); -server.get("/health-check/critical", require("./api/critical")); -server.get("/health-check/extended", require("./api/extended")); -server.get("/health-check/disabled", require("./api/disabled")); - -server.listen(port, host, (error) => { - if (error) throw error; - - console.info(`Server listening at http://${host}:${port} (NODE_ENV: ${process.env.NODE_ENV})`); - - const { ipRegex } = require("./utils"); - - if (ipRegex.test(process.env.serverip)) { - console.info(`Server public ip: ${process.env.serverip}`); - } -}); diff --git a/packages/health-check/src/utils.js b/packages/health-check/src/utils.js deleted file mode 100644 index 8dbab0de..00000000 --- a/packages/health-check/src/utils.js +++ /dev/null @@ -1,144 +0,0 @@ -const ipCheckService = "whatismyip.akamai.com"; -const ipRegex = new RegExp( - `^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$` -); - -/** - * Get the time between start and now in milliseconds - */ -function calculateElapsedTime(start) { - const diff = process.hrtime(start); - - return Math.round((diff[0] * 1e9 + diff[1]) / 1e6); // msec -} - -/** - * Get the ISO string with yesterday's date set (- 24 hours) - */ -function getYesterdayISOString() { - const date = new Date(); - - date.setDate(date.getDate() - 1); - - return date.toISOString(); -} - -/** - * Get response from response object if available - */ -function getResponseContent(response) { - try { - return JSON.parse(response?.body || response?.text); - } catch { - return response?.body || response?.text; - } -} - -/** - * Ensures that the object serializes to JSON properly - */ -function ensureValidJSON(object) { - const replacer = (key, value) => (value === undefined ? "--undefined--" : value); - const stringified = JSON.stringify(object, replacer); - - return JSON.parse(stringified); -} - -/** - * Get variable value from environment (process.env) - * Exit with code 1 if variable is not set or empty - * @param {string} name variable name - * @returns {string} - */ -function getRequiredEnvironmentVariable(name) { - const value = process.env[name]; - - if (!value) { - console.log(`${name} cannot be empty`); - process.exit(1); - } - - return value; -} - -/** - * Authenticate with given credentials and return auth cookie - * Creates new account if username does not exist - * Only authenticates when portal is set to authenticated users only mode - * @param {boolean} forceAuth forcibly ensure authentication with test credentials - */ -function getAuthCookie(forceAuth = false) { - // cache auth promise so only one actual request will be made - if (getAuthCookie.cache) return getAuthCookie.cache; - - // accounts disabled, do not try to authenticate - if (!isPortalModuleEnabled("a")) return ""; - - // do not authenticate if it is not required by portal limit access rule - if (!forceAuth && !["authenticated", "subscription"].includes(process.env.ACCOUNTS_LIMIT_ACCESS)) return ""; - - // assign all required environment variables - const portalDomain = getRequiredEnvironmentVariable("PORTAL_DOMAIN"); - const email = getRequiredEnvironmentVariable("ACCOUNTS_TEST_USER_EMAIL"); - const password = getRequiredEnvironmentVariable("ACCOUNTS_TEST_USER_PASSWORD"); - - async function authenticate() { - const got = require("got"); - - try { - // authenticate with given test user credentials - const response = await got.post(`https://account.${portalDomain}/api/login`, { - json: { email, password }, - }); - - // extract set-cookie from successful authentication request - const cookies = response.headers["set-cookie"]; - - // throw meaningful error when set-cookie header is missing - if (!cookies) throw new Error(`Auth successful (code ${response.statusCode}) but 'set-cookie' header is missing`); - - // find the skynet-jwt cookie - const jwtcookie = cookies.find((cookie) => cookie.startsWith("skynet-jwt")); - - // throw meaningful error when skynet-jwt cookie is missing - if (!jwtcookie) throw new Error(`Header 'set-cookie' found but 'skynet-jwt' cookie is missing`); - - // extract just the cookie value (no set-cookie props) from set-cookie - return jwtcookie.match(/skynet-jwt=[^;]+;/)[0]; - } catch (error) { - // 401 means that service worked but user could not have been authenticated - if (error.response && error.response.statusCode === 401) { - // sign up with the given credentials - await got.post(`https://account.${portalDomain}/api/user`, { - json: { email, password }, - }); - - // retry authentication - return authenticate(); - } - - // rethrow unhandled exception - throw error; - } - } - - return (getAuthCookie.cache = authenticate()); -} - -/** - * isPortalModuleEnabled returns true if the given module is enabled - */ -function isPortalModuleEnabled(module) { - return process.env.PORTAL_MODULES && process.env.PORTAL_MODULES.indexOf(module) !== -1; -} - -module.exports = { - calculateElapsedTime, - getYesterdayISOString, - getResponseContent, - ensureValidJSON, - getAuthCookie, - isPortalModuleEnabled, - ipCheckService, - ipRegex, -}; diff --git a/packages/health-check/src/utils.test.js b/packages/health-check/src/utils.test.js deleted file mode 100644 index c0d9a30f..00000000 --- a/packages/health-check/src/utils.test.js +++ /dev/null @@ -1,19 +0,0 @@ -describe("ipRegex", () => { - const { ipRegex } = require("./utils"); - - test("should test true for valid ip", () => { - expect(ipRegex.test("8.8.8.8")).toEqual(true); - expect(ipRegex.test("127.0.0.1")).toEqual(true); - expect(ipRegex.test("192.168.0.1")).toEqual(true); - expect(ipRegex.test("10.10.10.10")).toEqual(true); - expect(ipRegex.test("135.124.12.47")).toEqual(true); - }); - - test("should test false for invalid ip", () => { - expect(ipRegex.test("888.8.8.8")).toEqual(false); - expect(ipRegex.test("....")).toEqual(false); - expect(ipRegex.test(null)).toEqual(false); - expect(ipRegex.test("foo")).toEqual(false); - expect(ipRegex.test("")).toEqual(false); - }); -}); diff --git a/packages/health-check/src/whatismyip.js b/packages/health-check/src/whatismyip.js deleted file mode 100644 index f91da4dc..00000000 --- a/packages/health-check/src/whatismyip.js +++ /dev/null @@ -1,18 +0,0 @@ -const http = require("http"); -const { ipCheckService, ipRegex } = require("./utils"); - -const request = http.request({ host: ipCheckService }, (response) => { - response.on("data", (data) => { - if (ipRegex.test(data)) { - process.stdout.write(data); - } else { - throw new Error(`${ipCheckService} responded with invalid ip: "${data}"`); - } - }); -}); - -request.on("error", (error) => { - throw error; // throw error to exit with code 1 -}); - -request.end(); diff --git a/packages/health-check/yarn.lock b/packages/health-check/yarn.lock deleted file mode 100644 index 5624d881..00000000 --- a/packages/health-check/yarn.lock +++ /dev/null @@ -1,3200 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.0.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.0.tgz#72becdf17ee44b2d1ac5651fb12f1952c336fe23" - integrity sha512-d5RysTlJ7hmw5Tw4UxgxcY3lkMe92n8sXCcuLPAyIAHK6j8DefDwtGnVVDgOnv+RnEosulDJ9NPKQL27bDId0g== - dependencies: - "@jridgewell/trace-mapping" "^0.3.0" - -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/compat-data@^7.16.4": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" - integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== - -"@babel/compat-data@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" - integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== - -"@babel/core@^7.11.6": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.10.tgz#74ef0fbf56b7dfc3f198fc2d927f4f03e12f4b05" - integrity sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.10" - "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.10" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.10" - "@babel/types" "^7.17.10" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - -"@babel/core@^7.12.3": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.0.tgz#16b8772b0a567f215839f689c5ded6bb20e864d5" - integrity sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA== - dependencies: - "@ampproject/remapping" "^2.0.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.0" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.17.0" - "@babel/parser" "^7.17.0" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.0" - "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - -"@babel/generator@^7.17.0", "@babel/generator@^7.7.2": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.0.tgz#7bd890ba706cd86d3e2f727322346ffdbf98f65e" - integrity sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw== - dependencies: - "@babel/types" "^7.17.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.10.tgz#c281fa35b0c349bbe9d02916f4ae08fc85ed7189" - integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg== - dependencies: - "@babel/types" "^7.17.10" - "@jridgewell/gen-mapping" "^0.1.0" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" - integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== - dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz#09c63106d47af93cf31803db6bc49fef354e2ebe" - integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ== - dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.20.2" - semver "^6.3.0" - -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" - integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== - dependencies: - "@babel/helper-get-function-arity" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-get-function-arity@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" - integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" - integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" - integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== - -"@babel/helper-simple-access@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" - integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" - integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helpers@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.0.tgz#79cdf6c66a579f3a7b5e739371bc63ca0306886b" - integrity sha512-Xe/9NFxjPwELUvW2dsukcMZIp6XwPSbI4ojFBJuX5ramHuVE22SVcZIwqzdWo5uCgeTXW8qV97lMvSOjq+1+nQ== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.0" - "@babel/types" "^7.17.0" - -"@babel/helpers@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" - integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" - -"@babel/highlight@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" - integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.0.tgz#f0ac33eddbe214e4105363bb17c3341c5ffcc43c" - integrity sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw== - -"@babel/parser@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" - integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" - integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/template@^7.16.7", "@babel/template@^7.3.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/traverse@^7.16.7", "@babel/traverse@^7.17.0", "@babel/traverse@^7.7.2": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.0.tgz#3143e5066796408ccc880a33ecd3184f3e75cd30" - integrity sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.0" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.0" - "@babel/types" "^7.17.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" - integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.10" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.10" - "@babel/types" "^7.17.10" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@babel/types@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4" - integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.0.2.tgz#d11e8b43ae431ae9b3112656848417ae4008fcad" - integrity sha512-tiRpnMeeyQuuzgL5UNSeiqMwF8UOWPbAE5rzcu/1zyq4oPG2Ox6xm4YCOruwbp10F8odWc+XwVxTyGzMSLMqxA== - dependencies: - "@jest/types" "^28.0.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^28.0.2" - jest-util "^28.0.2" - slash "^3.0.0" - -"@jest/core@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.0.3.tgz#2b8223914ef6ae16ff740e65235ef8ef49c46d52" - integrity sha512-cCQW06vEZ+5r50SB06pOnSWsOBs7F+lswPYnKKfBz1ncLlj1sMqmvjgam8q40KhlZ8Ut4eNAL2Hvfx4BKIO2FA== - dependencies: - "@jest/console" "^28.0.2" - "@jest/reporters" "^28.0.3" - "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^28.0.2" - jest-config "^28.0.3" - jest-haste-map "^28.0.2" - jest-message-util "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.0.3" - jest-resolve-dependencies "^28.0.3" - jest-runner "^28.0.3" - jest-runtime "^28.0.3" - jest-snapshot "^28.0.3" - jest-util "^28.0.2" - jest-validate "^28.0.2" - jest-watcher "^28.0.2" - micromatch "^4.0.4" - pretty-format "^28.0.2" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.0.2.tgz#a865949d876b2d364b979bbc0a46338ffd23de26" - integrity sha512-IvI7dEfqVEffDYlw9FQfVBt6kXt/OI38V7QUIur0ulOQgzpKYJDVvLzj4B1TVmHWTGW5tcnJdlZ3hqzV6/I9Qg== - dependencies: - "@jest/fake-timers" "^28.0.2" - "@jest/types" "^28.0.2" - "@types/node" "*" - jest-mock "^28.0.2" - -"@jest/expect-utils@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.0.2.tgz#0a055868d225261eac82a12013e2e0735238774d" - integrity sha512-YryfH2zN5c7M8eLtn9oTBRj1sfD+X4cHNXJnTejqCveOS33wADEZUxJ7de5++lRvByNpRpfAnc8zTK7yrUJqgA== - dependencies: - jest-get-type "^28.0.2" - -"@jest/expect@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.0.3.tgz#80e0233bee62586e1112f904d28b904dd1143ef2" - integrity sha512-VEzZr85bqNomgayQkR7hWG5HnbZYWYWagQriZsixhLmOzU6PCpMP61aeVhkCoRrg7ri5f7JDpeTPzDAajIwFHw== - dependencies: - expect "^28.0.2" - jest-snapshot "^28.0.3" - -"@jest/fake-timers@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.0.2.tgz#d36e62bc58f39d65ea6adac1ff7749e63aff05f3" - integrity sha512-R75yUv+WeybPa4ZVhX9C+8XN0TKjUoceUX+/QEaDVQGxZZOK50eD74cs7iMDTtpodh00d8iLlc9197vgF6oZjA== - dependencies: - "@jest/types" "^28.0.2" - "@sinonjs/fake-timers" "^9.1.1" - "@types/node" "*" - jest-message-util "^28.0.2" - jest-mock "^28.0.2" - jest-util "^28.0.2" - -"@jest/globals@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.0.3.tgz#70f68a06c863d1c9d14aea151c69b9690e3efeb4" - integrity sha512-q/zXYI6CKtTSIt1WuTHBYizJhH7K8h+xG5PE3C0oawLlPIvUMDYmpj0JX0XsJwPRLCsz/fYXHZVG46AaEhSPmw== - dependencies: - "@jest/environment" "^28.0.2" - "@jest/expect" "^28.0.3" - "@jest/types" "^28.0.2" - -"@jest/reporters@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.0.3.tgz#9996189e5552e37fcdffe0f41c07754f5d2ea854" - integrity sha512-xrbIc7J/xwo+D7AY3enAR9ZWYCmJ8XIkstTukTGpKDph0gLl/TJje9jl3dssvE4KJzYqMKiSrnE5Nt68I4fTEg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.0.2" - "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" - "@jridgewell/trace-mapping" "^0.3.7" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-util "^28.0.2" - jest-worker "^28.0.2" - slash "^3.0.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^9.0.0" - -"@jest/schemas@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.0.2.tgz#08c30df6a8d07eafea0aef9fb222c5e26d72e613" - integrity sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA== - dependencies: - "@sinclair/typebox" "^0.23.3" - -"@jest/source-map@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.0.2.tgz#914546f4410b67b1d42c262a1da7e0406b52dc90" - integrity sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.7" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.0.2.tgz#bc8e15a95347e3c2149572ae06a5a6fed939c522" - integrity sha512-4EUqgjq9VzyUiVTvZfI9IRJD6t3NYBNP4f+Eq8Zr93+hkJ0RrGU4OBTw8tfNzidKX+bmuYzn8FxqpxOPIGGCMA== - dependencies: - "@jest/console" "^28.0.2" - "@jest/types" "^28.0.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.0.2.tgz#7669b7d8ff2aa7a8221b11bb37cce552de81b1bb" - integrity sha512-zhnZ8ydkZQTPL7YucB86eOlD79zPy5EGSUKiR2Iv93RVEDU6OEP33kwDBg70ywOcxeJGDRhyo09q7TafNCBiIg== - dependencies: - "@jest/test-result" "^28.0.2" - graceful-fs "^4.2.9" - jest-haste-map "^28.0.2" - slash "^3.0.0" - -"@jest/transform@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.0.3.tgz#591fb5ebc1d84db5c5f21e1225c7406c35f5eb1e" - integrity sha512-+Y0ikI7SwoW/YbK8t9oKwC70h4X2Gd0OVuz5tctRvSV/EDQU00AAkoqevXgPSSFimUmp/sp7Yl8s/1bExDqOIg== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^28.0.2" - "@jridgewell/trace-mapping" "^0.3.7" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.0.2" - jest-regex-util "^28.0.2" - jest-util "^28.0.2" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - -"@jest/types@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.0.2.tgz#70b9538c1863fb060b2f438ca008b5563d00c5b4" - integrity sha512-hi3jUdm9iht7I2yrV5C4s3ucCJHUP8Eh3W6rQ1s4n/Qw9rQgsda4eqCt+r3BKRi7klVmZfQlMx1nGlzNMP2d8A== - dependencies: - "@jest/schemas" "^28.0.2" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72" - integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg== - -"@jridgewell/set-array@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.0.tgz#1179863356ac8fbea64a5a4bcde93a4871012c01" - integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg== - -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.10" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186" - integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg== - -"@jridgewell/trace-mapping@^0.3.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.2.tgz#e051581782a770c30ba219634f2019241c5d3cde" - integrity sha512-9KzzH4kMjA2XmBRHfqG2/Vtl7s92l6uNDd0wW7frDE+EUvQFGqNXhWp0UGJjSkt3v2AYjzOZn1QO9XaTNJIt1Q== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@sinclair/typebox@^0.23.3": - version "0.23.5" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.5.tgz#93f7b9f4e3285a7a9ade7557d9a8d36809cbc47d" - integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg== - -"@sindresorhus/is@^4.0.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.2.0.tgz#667bfc6186ae7c9e0b45a08960c551437176e1ca" - integrity sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw== - -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^9.1.1": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@skynetlabs/tus-js-client@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@skynetlabs/tus-js-client/-/tus-js-client-2.3.0.tgz#a14fd4197e2bc4ce8be724967a0e4c17d937cb64" - integrity sha512-piGvPlJh+Bu3Qf08bDlc/TnFLXE81KnFoPgvnsddNwTSLyyspxPFxJmHO5ki6SYyOl3HmUtGPoix+r2M2UpFEA== - dependencies: - buffer-from "^0.1.1" - combine-errors "^3.0.3" - is-stream "^2.0.0" - js-base64 "^2.6.1" - lodash.throttle "^4.1.1" - proper-lockfile "^2.0.1" - url-parse "^1.4.3" - -"@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== - dependencies: - defer-to-connect "^2.0.0" - -"@types/babel__core@^7.1.14": - version "7.1.18" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" - integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== - dependencies: - "@babel/types" "^7.3.0" - -"@types/cacheable-request@^6.0.1": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" - integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "*" - "@types/node" "*" - "@types/responselike" "*" - -"@types/graceful-fs@^4.1.3": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== - dependencies: - "@types/node" "*" - -"@types/http-cache-semantics@*": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/keyv@*": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.3.tgz#1c9aae32872ec1f20dcdaee89a9f3ba88f465e41" - integrity sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg== - dependencies: - "@types/node" "*" - -"@types/node@*": - version "16.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" - integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== - -"@types/prettier@^2.1.5": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.3.tgz#a3c65525b91fca7da00ab1a3ac2b5a2a4afbffbf" - integrity sha512-QzSuZMBuG5u8HqYz01qtMdg/Jfctlnvj1z/lYnIDXs/golxw0fxtRAHd9KrzjR7Yxz1qVeI00o0kiO3PmVdJ9w== - -"@types/responselike@*", "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== - dependencies: - "@types/node" "*" - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== - -"@types/yargs@^17.0.8": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.10.tgz#591522fce85d8739bca7b8bb90d048e4478d186a" - integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== - dependencies: - "@types/yargs-parser" "*" - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -async-mutex@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.3.2.tgz#1485eda5bda1b0ec7c8df1ac2e815757ad1831df" - integrity sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA== - dependencies: - tslib "^2.3.1" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -axios@^0.26.0: - version "0.26.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" - integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== - dependencies: - follow-redirects "^1.14.8" - -babel-jest@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.0.3.tgz#843dc170da5b9671d4054ada9fdcd28f85f92a6e" - integrity sha512-S0ADyYdcrt5fp9YldRYWCUHdk1BKt9AkvBkLWBoNAEV9NoWZPIj5+MYhPcGgTS65mfv3a+Ymf2UqgWoAVd41cA== - dependencies: - "@jest/transform" "^28.0.3" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.0.2" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.2.tgz#9307d03a633be6fc4b1a6bc5c3a87e22bd01dd3b" - integrity sha512-Kizhn/ZL+68ZQHxSnHyuvJv8IchXD62KQxV77TBDV/xoBFBOfgRAk97GNs6hXdTTCiVES9nB2I6+7MXXrk5llQ== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.0.2.tgz#d8210fe4e46c1017e9fa13d7794b166e93aa9f89" - integrity sha512-sYzXIdgIXXroJTFeB3S6sNDWtlJ2dllCdTEsnZ65ACrMojj3hVNFRmnJ1HZtomGi+Be7aqpY/HJ92fr8OhKVkQ== - dependencies: - babel-plugin-jest-hoist "^28.0.2" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base32-decode@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base32-decode/-/base32-decode-1.0.0.tgz#2a821d6a664890c872f20aa9aca95a4b4b80e2a7" - integrity sha512-KNWUX/R7wKenwE/G/qFMzGScOgVntOmbE27vvc6GrniDGYb6a5+qWcuoXl8WIOQL7q0TpK7nZDm1Y04Yi3Yn5g== - -base32-encode@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/base32-encode/-/base32-encode-1.2.0.tgz#e150573a5e431af0a998e32bdfde7045725ca453" - integrity sha512-cHFU8XeRyx0GgmoWi5qHMCVRiqU6J3MHWxVgun7jggCBUpVzm1Ir7M9dYr2whjSNc3tFeXfQ/oZjQu/4u55h9A== - dependencies: - to-data-view "^1.1.0" - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -blakejs@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" - integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== - -body-parser@1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.10.3" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.17.5: - version "4.19.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" - integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== - dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" - escalade "^3.1.1" - node-releases "^2.0.1" - picocolors "^1.0.0" - -browserslist@^4.20.2: - version "4.20.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== - dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" - escalade "^3.1.1" - node-releases "^2.0.3" - picocolors "^1.0.0" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-0.1.2.tgz#15f4b9bcef012044df31142c14333caf6e0260d0" - integrity sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer@^6.0.1: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - -cacheable-request@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^6.0.1" - responselike "^2.0.0" - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001286: - version "1.0.30001309" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001309.tgz#e0ee78b9bec0704f67304b00ff3c5c0c768a9f62" - integrity sha512-Pl8vfigmBXXq+/yUz1jUwULeq9xhMJznzdc/xwl4WclDAuebcTHVefpz8lE/bMI+UN7TOkSSe7B7RnZd6+dzjA== - -caniuse-lite@^1.0.30001332: - version "1.0.30001334" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001334.tgz#892e9965b35285033fc2b8a8eff499fe02f13d8b" - integrity sha512-kbaCEBRRVSoeNs74sCuq92MJyGrMtjWVfhltoHUCW4t4pXFvGjUBrfo47weBRViHkiV3eBYyIsfl956NtHGazw== - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - 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" - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -ci-info@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" - integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combine-errors@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/combine-errors/-/combine-errors-3.0.3.tgz#f4df6740083e5703a3181110c2b10551f003da86" - integrity sha1-9N9nQAg+VwOjGBEQwrEFUfAD2oY= - dependencies: - custom-error-instance "2.1.1" - lodash.uniqby "4.5.0" - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -custom-error-instance@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/custom-error-instance/-/custom-error-instance-2.1.1.tgz#3cf6391487a6629a6247eb0ca0ce00081b7e361a" - integrity sha1-PPY5FIemYppiR+sMoM4ACBt+Nho= - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.1.0, debug@^4.1.1: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= - -deep-object-diff@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.7.tgz#348b3246f426427dd633eaa50e1ed1fc2eafc7e4" - integrity sha512-QkgBca0mL08P6HiOjoqvmm6xOAl2W6CT2+34Ljhg0OeFan8cwlcdq8jrLKsBBuUFAZLsN5b6y491KdKEoSo9lg== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -defer-to-connect@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.0.2.tgz#40f8d4ffa081acbd8902ba35c798458d0ff1af41" - integrity sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ== - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -electron-to-chromium@^1.4.118: - version "1.4.129" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.129.tgz#c675793885721beefff99da50f57c6525c2cd238" - integrity sha512-GgtN6bsDtHdtXJtlMYZWGB/uOyjZWjmRDumXTas7dGBaB9zUyCjzHet1DY2KhyHN8R0GLbzZWqm4efeddqqyRQ== - -electron-to-chromium@^1.4.17: - version "1.4.65" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.65.tgz#c0820db06e268e0a2fd4dbce38fb5376d38ca449" - integrity sha512-0/d8Skk8sW3FxXP0Dd6MnBlrwx7Qo9cqQec3BlIAlvKnrmS3pHsIbaroEi+nd0kZkGpQ6apMEre7xndzjlEnLw== - -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expect@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.0.2.tgz#86f0d6fa971bc533faf68d4d103d00f343d6a4b3" - integrity sha512-X0qIuI/zKv98k34tM+uGeOgAC73lhs4vROF9MkPk94C1zujtwv4Cla8SxhWn0G1OwvG9gLLL7RjFBkwGVaZ83w== - dependencies: - "@jest/expect-utils" "^28.0.2" - jest-get-type "^28.0.2" - jest-matcher-utils "^28.0.2" - jest-message-util "^28.0.2" - jest-util "^28.0.2" - -express@^4.18.1: - version "4.18.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.0" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.10.3" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -follow-redirects@^1.14.8: - version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -glob@^7.1.3, glob@^7.1.4: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -got@^11.8.2: - version "11.8.2" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.2.tgz#7abb3959ea28c31f3576f1576c1effce23f33599" - integrity sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.1" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - -graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.2.10, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hasha@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" - integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== - dependencies: - is-stream "^2.0.0" - type-fest "^0.8.0" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-status-codes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.2.0.tgz#bb2efe63d941dfc2be18e15f703da525169622be" - integrity sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng== - -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== - dependencies: - has "^1.0.3" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-promise@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" - integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" - integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" - integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.0.2.tgz#7d7810660a5bd043af9e9cfbe4d58adb05e91531" - integrity sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA== - dependencies: - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.0.3.tgz#45f77090b4b9fe5c1b84f72816868c9d4c0f57b1" - integrity sha512-HJ3rUCm3A3faSy7KVH5MFCncqJLtrjEFkTPn9UIcs4Kq77+TXqHsOaI+/k73aHe6DJQigLUXq9rCYj3MYFlbIw== - dependencies: - "@jest/environment" "^28.0.2" - "@jest/expect" "^28.0.3" - "@jest/test-result" "^28.0.2" - "@jest/types" "^28.0.2" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - is-generator-fn "^2.0.0" - jest-each "^28.0.2" - jest-matcher-utils "^28.0.2" - jest-message-util "^28.0.2" - jest-runtime "^28.0.3" - jest-snapshot "^28.0.3" - jest-util "^28.0.2" - pretty-format "^28.0.2" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.0.3.tgz#4a4e55078ec772e0ea2583dd4c4b38fb306dc556" - integrity sha512-NCPTEONCnhYGo1qzPP4OOcGF04YasM5GZSwQLI1HtEluxa3ct4U65IbZs6DSRt8XN1Rq0jhXwv02m5lHB28Uyg== - dependencies: - "@jest/core" "^28.0.3" - "@jest/test-result" "^28.0.2" - "@jest/types" "^28.0.2" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^28.0.3" - jest-util "^28.0.2" - jest-validate "^28.0.2" - prompts "^2.0.1" - yargs "^17.3.1" - -jest-config@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.0.3.tgz#9c0556d60d692153a6bc8652974182c22db9244f" - integrity sha512-3gWOEHwGpNhyYOk9vnUMv94x15QcdjACm7A3lERaluwnyD6d1WZWe9RFCShgIXVOHzRfG1hWxsI2U0gKKSGgDQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.0.2" - "@jest/types" "^28.0.2" - babel-jest "^28.0.3" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^28.0.3" - jest-environment-node "^28.0.2" - jest-get-type "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.0.3" - jest-runner "^28.0.3" - jest-util "^28.0.2" - jest-validate "^28.0.2" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^28.0.2" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.0.2.tgz#a543c90082560cd6cb14c5f28c39e6d4618ad7a6" - integrity sha512-33Rnf821Y54OAloav0PGNWHlbtEorXpjwchnToyyWbec10X74FOW7hGfvrXLGz7xOe2dz0uo9JVFAHHj/2B5pg== - dependencies: - chalk "^4.0.0" - diff-sequences "^28.0.2" - jest-get-type "^28.0.2" - pretty-format "^28.0.2" - -jest-docblock@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.0.2.tgz#3cab8abea53275c9d670cdca814fc89fba1298c2" - integrity sha512-FH10WWw5NxLoeSdQlJwu+MTiv60aXV/t8KEwIRGEv74WARE1cXIqh1vGdy2CraHuWOOrnzTWj/azQKqW4fO7xg== - dependencies: - detect-newline "^3.0.0" - -jest-each@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.0.2.tgz#fcf6843e9afe5a3f2d0b1c02aab1f41889d92f1d" - integrity sha512-/W5Wc0b+ipR36kDaLngdVEJ/5UYPOITK7rW0djTlCCQdMuWpCFJweMW4TzAoJ6GiRrljPL8FwiyOSoSHKrda2w== - dependencies: - "@jest/types" "^28.0.2" - chalk "^4.0.0" - jest-get-type "^28.0.2" - jest-util "^28.0.2" - pretty-format "^28.0.2" - -jest-environment-node@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.0.2.tgz#bd58e192b8f36a37e52c52fac812bd24b360c0b9" - integrity sha512-o9u5UHZ+NCuIoa44KEF0Behhsz/p1wMm0WumsZfWR1k4IVoWSt3aN0BavSC5dd26VxSGQvkrCnJxxOzhhUEG3Q== - dependencies: - "@jest/environment" "^28.0.2" - "@jest/fake-timers" "^28.0.2" - "@jest/types" "^28.0.2" - "@types/node" "*" - jest-mock "^28.0.2" - jest-util "^28.0.2" - -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== - -jest-haste-map@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.0.2.tgz#0c768f43680013cfd2a4471a3ec76c47bfb9e7c6" - integrity sha512-EokdL7l5uk4TqWGawwrIt8w3tZNcbeiRxmKGEURf42pl+/rWJy3sCJlon5HBhJXZTW978jk6600BLQOI7i25Ig== - dependencies: - "@jest/types" "^28.0.2" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^28.0.2" - jest-util "^28.0.2" - jest-worker "^28.0.2" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.0.2.tgz#cbde3d22d09bd690ececdc2ed01c608435328456" - integrity sha512-UGaSPYtxKXl/YKacq6juRAKmMp1z2os8NaU8PSC+xvNikmu3wF6QFrXrihMM4hXeMr9HuNotBrQZHmzDY8KIBQ== - dependencies: - jest-get-type "^28.0.2" - pretty-format "^28.0.2" - -jest-matcher-utils@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.0.2.tgz#eb461af204b6d0f05281e9228094f0ab7e9e8537" - integrity sha512-SxtTiI2qLJHFtOz/bySStCnwCvISAuxQ/grS+74dfTy5AuJw3Sgj9TVUvskcnImTfpzLoMCDJseRaeRrVYbAOA== - dependencies: - chalk "^4.0.0" - jest-diff "^28.0.2" - jest-get-type "^28.0.2" - pretty-format "^28.0.2" - -jest-message-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.0.2.tgz#f3cf36be72be4c4c4058cb34bd6673996d26dee3" - integrity sha512-knK7XyojvwYh1XiF2wmVdskgM/uN11KsjcEWWHfnMZNEdwXCrqB4sCBO94F4cfiAwCS8WFV6CDixDwPlMh/wdA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.0.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^28.0.2" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.0.2.tgz#059b500b34c1dd76474ebcdeccc249fe4dd0249f" - integrity sha512-vfnJ4zXRB0i24jOTGtQJyl26JKsgBKtqRlCnsrORZbG06FToSSn33h2x/bmE8XxqxkLWdZBRo+/65l8Vi3nD+g== - dependencies: - "@jest/types" "^28.0.2" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== - -jest-resolve-dependencies@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.0.3.tgz#76d8f59f7e76ba36d76a1677eeaaed24560da7e0" - integrity sha512-lCgHMm0/5p0qHemrOzm7kI6JDei28xJwIf7XOEcv1HeAVHnsON8B8jO/woqlU+/GcOXb58ymieYqhk3zjGWnvQ== - dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.0.3" - -jest-resolve@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.0.3.tgz#63f8e6b53e40f265b3ca9116195221dd43e3d16d" - integrity sha512-lfgjd9JhEjpjIN3HLUfdysdK+A7ePQoYmd7WL9DUEWqdnngb1rF56eee6iDXJxl/3eSolpP43VD7VrhjL3NsoQ== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.0.2" - jest-pnp-resolver "^1.2.2" - jest-util "^28.0.2" - jest-validate "^28.0.2" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.0.3.tgz#a8a409c685ad3081a44b149b2eb04bc4d47faaf9" - integrity sha512-4OsHMjBLtYUWCENucAQ4Za0jGfEbOFi/Fusv6dzUuaweqx8apb4+5p2LR2yvgF4StFulmxyC238tGLftfu+zBA== - dependencies: - "@jest/console" "^28.0.2" - "@jest/environment" "^28.0.2" - "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.10.2" - graceful-fs "^4.2.9" - jest-docblock "^28.0.2" - jest-environment-node "^28.0.2" - jest-haste-map "^28.0.2" - jest-leak-detector "^28.0.2" - jest-message-util "^28.0.2" - jest-resolve "^28.0.3" - jest-runtime "^28.0.3" - jest-util "^28.0.2" - jest-watcher "^28.0.2" - jest-worker "^28.0.2" - source-map-support "0.5.13" - throat "^6.0.1" - -jest-runtime@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.0.3.tgz#02346a34de0ac61d23bdb0e8c035ad973d7bb087" - integrity sha512-7FtPUmvbZEHLOdjsF6dyHg5Pe4E0DU+f3Vvv8BPzVR7mQA6nFR4clQYLAPyJGnsUvN8WRWn+b5a5SVwnj1WaGg== - dependencies: - "@jest/environment" "^28.0.2" - "@jest/fake-timers" "^28.0.2" - "@jest/globals" "^28.0.3" - "@jest/source-map" "^28.0.2" - "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^28.0.2" - jest-message-util "^28.0.2" - jest-mock "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.0.3" - jest-snapshot "^28.0.3" - jest-util "^28.0.2" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.0.3.tgz#9a768d0c617d070e87c1bd37240f22b344616154" - integrity sha512-nVzAAIlAbrMuvVUrS1YxmAeo1TfSsDDU+K5wv/Ow56MBp+L+Y71ksAbwRp3kGCgZAz4oOXcAMPAwtT9Yh1hlQQ== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^28.0.2" - graceful-fs "^4.2.9" - jest-diff "^28.0.2" - jest-get-type "^28.0.2" - jest-haste-map "^28.0.2" - jest-matcher-utils "^28.0.2" - jest-message-util "^28.0.2" - jest-util "^28.0.2" - natural-compare "^1.4.0" - pretty-format "^28.0.2" - semver "^7.3.5" - -jest-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.0.2.tgz#8e22cdd6e0549e0a393055f0e2da7eacc334b143" - integrity sha512-EVdpIRCC8lzqhp9A0u0aAKlsFIzufK6xKxNK7awsnebTdOP4hpyQW5o6Ox2qPl8gbeUKYF+POLyItaND53kpGA== - dependencies: - "@jest/types" "^28.0.2" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.0.2.tgz#58bb7e826c054a8bb3b54c05f73758d96cf6dbef" - integrity sha512-nr0UOvCTtxP0YPdsk01Gk7e7c0xIiEe2nncAe3pj0wBfUvAykTVrMrdeASlAJnlEQCBuwN/GF4hKoCzbkGNCNw== - dependencies: - "@jest/types" "^28.0.2" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^28.0.2" - leven "^3.1.0" - pretty-format "^28.0.2" - -jest-watcher@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.0.2.tgz#649fa24df531d4071be5784b6274d494d788c88b" - integrity sha512-uIVJLpQ/5VTGQWBiBatHsi7jrCqHjHl0e0dFHMWzwuIfUbdW/muk0DtSr0fteY2T7QTFylv+7a5Rm8sBKrE12Q== - dependencies: - "@jest/test-result" "^28.0.2" - "@jest/types" "^28.0.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.10.2" - jest-util "^28.0.2" - string-length "^4.0.1" - -jest-worker@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.0.2.tgz#75f7e5126541289ba02e9c1a67e46349ddb8141d" - integrity sha512-pijNxfjxT0tGAx+8+OzZ+eayVPCwy/rsZFhebmC0F4YnXu1EHPEPxg7utL3m5uX3EaFH1/jwDxGa1EbjJCST2g== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.0.3.tgz#92a7d6ee097b61de4ba2db7f3ab723e81a99b32d" - integrity sha512-uS+T5J3w5xyzd1KSJCGKhCo8WTJXbNl86f5SW11wgssbandJOVLRKKUxmhdFfmKxhPeksl1hHZ0HaA8VBzp7xA== - dependencies: - "@jest/core" "^28.0.3" - import-local "^3.0.2" - jest-cli "^28.0.3" - -js-base64@^2.6.1: - version "2.6.4" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" - integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -keyv@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" - integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== - dependencies: - json-buffer "3.0.1" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash._baseiteratee@~4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz#34a9b5543572727c3db2e78edae3c0e9e66bd102" - integrity sha1-NKm1VDVycnw9sueO2uPA6eZr0QI= - dependencies: - lodash._stringtopath "~4.8.0" - -lodash._basetostring@~4.12.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz#9327c9dc5158866b7fa4b9d42f4638e5766dd9df" - integrity sha1-kyfJ3FFYhmt/pLnUL0Y45XZt2d8= - -lodash._baseuniq@~4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8" - integrity sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg= - dependencies: - lodash._createset "~4.0.0" - lodash._root "~3.0.0" - -lodash._createset@~4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" - integrity sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY= - -lodash._root@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" - integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= - -lodash._stringtopath@~4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz#941bcf0e64266e5fc1d66fed0a6959544c576824" - integrity sha1-lBvPDmQmbl/B1m/tCmlZVExXaCQ= - dependencies: - lodash._basetostring "~4.12.0" - -lodash.throttle@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" - integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= - -lodash.uniqby@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz#a3a17bbf62eeb6240f491846e97c1c4e2a5e1e21" - integrity sha1-o6F7v2LutiQPSRhG6XwcTipeHiE= - dependencies: - lodash._baseiteratee "~4.7.0" - lodash._baseuniq "~4.6.0" - -lodash@4, lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -lowdb@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz#5243be6b22786ccce30e50c9a33eac36b20c8064" - integrity sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ== - dependencies: - graceful-fs "^4.1.3" - is-promise "^2.1.0" - lodash "4" - pify "^3.0.0" - steno "^0.4.1" - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mime-db@1.50.0: - version "1.50.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" - integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== - -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== - -mime-types@^2.1.12, mime-types@~2.1.24: - version "2.1.33" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" - integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== - dependencies: - mime-db "1.50.0" - -mime-types@~2.1.34: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== - dependencies: - mime-db "1.51.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" - integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - -minimatch@^3.0.4: - version "3.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" - integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== - -node-releases@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476" - integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - 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" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.3: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -post-me@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/post-me/-/post-me-0.4.5.tgz#6171b721c7b86230c51cfbe48ddea047ef8831ce" - integrity sha512-XgPdktF/2M5jglgVDULr9NUb/QNv3bY3g6RG22iTb5MIMtB07/5FJB5fbVmu5Eaopowc6uZx7K3e7x1shPwnXw== - -prettier@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" - integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== - -pretty-format@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.0.2.tgz#6a24d71cbb61a5e5794ba7513fe22101675481bc" - integrity sha512-UmGZ1IERwS3yY35LDMTaBUYI1w4udZDdJGGT/DqQeKG9ZLDn7/K2Jf/JtYSRiHCCKMHvUA+zsEGSmHdpaVp1yw== - dependencies: - "@jest/schemas" "^28.0.2" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -proper-lockfile@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-2.0.1.tgz#159fb06193d32003f4b3691dd2ec1a634aa80d1d" - integrity sha1-FZ+wYZPTIAP0s2kd0uwaY0qoDR0= - dependencies: - graceful-fs "^4.1.2" - retry "^0.10.0" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -qs@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -react-is@^18.0.0: - version "18.1.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" - integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-alpn@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - -resolve@^1.20.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -responselike@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" - integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== - dependencies: - lowercase-keys "^2.0.0" - -retry@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" - integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= - -rimraf@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -safe-buffer@5.2.1, safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.5: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -sjcl@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/sjcl/-/sjcl-1.0.8.tgz#f2ec8d7dc1f0f21b069b8914a41a8f236b0e252a" - integrity sha512-LzIjEQ0S0DpIgnxMEayM1rq9aGwGRG4OnZhCdjx7glTaJtf4zRfpg87ImfjSJjoW9vKpagd82McDOwbRT5kQKQ== - -skynet-js@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/skynet-js/-/skynet-js-4.1.0.tgz#eccb84d04e9f42aa4f86ecb24fb4d59ed21e44cc" - integrity sha512-VmUjJ9QnLpfuQA2j7vzFh8JvukjQlX4QLGw1HY3VyslFPj92vPpyO8gqjPfzgbkR05TXL7CbdqZoLZr/RBDZPw== - dependencies: - "@skynetlabs/tus-js-client" "^2.3.0" - async-mutex "^0.3.2" - axios "^0.26.0" - base32-decode "^1.0.0" - base32-encode "^1.1.1" - base64-js "^1.3.1" - blakejs "^1.1.0" - buffer "^6.0.1" - mime "^3.0.0" - path-browserify "^1.0.1" - post-me "^0.4.5" - randombytes "^2.1.0" - sjcl "^1.0.8" - skynet-mysky-utils "^0.3.0" - tweetnacl "^1.0.3" - url-join "^4.0.1" - url-parse "^1.5.1" - -skynet-mysky-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/skynet-mysky-utils/-/skynet-mysky-utils-0.3.0.tgz#87fdc0a5f8547cf660280ef86b7a762269919bad" - integrity sha512-X9L6SrVTdwTUFook/E6zUWCOpXHdyspLAu0elQbbPkZCWeFpr/XXTMbiyPV3m1liYsesngAKxzaSqylaTWOGUA== - dependencies: - post-me "^0.4.5" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -steno@^0.4.1: - version "0.4.4" - resolved "https://registry.yarnpkg.com/steno/-/steno-0.4.4.tgz#071105bdfc286e6615c0403c27e9d7b5dcb855cb" - integrity sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs= - dependencies: - graceful-fs "^4.1.3" - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-data-view@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/to-data-view/-/to-data-view-1.1.0.tgz#08d6492b0b8deb9b29bdf1f61c23eadfa8994d00" - integrity sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tslib@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.8.0: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -url-join@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" - integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== - -url-parse@^1.4.3, url-parse@^1.5.1: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -v8-to-istanbul@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz#be0dae58719fc53cb97e5c7ac1d7e6d4f5b19511" - integrity sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.7" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" - integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^21.0.0: - version "21.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" - integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA== - -yargs@^17.3.1, yargs@^17.4.1: - version "17.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.1.tgz#ebe23284207bb75cee7c408c33e722bfb27b5284" - integrity sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" From 2ef8c7c2886de13de95678c5826dfb329ccef322 Mon Sep 17 00:00:00 2001 From: Matthew Sevey Date: Thu, 26 May 2022 13:12:58 -0400 Subject: [PATCH 4/7] Update health check image --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index cf7ee3ec..3118ce69 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -173,7 +173,7 @@ services: # build: # context: https://github.com/SkynetLabs/webportal-health-check.git#master # dockerfile: Dockerfile - image: skynetlabs/webportal-health-check:0.1.2 + image: skynetlabs/webportal-health-check:0.1.3 container_name: health-check restart: unless-stopped logging: *default-logging From ca40bc1bc02c727ef16032eef8c47945ad07e891 Mon Sep 17 00:00:00 2001 From: Karol Wypchlo Date: Fri, 27 May 2022 12:37:33 +0200 Subject: [PATCH 5/7] clean up dependabot health-check configuration --- .github/dependabot.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index beb0a9e2..c6023b80 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -12,10 +12,6 @@ updates: directory: "/packages/handshake-api" schedule: interval: monthly - - package-ecosystem: npm - directory: "/packages/health-check" - schedule: - interval: monthly - package-ecosystem: npm directory: "/packages/website" schedule: @@ -40,10 +36,6 @@ updates: directory: "/packages/handshake-api" schedule: interval: monthly - - package-ecosystem: docker - directory: "/packages/health-check" - schedule: - interval: monthly - package-ecosystem: docker directory: "/packages/website" schedule: From 227df6cc284e67c35b5615f7504a545f2a54a248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20Wypch=C5=82o?= Date: Fri, 27 May 2022 15:24:05 +0200 Subject: [PATCH 6/7] Update docker-compose.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Leszczyk --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 3118ce69..a28fc79c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -171,7 +171,7 @@ services: health-check: # uncomment "build" and comment out "image" to build from sources # build: - # context: https://github.com/SkynetLabs/webportal-health-check.git#master + # context: https://github.com/SkynetLabs/webportal-health-check.git#main # dockerfile: Dockerfile image: skynetlabs/webportal-health-check:0.1.3 container_name: health-check From e30efa45faf1d6d98f0f091228434aa5d4586746 Mon Sep 17 00:00:00 2001 From: Matthew Sevey Date: Fri, 27 May 2022 09:32:56 -0400 Subject: [PATCH 7/7] Fix dependabot file --- .github/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index dfebb119..2b43474f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,7 +4,7 @@ updates: directory: "/packages/dashboard" schedule: interval: monthly - - package-ecosystem: docker + - package-ecosystem: docker directory: "/docker/sia" schedule: interval: monthly