From d2a5187b364d25eff7f65a63020429b0885892fd Mon Sep 17 00:00:00 2001 From: Vedant K Date: Tue, 12 Jul 2022 21:31:19 +0530 Subject: [PATCH] [major] TypeScript rewrite, support ES Modules. (#706) --- .gitattributes | 4 + .github/ISSUE_TEMPLATE/bug_report.yaml | 31 + .github/ISSUE_TEMPLATE/feature_request.yaml | 28 + .github/PULL_REQUEST_TEMPLATE/default.md | 56 + .github/workflows/ci.yaml | 55 +- .gitignore | 15 +- .npmrc | 9 +- LICENSE | 21 - README.md | 87 - bin/serve.js | 462 -- config/husky/pre-commit | 8 + contributing.md | 205 + license.md | 20 + media/banner.png | Bin 0 -> 36608 bytes media/listing-ui.png | Bin 0 -> 296544 bytes package-lock.json | 1565 ------ package.json | 87 +- pnpm-lock.yaml | 4715 +++++++++++++++++++ readme.md | 96 + source/main.ts | 172 + source/types.ts | 89 + source/utilities/cli.ts | 127 + source/utilities/config.ts | 134 + source/utilities/http.ts | 89 + source/utilities/logger.ts | 16 + source/utilities/promise.ts | 30 + source/utilities/server.ts | 158 + tsconfig.json | 12 + 28 files changed, 6121 insertions(+), 2170 deletions(-) create mode 100644 .gitattributes create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yaml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yaml create mode 100644 .github/PULL_REQUEST_TEMPLATE/default.md delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100755 bin/serve.js create mode 100755 config/husky/pre-commit create mode 100644 contributing.md create mode 100644 license.md create mode 100644 media/banner.png create mode 100644 media/listing-ui.png delete mode 100644 package-lock.json create mode 100644 pnpm-lock.yaml create mode 100644 readme.md create mode 100755 source/main.ts create mode 100644 source/types.ts create mode 100644 source/utilities/cli.ts create mode 100644 source/utilities/config.ts create mode 100644 source/utilities/http.ts create mode 100644 source/utilities/logger.ts create mode 100644 source/utilities/promise.ts create mode 100644 source/utilities/server.ts create mode 100644 tsconfig.json diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..481e6e6b --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +# .gitattributes +# Makes sure all line endings are LF. + +* text=auto eol=lf diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml new file mode 100644 index 00000000..1cfd82f9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -0,0 +1,31 @@ +name: Report a bug +description: ——— +labels: [bug] +body: + - type: markdown + attributes: + value: | + # Thanks for reporting this bug! + + Help us replicate and find a fix for the issue by filling in this form. + - type: textarea + attributes: + label: Description + description: | + Describe the issue and how to replicate it. If possible, please include + a minimal example to reproduce the issue. + validations: + required: true + - type: input + attributes: + label: Library version + description: | + Output of the `serve --version` command + validations: + required: true + - type: input + attributes: + label: Node version + description: Output of the `node --version` command + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml new file mode 100644 index 00000000..f60c6110 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -0,0 +1,28 @@ +name: Suggest an improvement or new feature +description: ——— +labels: [enhancement] +body: + - type: markdown + attributes: + value: | + # Thanks for filing this feature request! + + Help us understanding this feature and the need for it better by filling in this form. + - type: textarea + attributes: + label: Description + description: Describe the feature in detail + validations: + required: true + - type: textarea + attributes: + label: Why + description: Why should we add this feature? What are potential use cases for it? + validations: + required: true + - type: textarea + attributes: + label: Alternatives + description: Describe the alternatives you have considered, or existing workarounds + validations: + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE/default.md b/.github/PULL_REQUEST_TEMPLATE/default.md new file mode 100644 index 00000000..2ccf716b --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/default.md @@ -0,0 +1,56 @@ + + +## Related Issues + + + +## Description + + + +### Added + + + +### Changed + + + +### Removed + + + +## Caveats/Problems/Issues + + + +## Checklist + +- [ ] The issues that this PR fixes/closes have been mentioned above. +- [ ] What this PR adds/changes/removes has been explained. +- [ ] All tests (`pnpm test`) pass. +- [ ] The linter (`pnpm lint`) does not throw an errors. +- [ ] All added/modified code has been commented, and + methods/classes/constants/types have been annotated with TSDoc comments. diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 82fae3c6..cb8e5fce 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,20 +1,47 @@ +# .github/workflows/ci.yaml +# Lints and tests the server every time a commit is pushed to the remote +# repository. + name: CI -on: - - push - - pull_request +on: [push, pull_request] jobs: + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - name: Checkout the repository + uses: actions/checkout@v2 + - name: Setup PNPM 7 + uses: pnpm/action-setup@v2.0.1 + with: + version: latest + - name: Setup Node 18 + uses: actions/setup-node@v2 + with: + node-version: 18 + registry-url: 'https://registry.npmjs.org/' + cache: 'pnpm' + - name: Install dependencies + run: pnpm install + - name: Check for errors in code/formatting + run: pnpm lint test: - name: Node.js ${{ matrix.node-version }} + name: Test runs-on: ubuntu-latest - strategy: - matrix: - node-version: - - 16 - - 14 steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 + - name: Checkout the repository + uses: actions/checkout@v2 + - name: Setup PNPM 7 + uses: pnpm/action-setup@v2.0.1 + with: + version: latest + - name: Setup Node 18 + uses: actions/setup-node@v2 with: - node-version: ${{ matrix.node-version }} - - run: npm install - - run: npm test + node-version: 18 + registry-url: 'https://registry.npmjs.org/' + cache: 'pnpm' + - name: Install dependencies + run: pnpm install + - name: Run all tests + run: pnpm test diff --git a/.gitignore b/.gitignore index e93b3115..2e098dac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,14 @@ -node_modules +# .gitignore +# A list of files and folders that should not be tracked by Git. + +node_modules/ +coverage/ +build/ +.cache/ +.idea/ +.vscode/ + *.log -.nyc_output +*.tgz +*.bak +*.tmp diff --git a/.npmrc b/.npmrc index 1dab4ed4..c5891f68 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,8 @@ -save-exact = true +# .npmrc +# Configuration for pnpm. + +# Uses the exact version instead of any within-patch-range version of an +# installed package. +save-exact=true +# Do not error out on missing peer dependencies. +strict-peer-dependencies=false diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 958af242..00000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2022 Vercel, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index ca4e31e6..00000000 --- a/README.md +++ /dev/null @@ -1,87 +0,0 @@ -![](https://assets.vercel.com/image/upload/v1527770721/repositories/serve/serve-repo-banner.png) - - - - - -[![Build Status](https://circleci.com/gh/vercel/serve.svg?&style=shield)](https://circleci.com/gh/vercel/serve) -[![Install Size](https://packagephobia.now.sh/badge?p=serve)](https://packagephobia.now.sh/result?p=serve) - -Assuming you would like to serve a static site, single page application or just a static file (no matter if on your device or on the local network), this package is just the right choice for you. - -Once it's time to push your site to production, we recommend using [Vercel](https://vercel.com). - -In general, `serve` also provides a neat interface for listing the directory's contents: - -![Screenshot](https://user-images.githubusercontent.com/6170607/140353065-414bb2a7-33fb-4319-b359-f5e22edb860b.png) - -## Usage - -The quickest way to get started is to just run `npx serve` in your project's directory. - -If you prefer, you can also install the package globally using [Yarn](https://yarnpkg.com/en/) (you'll need at least [Node.js LTS](https://nodejs.org/en/)): - -```bash -yarn global add serve -``` - -Once that's done, you can run this command inside your project's directory... - -```bash -serve -``` - -...or specify which folder you want to serve: - -```bash -serve folder_name -``` - -Finally, run this command to see a list of all available options: - -```bash -serve --help -``` - -Now you understand how the package works! :tada: - -## Configuration - -To customize `serve`'s behavior, create a `serve.json` file in the public folder and insert any of [these properties](https://github.com/vercel/serve-handler#options). - -## API - -The core of `serve` is [serve-handler](https://github.com/vercel/serve-handler), which can be used as middleware in existing HTTP servers: - -```js -const handler = require('serve-handler'); -const http = require('http'); - -const server = http.createServer((request, response) => { - // You pass two more arguments for config and middleware - // More details here: https://github.com/vercel/serve-handler#options - return handler(request, response); -}); - -server.listen(3000, () => { - console.log('Running at http://localhost:3000'); -}); -``` - -**NOTE:** You can also replace `http.createServer` with [micro](https://github.com/vercel/micro), if you want. - -## Contributing - -1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device -2. Uninstall `serve` if it's already installed: `npm uninstall -g serve` -3. Link it to the global module directory: `npm link` - -After that, you can use the `serve` command everywhere. [Here](https://github.com/vercel/serve/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+for+beginners%22)'s a list of issues that are great for beginners. - -## Credits - -This project used to be called "list" and "micro-list". But thanks to [TJ Holowaychuk](https://github.com/tj) handing us the new name, it's now called "serve" (which is much more definite). - -## Author - -Leo Lamprecht ([@notquiteleo](https://twitter.com/notquiteleo)) diff --git a/bin/serve.js b/bin/serve.js deleted file mode 100755 index bbfc56b7..00000000 --- a/bin/serve.js +++ /dev/null @@ -1,462 +0,0 @@ -#!/usr/bin/env node - -// Native -const http = require('http'); -const https = require('https'); -const path = require('path'); -const fs = require('fs'); -const {promisify} = require('util'); -const {parse} = require('url'); -const os = require('os'); - -// Packages -const Ajv = require('ajv'); -const checkForUpdate = require('update-check'); -const chalk = require('chalk'); -const arg = require('arg'); -const {write: copy} = require('clipboardy'); -const handler = require('serve-handler'); -const schema = require('@zeit/schemas/deployment/config-static'); -const boxen = require('boxen'); -const compression = require('compression'); - -// Utilities -const pkg = require('../package'); - -const readFile = promisify(fs.readFile); -const compressionHandler = promisify(compression()); - -const interfaces = os.networkInterfaces(); - -const warning = (message) => chalk`{yellow WARNING:} ${message}`; -const info = (message) => chalk`{magenta INFO:} ${message}`; -const error = (message) => chalk`{red ERROR:} ${message}`; - -const updateCheck = async (isDebugging) => { - let update = null; - - try { - update = await checkForUpdate(pkg); - } catch (err) { - const suffix = isDebugging ? ':' : ' (use `--debug` to see full error)'; - console.error(warning(`Checking for updates failed${suffix}`)); - - if (isDebugging) { - console.error(err); - } - } - - if (!update) { - return; - } - - console.log(`${chalk.bgRed('UPDATE AVAILABLE')} The latest version of \`serve\` is ${update.latest}`); -}; - -const getHelp = () => chalk` - {bold.cyan serve} - Static file serving and directory listing - - {bold USAGE} - - {bold $} {cyan serve} --help - {bold $} {cyan serve} --version - {bold $} {cyan serve} folder_name - {bold $} {cyan serve} [-l {underline listen_uri} [-l ...]] [{underline directory}] - - By default, {cyan serve} will listen on {bold 0.0.0.0:3000} and serve the - current working directory on that address. - - Specifying a single {bold --listen} argument will overwrite the default, not supplement it. - - {bold OPTIONS} - - --help Shows this help message - - -v, --version Displays the current version of serve - - -l, --listen {underline listen_uri} Specify a URI endpoint on which to listen (see below) - - more than one may be specified to listen in multiple places - - -p Specify custom port - - -d, --debug Show debugging information - - -s, --single Rewrite all not-found requests to \`index.html\` - - -c, --config Specify custom path to \`serve.json\` - - -C, --cors Enable CORS, sets \`Access-Control-Allow-Origin\` to \`*\` - - -n, --no-clipboard Do not copy the local address to the clipboard - - -u, --no-compression Do not compress files - - --no-etag Send \`Last-Modified\` header instead of \`ETag\` - - -S, --symlinks Resolve symlinks instead of showing 404 errors - - --ssl-cert Optional path to an SSL/TLS certificate to serve with HTTPS - - --ssl-key Optional path to the SSL/TLS certificate\'s private key - - --ssl-pass Optional path to the SSL/TLS certificate\'s passphrase - - --no-port-switching Do not open a port other than the one specified when it\'s taken. - - {bold ENDPOINTS} - - Listen endpoints (specified by the {bold --listen} or {bold -l} options above) instruct {cyan serve} - to listen on one or more interfaces/ports, UNIX domain sockets, or Windows named pipes. - - For TCP ports on hostname "localhost": - - {bold $} {cyan serve} -l {underline 1234} - - For TCP (traditional host/port) endpoints: - - {bold $} {cyan serve} -l tcp://{underline hostname}:{underline 1234} - - For UNIX domain socket endpoints: - - {bold $} {cyan serve} -l unix:{underline /path/to/socket.sock} - - For Windows named pipe endpoints: - - {bold $} {cyan serve} -l pipe:\\\\.\\pipe\\{underline PipeName} -`; - -const parseEndpoint = (str) => { - if (!isNaN(str)) { - return [str]; - } - - // We cannot use `new URL` here, otherwise it will not - // parse the host properly and it would drop support for IPv6. - const url = parse(str); - - switch (url.protocol) { - case 'pipe:': { - // some special handling - const cutStr = str.replace(/^pipe:/, ''); - - if (cutStr.slice(0, 4) !== '\\\\.\\') { - throw new Error(`Invalid Windows named pipe endpoint: ${str}`); - } - - return [cutStr]; - } - case 'unix:': - if (!url.pathname) { - throw new Error(`Invalid UNIX domain socket endpoint: ${str}`); - } - - return [url.pathname]; - case 'tcp:': - url.port = url.port || '3000'; - return [parseInt(url.port, 10), url.hostname]; - default: - throw new Error(`Unknown --listen endpoint scheme (protocol): ${url.protocol}`); - } -}; - -const registerShutdown = (fn) => { - let run = false; - - const wrapper = () => { - if (!run) { - run = true; - fn(); - } - }; - - process.on('SIGINT', wrapper); - process.on('SIGTERM', wrapper); - process.on('exit', wrapper); -}; - -const getNetworkAddress = () => { - for (const name of Object.keys(interfaces)) { - for (const interface of interfaces[name]) { - const {address, family, internal} = interface; - if (family === 'IPv4' && !internal) { - return address; - } - } - } -}; - -const startEndpoint = (endpoint, config, args, previous) => { - const {isTTY} = process.stdout; - const clipboard = args['--no-clipboard'] !== true; - const compress = args['--no-compression'] !== true; - const httpMode = args['--ssl-cert'] && args['--ssl-key'] ? 'https' : 'http'; - - const serverHandler = async (request, response) => { - if (args['--cors']) { - response.setHeader('Access-Control-Allow-Origin', '*'); - } - if (compress) { - await compressionHandler(request, response); - } - - return handler(request, response, config); - }; - - const sslPass = args['--ssl-pass']; - - const server = httpMode === 'https' - ? https.createServer({ - key: fs.readFileSync(args['--ssl-key']), - cert: fs.readFileSync(args['--ssl-cert']), - passphrase: sslPass ? fs.readFileSync(sslPass, "utf8") : '' - }, serverHandler) - : http.createServer(serverHandler); - - server.on('error', (err) => { - if (err.code === 'EADDRINUSE' && endpoint.length === 1 && !isNaN(endpoint[0]) && args['--no-port-switching'] !== true) { - startEndpoint([0], config, args, endpoint[0]); - return; - } - - console.error(error(`Failed to serve: ${err.stack}`)); - process.exit(1); - }); - - server.listen(...endpoint, async () => { - const details = server.address(); - registerShutdown(() => server.close()); - - let localAddress = null; - let networkAddress = null; - - if (typeof details === 'string') { - localAddress = details; - } else if (typeof details === 'object' && details.port) { - const address = details.address === '::' ? 'localhost' : details.address; - const ip = getNetworkAddress(); - - localAddress = `${httpMode}://${address}:${details.port}`; - networkAddress = ip ? `${httpMode}://${ip}:${details.port}` : null; - } - - if (isTTY && process.env.NODE_ENV !== 'production') { - let message = chalk.green('Serving!'); - - if (localAddress) { - const prefix = networkAddress ? '- ' : ''; - const space = networkAddress ? ' ' : ' '; - - message += `\n\n${chalk.bold(`${prefix}Local:`)}${space}${localAddress}`; - } - - if (networkAddress) { - message += `\n${chalk.bold('- On Your Network:')} ${networkAddress}`; - } - - if (previous) { - message += chalk.red(`\n\nThis port was picked because ${chalk.underline(previous)} is in use.`); - } - - if (clipboard) { - try { - await copy(localAddress); - message += `\n\n${chalk.grey('Copied local address to clipboard!')}`; - } catch (err) { - console.error(error(`Cannot copy to clipboard: ${err.message}`)); - } - } - - console.log(boxen(message, { - padding: 1, - borderColor: 'green', - margin: 1 - })); - } else { - const suffix = localAddress ? ` at ${localAddress}` : ''; - console.log(info(`Accepting connections${suffix}`)); - } - }); -}; - -const loadConfig = async (cwd, entry, args) => { - const files = [ - 'serve.json', - 'now.json', - 'package.json' - ]; - - if (args['--config']) { - files.unshift(args['--config']); - } - - const config = {}; - - for (const file of files) { - const location = path.resolve(entry, file); - let content = null; - - try { - content = await readFile(location, 'utf8'); - } catch (err) { - if (err.code === 'ENOENT' && file !== args['--config']) { - continue; - } - - console.error(error(`Not able to read ${location}: ${err.message}`)); - process.exit(1); - } - - try { - content = JSON.parse(content); - } catch (err) { - console.error(error(`Could not parse ${location} as JSON: ${err.message}`)); - process.exit(1); - } - - if (typeof content !== 'object') { - console.error(warning(`Didn't find a valid object in ${location}. Skipping...`)); - continue; - } - - try { - switch (file) { - case 'now.json': - content = content.static; - break; - case 'package.json': - content = content.now.static; - break; - } - } catch (err) { - continue; - } - - Object.assign(config, content); - console.log(info(`Discovered configuration in \`${file}\``)); - - if (file === 'now.json' || file === 'package.json') { - console.error(warning('The config files `now.json` and `package.json` are deprecated. Please use `serve.json`.')); - } - - break; - } - - if (entry) { - const {public} = config; - config.public = path.relative(cwd, (public ? path.resolve(entry, public) : entry)); - } - - if (Object.keys(config).length !== 0) { - const ajv = new Ajv(); - const validateSchema = ajv.compile(schema); - - if (!validateSchema(config)) { - const defaultMessage = error('The configuration you provided is wrong:'); - const {message, params} = validateSchema.errors[0]; - - console.error(`${defaultMessage}\n${message}\n${JSON.stringify(params)}`); - process.exit(1); - } - } - - // "ETag" headers are enabled by default unless `--no-etag` is provided - config.etag = !args['--no-etag']; - - return config; -}; - -(async () => { - let args = null; - - try { - args = arg({ - '--help': Boolean, - '--version': Boolean, - '--listen': [parseEndpoint], - '--single': Boolean, - '--debug': Boolean, - '--config': String, - '--no-clipboard': Boolean, - '--no-compression': Boolean, - '--no-etag': Boolean, - '--symlinks': Boolean, - '--cors': Boolean, - '--no-port-switching': Boolean, - '--ssl-cert': String, - '--ssl-key': String, - '--ssl-pass': String, - '-h': '--help', - '-v': '--version', - '-l': '--listen', - '-s': '--single', - '-d': '--debug', - '-c': '--config', - '-n': '--no-clipboard', - '-u': '--no-compression', - '-S': '--symlinks', - '-C': '--cors', - // This is deprecated and only for backwards-compatibility. - '-p': '--listen' - }); - } catch (err) { - console.error(error(err.message)); - process.exit(1); - } - - if (process.env.NO_UPDATE_CHECK !== '1') { - await updateCheck(args['--debug']); - } - - if (args['--version']) { - console.log(pkg.version); - return; - } - - if (args['--help']) { - console.log(getHelp()); - return; - } - - if (!args['--listen']) { - // Default endpoint - args['--listen'] = [[process.env.PORT || 3000]]; - } - - if (args._.length > 1) { - console.error(error('Please provide one path argument at maximum')); - process.exit(1); - } - - const cwd = process.cwd(); - const entry = args._.length > 0 ? path.resolve(args._[0]) : cwd; - - const config = await loadConfig(cwd, entry, args); - - if (args['--single']) { - const {rewrites} = config; - const existingRewrites = Array.isArray(rewrites) ? rewrites : []; - - // As the first rewrite rule, make `--single` work - config.rewrites = [{ - source: '**', - destination: '/index.html' - }, ...existingRewrites]; - } - - if (args['--symlinks']) { - config.symlinks = true; - } - - for (const endpoint of args['--listen']) { - startEndpoint(endpoint, config, args); - } - - registerShutdown(() => { - console.log(`\n${info('Gracefully shutting down. Please wait...')}`); - - process.on('SIGINT', () => { - console.log(`\n${warning('Force-closing all open sockets...')}`); - process.exit(0); - }); - }); -})(); diff --git a/config/husky/pre-commit b/config/husky/pre-commit new file mode 100755 index 00000000..7f8a2fd1 --- /dev/null +++ b/config/husky/pre-commit @@ -0,0 +1,8 @@ +#!/bin/sh + +# config/husky/pre-commit +# Run `lint-staged` before every commit. + +. "$(dirname "$0")/_/husky.sh" + +FORCE_COLOR=2 pnpm lint-staged diff --git a/contributing.md b/contributing.md new file mode 100644 index 00000000..dd255d3c --- /dev/null +++ b/contributing.md @@ -0,0 +1,205 @@ +# Contributing Guide + +Thanks for your interest in contributing to `serve`! This guide will +show you how to set up your environment and contribute to this library. + +## Set Up + +First, you need to install and be familiar the following: + +- `git`: [Here](https://github.com/git-guides) is a great guide by GitHub on + installing and getting started with Git. +- `node` and `pnpm`: + [This guide](https://nodejs.org/en/download/package-manager/) will help you + install Node and [this one](https://pnpm.io/installation) will help you install PNPM. The + recommended method is using the `n` version manager if you are on MacOS or Linux. Make sure + you are using the [`current` version](https://github.com/nodejs/Release#release-schedule) of + Node. + +Once you have installed the above, follow +[these instructions](https://docs.github.com/en/get-started/quickstart/fork-a-repo) +to +[`fork`](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks) +and [`clone`](https://github.com/git-guides/git-clone) the repository +(`vercel/serve`). + +Once you have forked and cloned the repository, you can +[pick out an issue](https://github.com/vercel/serve/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) +you want to fix/implement! + +## Making Changes + +Once you have cloned the repository to your computer (say, in +`~/code/serve`) and picked the issue you want to tackle, create a +branch: + +```sh +> git switch --create branch-name +``` + +While naming your branch, try to follow the below guidelines: + +1. Prefix the branch name with the type of change being made: + - `fix`: For a bug fix. + - `feat`: For a new feature. + - `test`: For any change related to tests. + - `perf`: For a performance related change. + - `build`: For changes related to the build process. + - `ci`: For all changes to the CI files. + - `refc`: For any refactoring work. + - `docs`: For any documentation related changes. +2. Make the branch name short but self-explanatory. + +Once you have created a branch, you can start coding! + +The CLI is written in +[Typescript](https://github.com/microsoft/TypeScript#readme) and uses the +[`current` version](https://github.com/nodejs/Release#release-schedule) of Node. +The code is structured as follows: + +```sh +serve +├── config +│ └── husky +│ ├── _ +│ └── pre-commit +├── media +│ ├── banner.png +│ └── listing-ui.png +├── source +│ ├── utilities +│ │ ├── cli.ts +│ │ ├── config.ts +│ │ ├── http.ts +│ │ ├── logger.ts +│ │ ├── promise.ts +│ │ └── server.ts +│ ├── main.ts +│ └── types.ts +├── contributing.md +├── license.md +├── package.json +├── pnpm-lock.yaml +├── readme.md +└── tsconfig.json +``` + +> Most files have a little description of what they do at the top. + +#### `./` + +- `package.json`: Node package manifest. This file contains the name, version, + description, dependencies, scripts and package configuration of the project. +- `pnpm-lock.yaml`: PNPM lock file, please do not modify it manually. Run + `pnpm install` to update it if you add/remove a dependency to/from + `package.json` manually. +- `tsconfig.json`: The Typescript configuration for this project. +- `contributing.md`: The file you are reading. It helps contributors get + started. +- `license.md`: Tells people how they can use the code. +- `readme.md`: The file everyone should read before running the server. Contains + installation and usage instructions. + +#### `config/husky/` + +- `pre-commit`: This file is a script that runs before Git commits code. + +#### `source/utilities/` + +- `utilities/config.ts`: Searches and parses the configuration for the CLI. +- `utilities/http.ts`: Defines and exports helper functions for the server. +- `utilities/server.ts`: Exports a function used to start the server with a + given configuration on a certain port. +- `utilities/promise.ts`: Exports utility functions and wrappers that help + resolve `Promise`s. +- `utilities/cli.ts`: Exports functions that help with CLI-related stuff, e.g., + parsing arguments and printing help text. +- `utilities/logger.ts`: A barebones logger. + +#### `source/` + +- `main.ts`: Entrypoint for the CLI. +- `types.ts`: Typescript types used in the project. + +When adding a new feature/fixing a bug, please add/update the readme. Also make +sure your code has been linted and that existing tests pass. You can run the linter +using `pnpm lint`, the tests using `pnpm test` and try to automatically fix most lint +issues using `pnpm lint --fix`. + +You can run the CLI tool using `pnpm develop`, which will re-run the CLI everytime you +save changes made to the code. + +Once you have made changes to the code, you will want to +[`commit`](https://github.com/git-guides/git-commit) (basically, Git's version +of save) the changes. To commit the changes you have made locally: + +```sh +> git add this/folder that/file +> git commit --message 'commit-message' +``` + +While writing the `commit-message`, try to follow the below guidelines: + +1. Prefix the message with `type:`, where `type` is one of the following + dependending on what the commit does: + - `fix`: Introduces a bug fix. + - `feat`: Adds a new feature. + - `test`: Any change related to tests. + - `perf`: Any performance related change. + - `build`: For changes related to the build process. + - `ci`: For all changes to the CI files. + - `refc`: Any refactoring work. + - `docs`: Any documentation related changes. +2. Keep the first line brief, and less than 60 characters. +3. Try describing the change in detail in a new paragraph (double newline after + the first line). + +## Contributing Changes + +Once you have committed your changes, you will want to +[`push`](https://github.com/git-guides/git-push) (basically, publish your +changes to GitHub) your commits. To push your changes to your fork: + +```sh +> git push -u origin branch-name +``` + +If there are changes made to the `main` branch of the +`vercel/serve` repository, you may wish to +[`rebase`](https://docs.github.com/en/get-started/using-git/about-git-rebase) +your branch to include those changes. To rebase, or include the changes from the +`main` branch of the `vercel/serve` repository: + +``` +> git fetch upstream main +> git rebase upstream/main +``` + +This will automatically add the changes from `main` branch of the +`vercel/serve` repository to the current branch. If you encounter +any merge conflicts, follow +[this guide](https://docs.github.com/en/get-started/using-git/resolving-merge-conflicts-after-a-git-rebase) +to resolve them. + +Once you have pushed your changes to your fork, follow +[these instructions](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) +to open a +[`pull request`](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests): + +Once you have submitted a pull request, the maintainers of the repository will +review your pull requests. Whenever a maintainer reviews a pull request they may +request changes. These may be small, such as fixing a typo, or may involve +substantive changes. Such requests are intended to be helpful, but at times may +come across as abrupt or unhelpful, especially if they do not include concrete +suggestions on how to change them. Try not to be discouraged. If you feel that a +review is unfair, say so or seek the input of another project contributor. Often +such comments are the result of a reviewer having taken insufficient time to +review and are not ill-intended. Such difficulties can often be resolved with a +bit of patience. That said, reviewers should be expected to provide helpful +feedback. + +In order to land, a pull request needs to be reviewed and approved by at least +one maintainer and pass CI. After that, if there are no objections from other +contributors, the pull request can be merged. + +#### Congratulations and thanks for your contribution! diff --git a/license.md b/license.md new file mode 100644 index 00000000..ecdc423f --- /dev/null +++ b/license.md @@ -0,0 +1,20 @@ +# The MIT License (MIT) + +Copyright (c) 2022 Vercel, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/media/banner.png b/media/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..ecafc1d95ade30426329942d851555d38935afde GIT binary patch literal 36608 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�Bl<~_8{%|9ZyDvTlNkP~ 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 literal 0 HcmV?d00001 diff --git a/media/listing-ui.png b/media/listing-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..b9628e495a60639f63c11955f6e84b594d051b07 GIT binary patch literal 296544 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 literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 0f018147..00000000 --- a/package-lock.json +++ /dev/null @@ -1,1565 +0,0 @@ -{ - "name": "serve", - "version": "13.0.4", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "serve", - "version": "13.0.3", - "license": "MIT", - "dependencies": { - "@zeit/schemas": "2.6.0", - "ajv": "6.12.6", - "arg": "2.0.0", - "boxen": "5.1.2", - "chalk": "2.4.1", - "clipboardy": "2.3.0", - "compression": "1.7.3", - "serve-handler": "6.1.3", - "update-check": "1.5.2" - }, - "bin": { - "serve": "bin/serve.js" - } - }, - "node_modules/@zeit/schemas": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", - "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==" - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/arg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arg/-/arg-2.0.0.tgz", - "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/boxen/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/boxen/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/boxen/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", - "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", - "dependencies": { - "arch": "^2.1.1", - "execa": "^1.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", - "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.14", - "debug": "2.6.9", - "on-headers": "~1.0.1", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", - "dependencies": { - "punycode": "^1.3.2" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/mime-db": { - "version": "1.50.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", - "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.33", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", - "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", - "dependencies": { - "mime-db": "1.50.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "node_modules/range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "dependencies": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dependencies": { - "rc": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/serve-handler": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", - "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", - "dependencies": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", - "mime-types": "2.1.18", - "minimatch": "3.0.4", - "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", - "range-parser": "1.2.0" - } - }, - "node_modules/serve-handler/node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-handler/node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-check": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", - "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", - "dependencies": { - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } - }, - "dependencies": { - "@zeit/schemas": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", - "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "requires": { - "string-width": "^4.1.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==" - }, - "arg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arg/-/arg-2.0.0.tgz", - "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "clipboardy": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", - "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", - "requires": { - "arch": "^2.1.1", - "execa": "^1.0.0", - "is-wsl": "^2.1.1" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", - "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.14", - "debug": "2.6.9", - "on-headers": "~1.0.1", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", - "requires": { - "punycode": "^1.3.2" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "mime-db": { - "version": "1.50.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", - "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" - }, - "mime-types": { - "version": "2.1.33", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", - "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", - "requires": { - "mime-db": "1.50.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "requires": { - "rc": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "serve-handler": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", - "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", - "requires": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", - "mime-types": "2.1.18", - "minimatch": "3.0.4", - "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", - "range-parser": "1.2.0" - }, - "dependencies": { - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "requires": { - "mime-db": "~1.33.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "update-check": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", - "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", - "requires": { - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - } - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } - } -} diff --git a/package.json b/package.json index 8f1989d1..e63b3793 100644 --- a/package.json +++ b/package.json @@ -2,32 +2,83 @@ "name": "serve", "version": "13.0.4", "description": "Static file serving and directory listing", - "scripts": { - "test": "" - }, - "files": [ - "bin" - ], - "repository": "vercel/serve", - "bin": { - "serve": "./bin/serve.js" - }, "keywords": [ "vercel", "serve", "micro", "http-server" ], + "repository": "vercel/serve", "license": "MIT", + "type": "module", + "bin": { + "serve": "./build/main.js" + }, + "files": [ + "build/" + ], + "engines": { + "node": ">= 14" + }, + "scripts": { + "develop": "tsx watch ./source/main.ts", + "start": "node ./build/main.js", + "compile": "tsup ./source/main.ts", + "test:tsc": "tsc --project tsconfig.json", + "test": "pnpm test:tsc", + "lint:code": "eslint --max-warnings 0 source/**/*.ts", + "lint:style": "prettier --check --ignore-path .gitignore .", + "lint": "pnpm lint:code && pnpm lint:style", + "format": "prettier --write --ignore-path .gitignore .", + "prepare": "husky install config/husky && pnpm compile" + }, "dependencies": { - "@zeit/schemas": "2.6.0", - "ajv": "6.12.6", - "arg": "2.0.0", - "boxen": "5.1.2", - "chalk": "2.4.1", - "clipboardy": "2.3.0", - "compression": "1.7.3", + "@zeit/schemas": "2.21.0", + "ajv": "8.11.0", + "arg": "5.0.2", + "boxen": "7.0.0", + "chalk": "5.0.1", + "clipboardy": "3.0.0", + "compression": "1.7.4", + "is-port-reachable": "4.0.0", "serve-handler": "6.1.3", - "update-check": "1.5.2" + "update-check": "1.5.4" + }, + "devDependencies": { + "@types/compression": "1.7.2", + "@types/serve-handler": "6.1.1", + "@vercel/style-guide": "3.0.0", + "eslint": "8.19.0", + "husky": "8.0.1", + "lint-staged": "13.0.3", + "prettier": "2.7.1", + "tsup": "6.1.3", + "tsx": "3.7.1", + "typescript": "4.6.4" + }, + "tsup": { + "target": "esnext", + "format": [ + "esm" + ], + "outDir": "./build/" + }, + "prettier": "@vercel/style-guide/prettier", + "eslintConfig": { + "extends": [ + "./node_modules/@vercel/style-guide/eslint/node.js", + "./node_modules/@vercel/style-guide/eslint/typescript.js" + ], + "parserOptions": { + "project": "tsconfig.json" + } + }, + "lint-staged": { + "*": [ + "prettier --ignore-unknown --write" + ], + "source/**/*.ts": [ + "eslint --max-warnings 0 --fix" + ] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..829a873a --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,4715 @@ +lockfileVersion: 5.4 + +specifiers: + '@types/compression': 1.7.2 + '@types/serve-handler': 6.1.1 + '@vercel/style-guide': 3.0.0 + '@zeit/schemas': 2.21.0 + ajv: 8.11.0 + arg: 5.0.2 + boxen: 7.0.0 + chalk: 5.0.1 + clipboardy: 3.0.0 + compression: 1.7.4 + eslint: 8.19.0 + husky: 8.0.1 + is-port-reachable: 4.0.0 + lint-staged: 13.0.3 + prettier: 2.7.1 + serve-handler: 6.1.3 + tsup: 6.1.3 + tsx: 3.7.1 + typescript: 4.6.4 + update-check: 1.5.4 + +dependencies: + '@zeit/schemas': 2.21.0 + ajv: 8.11.0 + arg: 5.0.2 + boxen: 7.0.0 + chalk: 5.0.1 + clipboardy: 3.0.0 + compression: 1.7.4 + is-port-reachable: 4.0.0 + serve-handler: 6.1.3 + update-check: 1.5.4 + +devDependencies: + '@types/compression': 1.7.2 + '@types/serve-handler': 6.1.1 + '@vercel/style-guide': 3.0.0_rkmuuqx4yqfzhkhjmek6w3w2ju + eslint: 8.19.0 + husky: 8.0.1 + lint-staged: 13.0.3 + prettier: 2.7.1 + tsup: 6.1.3_typescript@4.6.4 + tsx: 3.7.1 + typescript: 4.6.4 + +packages: + /@babel/code-frame/7.18.6: + resolution: + { + integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/eslint-parser/7.17.0_eslint@8.19.0: + resolution: + { + integrity: sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==, + } + engines: { node: ^10.13.0 || ^12.13.0 || >=14.0.0 } + peerDependencies: + '@babel/core': '>=7.11.0' + eslint: ^7.5.0 || ^8.0.0 + dependencies: + eslint: 8.19.0 + eslint-scope: 5.1.1 + eslint-visitor-keys: 2.1.0 + semver: 6.3.0 + dev: true + + /@babel/helper-validator-identifier/7.18.6: + resolution: + { + integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==, + } + engines: { node: '>=6.9.0' } + dev: true + + /@babel/highlight/7.18.6: + resolution: + { + integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, + } + engines: { node: '>=6.9.0' } + dependencies: + '@babel/helper-validator-identifier': 7.18.6 + chalk: 2.4.1 + js-tokens: 4.0.0 + dev: true + + /@babel/runtime-corejs3/7.18.6: + resolution: + { + integrity: sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==, + } + engines: { node: '>=6.9.0' } + dependencies: + core-js-pure: 3.23.3 + regenerator-runtime: 0.13.9 + dev: true + + /@babel/runtime/7.18.6: + resolution: + { + integrity: sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==, + } + engines: { node: '>=6.9.0' } + dependencies: + regenerator-runtime: 0.13.9 + dev: true + + /@esbuild-kit/cjs-loader/2.3.0: + resolution: + { + integrity: sha512-KInrVt8wlKLhWy7+y4a+E+0uBJoWgdx6Xupy+rrF4MFHA/dEt22ACvvChOZSyiqtQieYPtbPkVYSjbC7mOrFVw==, + } + dependencies: + '@esbuild-kit/core-utils': 2.0.2 + get-tsconfig: 4.1.0 + dev: true + + /@esbuild-kit/core-utils/2.0.2: + resolution: + { + integrity: sha512-clNYQUsqtc36pzW5EufMsahcbLG45EaW3YDyf0DlaS0eCMkDXpxIlHwPC0rndUwG6Ytk9sMSD5k1qHbwYEC/OQ==, + } + dependencies: + esbuild: 0.14.48 + source-map-support: 0.5.21 + dev: true + + /@esbuild-kit/esm-loader/2.4.0: + resolution: + { + integrity: sha512-zS720jXh06nfg5yAzm6oob4sWN9VTP2E1SonhFgEb6zCBswa4S8fOQ/4Bksz1flDgn56NPqoTTDn2XmWRyMG9Q==, + } + dependencies: + '@esbuild-kit/core-utils': 2.0.2 + get-tsconfig: 4.1.0 + dev: true + + /@eslint/eslintrc/1.3.0: + resolution: + { + integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.3.2 + globals: 13.16.0 + ignore: 5.2.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/config-array/0.9.5: + resolution: + { + integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==, + } + engines: { node: '>=10.10.0' } + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/object-schema/1.2.1: + resolution: + { + integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, + } + dev: true + + /@microsoft/tsdoc-config/0.15.2: + resolution: + { + integrity: sha512-mK19b2wJHSdNf8znXSMYVShAHktVr/ib0Ck2FA3lsVBSEhSI/TfXT7DJQkAYgcztTuwazGcg58ZjYdk0hTCVrA==, + } + dependencies: + '@microsoft/tsdoc': 0.13.2 + ajv: 6.12.6 + jju: 1.4.0 + resolve: 1.19.0 + dev: true + + /@microsoft/tsdoc/0.13.2: + resolution: + { + integrity: sha512-WrHvO8PDL8wd8T2+zBGKrMwVL5IyzR3ryWUsl0PXgEV0QHup4mTLi0QcATefGI6Gx9Anu7vthPyyyLpY0EpiQg==, + } + dev: true + + /@next/eslint-plugin-next/12.1.2: + resolution: + { + integrity: sha512-XqYRh6d98dpv2ynoOEC3VeNv99hxRGBuanRDKASfntdAZD9Zp4n+AugmNF0qwOQEHYgG1uvZW3A4Fi6Y/+kCQw==, + } + dependencies: + glob: 7.1.7 + dev: true + + /@nodelib/fs.scandir/2.1.5: + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: '>= 8' } + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: '>= 8' } + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: '>= 8' } + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.13.0 + dev: true + + /@rushstack/eslint-patch/1.1.1: + resolution: + { + integrity: sha512-BUyKJGdDWqvWC5GEhyOiUrGNi9iJUr4CU0O2WxJL6QJhHeeA/NVBalH+FeK0r/x/W0rPymXt5s78TDS7d6lCwg==, + } + dev: true + + /@types/body-parser/1.19.2: + resolution: + { + integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==, + } + dependencies: + '@types/connect': 3.4.35 + '@types/node': 18.0.3 + dev: true + + /@types/compression/1.7.2: + resolution: + { + integrity: sha512-lwEL4M/uAGWngWFLSG87ZDr2kLrbuR8p7X+QZB1OQlT+qkHsCPDVFnHPyXf4Vyl4yDDorNY+mAhosxkCvppatg==, + } + dependencies: + '@types/express': 4.17.13 + dev: true + + /@types/connect/3.4.35: + resolution: + { + integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==, + } + dependencies: + '@types/node': 18.0.3 + dev: true + + /@types/express-serve-static-core/4.17.29: + resolution: + { + integrity: sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==, + } + dependencies: + '@types/node': 18.0.3 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 + dev: true + + /@types/express/4.17.13: + resolution: + { + integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==, + } + dependencies: + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.29 + '@types/qs': 6.9.7 + '@types/serve-static': 1.13.10 + dev: true + + /@types/json-schema/7.0.11: + resolution: + { + integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, + } + dev: true + + /@types/json5/0.0.29: + resolution: + { + integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, + } + dev: true + + /@types/mime/1.3.2: + resolution: + { + integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==, + } + dev: true + + /@types/node/18.0.3: + resolution: + { + integrity: sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==, + } + dev: true + + /@types/normalize-package-data/2.4.1: + resolution: + { + integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==, + } + dev: true + + /@types/qs/6.9.7: + resolution: + { + integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==, + } + dev: true + + /@types/range-parser/1.2.4: + resolution: + { + integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==, + } + dev: true + + /@types/serve-handler/6.1.1: + resolution: + { + integrity: sha512-bIwSmD+OV8w0t2e7EWsuQYlGoS1o5aEdVktgkXaa43Zm0qVWi21xaSRb3DQA1UXD+DJ5bRq1Rgu14ZczB+CjIQ==, + } + dependencies: + '@types/node': 18.0.3 + dev: true + + /@types/serve-static/1.13.10: + resolution: + { + integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==, + } + dependencies: + '@types/mime': 1.3.2 + '@types/node': 18.0.3 + dev: true + + /@typescript-eslint/eslint-plugin/5.17.0_g6t5zrzuc64jpkxaqet5jodqtm: + resolution: + { + integrity: sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.17.0_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/scope-manager': 5.17.0 + '@typescript-eslint/type-utils': 5.17.0_g4cxuhevh5o54harssx6h7xjim + '@typescript-eslint/utils': 5.17.0_g4cxuhevh5o54harssx6h7xjim + debug: 4.3.4 + eslint: 8.19.0 + functional-red-black-tree: 1.0.1 + ignore: 5.2.0 + regexpp: 3.2.0 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser/5.17.0_g4cxuhevh5o54harssx6h7xjim: + resolution: + { + integrity: sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.17.0 + '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.4 + debug: 4.3.4 + eslint: 8.19.0 + typescript: 4.6.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/5.17.0: + resolution: + { + integrity: sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/visitor-keys': 5.17.0 + dev: true + + /@typescript-eslint/scope-manager/5.30.5: + resolution: + { + integrity: sha512-NJ6F+YHHFT/30isRe2UTmIGGAiXKckCyMnIV58cE3JkHmaD6e5zyEYm5hBDv0Wbin+IC0T1FWJpD3YqHUG/Ydg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + '@typescript-eslint/types': 5.30.5 + '@typescript-eslint/visitor-keys': 5.30.5 + dev: true + + /@typescript-eslint/type-utils/5.17.0_g4cxuhevh5o54harssx6h7xjim: + resolution: + { + integrity: sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/utils': 5.17.0_g4cxuhevh5o54harssx6h7xjim + debug: 4.3.4 + eslint: 8.19.0 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types/5.17.0: + resolution: + { + integrity: sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dev: true + + /@typescript-eslint/types/5.30.5: + resolution: + { + integrity: sha512-kZ80w/M2AvsbRvOr3PjaNh6qEW1LFqs2pLdo2s5R38B2HYXG8Z0PP48/4+j1QHJFL3ssHIbJ4odPRS8PlHrFfw==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dev: true + + /@typescript-eslint/typescript-estree/5.17.0_typescript@4.6.4: + resolution: + { + integrity: sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/visitor-keys': 5.17.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/typescript-estree/5.30.5_typescript@4.6.4: + resolution: + { + integrity: sha512-qGTc7QZC801kbYjAr4AgdOfnokpwStqyhSbiQvqGBLixniAKyH+ib2qXIVo4P9NgGzwyfD9I0nlJN7D91E1VpQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.30.5 + '@typescript-eslint/visitor-keys': 5.30.5 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.7 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils/5.17.0_g4cxuhevh5o54harssx6h7xjim: + resolution: + { + integrity: sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@typescript-eslint/scope-manager': 5.17.0 + '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.4 + eslint: 8.19.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.19.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils/5.30.5_g4cxuhevh5o54harssx6h7xjim: + resolution: + { + integrity: sha512-o4SSUH9IkuA7AYIfAvatldovurqTAHrfzPApOZvdUq01hHojZojCFXx06D/aFpKCgWbMPRdJBWAC3sWp3itwTA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@typescript-eslint/scope-manager': 5.30.5 + '@typescript-eslint/types': 5.30.5 + '@typescript-eslint/typescript-estree': 5.30.5_typescript@4.6.4 + eslint: 8.19.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.19.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys/5.17.0: + resolution: + { + integrity: sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + '@typescript-eslint/types': 5.17.0 + eslint-visitor-keys: 3.3.0 + dev: true + + /@typescript-eslint/visitor-keys/5.30.5: + resolution: + { + integrity: sha512-D+xtGo9HUMELzWIUqcQc0p2PO4NyvTrgIOK/VnSH083+8sq0tiLozNRKuLarwHYGRuA6TVBQSuuLwJUDWd3aaA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + '@typescript-eslint/types': 5.30.5 + eslint-visitor-keys: 3.3.0 + dev: true + + /@vercel/style-guide/3.0.0_rkmuuqx4yqfzhkhjmek6w3w2ju: + resolution: + { + integrity: sha512-4hAlUpXrgty3eWOmYuVMjMxhsYaw0wFZAgFNlsrwp5LM6iPcjZXKbhEi3z3QZIJ7Mkixtg0gpYfq9oNzZgEahA==, + } + peerDependencies: + eslint: ^8.12.0 + prettier: ^2.6.1 + dependencies: + '@babel/eslint-parser': 7.17.0_eslint@8.19.0 + '@next/eslint-plugin-next': 12.1.2 + '@rushstack/eslint-patch': 1.1.1 + '@typescript-eslint/eslint-plugin': 5.17.0_g6t5zrzuc64jpkxaqet5jodqtm + '@typescript-eslint/parser': 5.17.0_g4cxuhevh5o54harssx6h7xjim + eslint: 8.19.0 + eslint-config-prettier: 8.5.0_eslint@8.19.0 + eslint-import-resolver-alias: 1.1.2_t6pef3jrjg2rjejjp7kevcbc34 + eslint-import-resolver-typescript: 2.7.0_p6hsegxeddyw6tkhd66xuhpt6y + eslint-plugin-eslint-comments: 3.2.0_eslint@8.19.0 + eslint-plugin-import: 2.25.4_2jrd2tv6zgguuh43n5i3q53svq + eslint-plugin-jest: 26.1.3_uaaox3v723ui26evhtwqay6v7e + eslint-plugin-jsx-a11y: 6.5.1_eslint@8.19.0 + eslint-plugin-react: 7.29.4_eslint@8.19.0 + eslint-plugin-react-hooks: 4.3.0_eslint@8.19.0 + eslint-plugin-testing-library: 5.1.0_g4cxuhevh5o54harssx6h7xjim + eslint-plugin-tsdoc: 0.2.14 + eslint-plugin-unicorn: 41.0.1_eslint@8.19.0 + prettier: 2.7.1 + transitivePeerDependencies: + - '@babel/core' + - eslint-import-resolver-webpack + - jest + - supports-color + - typescript + dev: true + + /@zeit/schemas/2.21.0: + resolution: + { + integrity: sha512-/J4WBTpWtQ4itN1rb3ao8LfClmVcmz2pO6oYb7Qd4h7VSqUhIbJIvrykz9Ew1WMg6eFWsKdsMHc5uPbFxqlCpg==, + } + dev: false + + /accepts/1.3.8: + resolution: + { + integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, + } + engines: { node: '>= 0.6' } + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: false + + /acorn-jsx/5.3.2_acorn@8.7.1: + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.7.1 + dev: true + + /acorn/8.7.1: + resolution: + { + integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==, + } + engines: { node: '>=0.4.0' } + hasBin: true + dev: true + + /aggregate-error/3.1.0: + resolution: + { + integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, + } + engines: { node: '>=8' } + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ajv/6.12.6: + resolution: + { + integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, + } + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv/8.11.0: + resolution: + { + integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==, + } + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: false + + /ansi-align/3.0.1: + resolution: + { + integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==, + } + dependencies: + string-width: 4.2.3 + dev: false + + /ansi-escapes/4.3.2: + resolution: + { + integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, + } + engines: { node: '>=8' } + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex/5.0.1: + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: '>=8' } + + /ansi-regex/6.0.1: + resolution: + { + integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, + } + engines: { node: '>=12' } + + /ansi-styles/3.2.1: + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: '>=4' } + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: '>=8' } + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles/6.1.0: + resolution: + { + integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==, + } + engines: { node: '>=12' } + + /any-promise/1.3.0: + resolution: + { + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, + } + dev: true + + /anymatch/3.1.2: + resolution: + { + integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==, + } + engines: { node: '>= 8' } + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arch/2.2.0: + resolution: + { + integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==, + } + dev: false + + /arg/5.0.2: + resolution: + { + integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, + } + dev: false + + /argparse/2.0.1: + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } + dev: true + + /aria-query/4.2.2: + resolution: + { + integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==, + } + engines: { node: '>=6.0' } + dependencies: + '@babel/runtime': 7.18.6 + '@babel/runtime-corejs3': 7.18.6 + dev: true + + /array-includes/3.1.5: + resolution: + { + integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + get-intrinsic: 1.1.2 + is-string: 1.0.7 + dev: true + + /array-union/2.1.0: + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, + } + engines: { node: '>=8' } + dev: true + + /array.prototype.flat/1.3.0: + resolution: + { + integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap/1.3.0: + resolution: + { + integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + es-shim-unscopables: 1.0.0 + dev: true + + /ast-types-flow/0.0.7: + resolution: + { + integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==, + } + dev: true + + /astral-regex/2.0.0: + resolution: + { + integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, + } + engines: { node: '>=8' } + dev: true + + /axe-core/4.4.2: + resolution: + { + integrity: sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==, + } + engines: { node: '>=12' } + dev: true + + /axobject-query/2.2.0: + resolution: + { + integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==, + } + dev: true + + /balanced-match/1.0.2: + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } + + /binary-extensions/2.2.0: + resolution: + { + integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, + } + engines: { node: '>=8' } + dev: true + + /boxen/7.0.0: + resolution: + { + integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==, + } + engines: { node: '>=14.16' } + dependencies: + ansi-align: 3.0.1 + camelcase: 7.0.0 + chalk: 5.0.1 + cli-boxes: 3.0.0 + string-width: 5.1.2 + type-fest: 2.16.0 + widest-line: 4.0.1 + wrap-ansi: 8.0.1 + dev: false + + /brace-expansion/1.1.11: + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /braces/3.0.2: + resolution: + { + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, + } + engines: { node: '>=8' } + dependencies: + fill-range: 7.0.1 + dev: true + + /buffer-from/1.1.2: + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + } + dev: true + + /builtin-modules/3.3.0: + resolution: + { + integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, + } + engines: { node: '>=6' } + dev: true + + /bundle-require/3.0.4_esbuild@0.14.48: + resolution: + { + integrity: sha512-VXG6epB1yrLAvWVQpl92qF347/UXmncQj7J3U8kZEbdVZ1ZkQyr4hYeL/9RvcE8vVVdp53dY78Fd/3pqfRqI1A==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + peerDependencies: + esbuild: '>=0.13' + dependencies: + esbuild: 0.14.48 + load-tsconfig: 0.2.3 + dev: true + + /bytes/3.0.0: + resolution: { integrity: sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= } + engines: { node: '>= 0.8' } + dev: false + + /cac/6.7.12: + resolution: + { + integrity: sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==, + } + engines: { node: '>=8' } + dev: true + + /call-bind/1.0.2: + resolution: + { + integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, + } + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.2 + dev: true + + /callsites/3.1.0: + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: '>=6' } + dev: true + + /camelcase/7.0.0: + resolution: + { + integrity: sha512-JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ==, + } + engines: { node: '>=14.16' } + dev: false + + /chalk/2.4.1: + resolution: + { + integrity: sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==, + } + engines: { node: '>=4' } + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/4.1.2: + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + } + engines: { node: '>=10' } + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk/5.0.1: + resolution: + { + integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==, + } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + dev: false + + /chokidar/3.5.3: + resolution: + { + integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, + } + engines: { node: '>= 8.10.0' } + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /ci-info/3.3.2: + resolution: + { + integrity: sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==, + } + dev: true + + /clean-regexp/1.0.0: + resolution: + { + integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==, + } + engines: { node: '>=4' } + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /clean-stack/2.2.0: + resolution: + { + integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, + } + engines: { node: '>=6' } + dev: true + + /cli-boxes/3.0.0: + resolution: + { + integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==, + } + engines: { node: '>=10' } + dev: false + + /cli-cursor/3.1.0: + resolution: + { + integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, + } + engines: { node: '>=8' } + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-truncate/2.1.0: + resolution: + { + integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==, + } + engines: { node: '>=8' } + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + + /cli-truncate/3.1.0: + resolution: + { + integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /clipboardy/3.0.0: + resolution: + { + integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dependencies: + arch: 2.2.0 + execa: 5.1.1 + is-wsl: 2.2.0 + dev: false + + /color-convert/1.9.3: + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: '>=7.0.0' } + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } + dev: true + + /color-name/1.1.4: + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } + dev: true + + /colorette/2.0.19: + resolution: + { + integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==, + } + dev: true + + /commander/4.1.1: + resolution: + { + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, + } + engines: { node: '>= 6' } + dev: true + + /commander/9.3.0: + resolution: + { + integrity: sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==, + } + engines: { node: ^12.20.0 || >=14 } + dev: true + + /compressible/2.0.18: + resolution: + { + integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==, + } + engines: { node: '>= 0.6' } + dependencies: + mime-db: 1.52.0 + dev: false + + /compression/1.7.4: + resolution: + { + integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==, + } + engines: { node: '>= 0.8.0' } + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /concat-map/0.0.1: + resolution: { integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= } + + /content-disposition/0.5.2: + resolution: { integrity: sha1-DPaLud318r55YcOoUXjLhdunjLQ= } + engines: { node: '>= 0.6' } + dev: false + + /core-js-pure/3.23.3: + resolution: + { + integrity: sha512-XpoouuqIj4P+GWtdyV8ZO3/u4KftkeDVMfvp+308eGMhCrA3lVDSmAxO0c6GGOcmgVlaKDrgWVMo49h2ab/TDA==, + } + requiresBuild: true + dev: true + + /cross-spawn/7.0.3: + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: '>= 8' } + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /damerau-levenshtein/1.0.8: + resolution: + { + integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==, + } + dev: true + + /debug/2.6.9: + resolution: + { + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, + } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + + /debug/3.2.7: + resolution: + { + integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, + } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug/4.3.4: + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /deep-extend/0.6.0: + resolution: + { + integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, + } + engines: { node: '>=4.0.0' } + dev: false + + /deep-is/0.1.4: + resolution: + { + integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, + } + dev: true + + /define-properties/1.1.4: + resolution: + { + integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==, + } + engines: { node: '>= 0.4' } + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /dir-glob/3.0.1: + resolution: + { + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, + } + engines: { node: '>=8' } + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine/2.1.0: + resolution: + { + integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, + } + engines: { node: '>=0.10.0' } + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine/3.0.0: + resolution: + { + integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, + } + engines: { node: '>=6.0.0' } + dependencies: + esutils: 2.0.3 + dev: true + + /eastasianwidth/0.2.0: + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } + + /emoji-regex/8.0.0: + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } + + /emoji-regex/9.2.2: + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } + + /error-ex/1.3.2: + resolution: + { + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + } + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract/1.20.1: + resolution: + { + integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.1.2 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + is-callable: 1.2.4 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.2 + object-keys: 1.1.1 + object.assign: 4.1.2 + regexp.prototype.flags: 1.4.3 + string.prototype.trimend: 1.0.5 + string.prototype.trimstart: 1.0.5 + unbox-primitive: 1.0.2 + dev: true + + /es-shim-unscopables/1.0.0: + resolution: + { + integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, + } + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive/1.2.1: + resolution: + { + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, + } + engines: { node: '>= 0.4' } + dependencies: + is-callable: 1.2.4 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /esbuild-android-64/0.14.48: + resolution: + { + integrity: sha512-3aMjboap/kqwCUpGWIjsk20TtxVoKck8/4Tu19rubh7t5Ra0Yrpg30Mt1QXXlipOazrEceGeWurXKeFJgkPOUg==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64/0.14.48: + resolution: + { + integrity: sha512-vptI3K0wGALiDq+EvRuZotZrJqkYkN5282iAfcffjI5lmGG9G1ta/CIVauhY42MBXwEgDJkweiDcDMRLzBZC4g==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64/0.14.48: + resolution: + { + integrity: sha512-gGQZa4+hab2Va/Zww94YbshLuWteyKGD3+EsVon8EWTWhnHFRm5N9NbALNbwi/7hQ/hM1Zm4FuHg+k6BLsl5UA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64/0.14.48: + resolution: + { + integrity: sha512-bFjnNEXjhZT+IZ8RvRGNJthLWNHV5JkCtuOFOnjvo5pC0sk2/QVk0Qc06g2PV3J0TcU6kaPC3RN9yy9w2PSLEA==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64/0.14.48: + resolution: + { + integrity: sha512-1NOlwRxmOsnPcWOGTB10JKAkYSb2nue0oM1AfHWunW/mv3wERfJmnYlGzL3UAOIUXZqW8GeA2mv+QGwq7DToqA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64/0.14.48: + resolution: + { + integrity: sha512-gXqKdO8wabVcYtluAbikDH2jhXp+Klq5oCD5qbVyUG6tFiGhrC9oczKq3vIrrtwcxDQqK6+HDYK8Zrd4bCA9Gw==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32/0.14.48: + resolution: + { + integrity: sha512-ghGyDfS289z/LReZQUuuKq9KlTiTspxL8SITBFQFAFRA/IkIvDpnZnCAKTCjGXAmUqroMQfKJXMxyjJA69c/nQ==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64/0.14.48: + resolution: + { + integrity: sha512-vni3p/gppLMVZLghI7oMqbOZdGmLbbKR23XFARKnszCIBpEMEDxOMNIKPmMItQrmH/iJrL1z8Jt2nynY0bE1ug==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm/0.14.48: + resolution: + { + integrity: sha512-+VfSV7Akh1XUiDNXgqgY1cUP1i2vjI+BmlyXRfVz5AfV3jbpde8JTs5Q9sYgaoq5cWfuKfoZB/QkGOI+QcL1Tw==, + } + engines: { node: '>=12' } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64/0.14.48: + resolution: + { + integrity: sha512-3CFsOlpoxlKPRevEHq8aAntgYGYkE1N9yRYAcPyng/p4Wyx0tPR5SBYsxLKcgPB9mR8chHEhtWYz6EZ+H199Zw==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le/0.14.48: + resolution: + { + integrity: sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==, + } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le/0.14.48: + resolution: + { + integrity: sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==, + } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-riscv64/0.14.48: + resolution: + { + integrity: sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==, + } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.14.48: + resolution: + { + integrity: sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==, + } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.14.48: + resolution: + { + integrity: sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64/0.14.48: + resolution: + { + integrity: sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64/0.14.48: + resolution: + { + integrity: sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-32/0.14.48: + resolution: + { + integrity: sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==, + } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64/0.14.48: + resolution: + { + integrity: sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==, + } + engines: { node: '>=12' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64/0.14.48: + resolution: + { + integrity: sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==, + } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild/0.14.48: + resolution: + { + integrity: sha512-w6N1Yn5MtqK2U1/WZTX9ZqUVb8IOLZkZ5AdHkT6x3cHDMVsYWC7WPdiLmx19w3i4Rwzy5LqsEMtVihG3e4rFzA==, + } + engines: { node: '>=12' } + hasBin: true + requiresBuild: true + optionalDependencies: + esbuild-android-64: 0.14.48 + esbuild-android-arm64: 0.14.48 + esbuild-darwin-64: 0.14.48 + esbuild-darwin-arm64: 0.14.48 + esbuild-freebsd-64: 0.14.48 + esbuild-freebsd-arm64: 0.14.48 + esbuild-linux-32: 0.14.48 + esbuild-linux-64: 0.14.48 + esbuild-linux-arm: 0.14.48 + esbuild-linux-arm64: 0.14.48 + esbuild-linux-mips64le: 0.14.48 + esbuild-linux-ppc64le: 0.14.48 + esbuild-linux-riscv64: 0.14.48 + esbuild-linux-s390x: 0.14.48 + esbuild-netbsd-64: 0.14.48 + esbuild-openbsd-64: 0.14.48 + esbuild-sunos-64: 0.14.48 + esbuild-windows-32: 0.14.48 + esbuild-windows-64: 0.14.48 + esbuild-windows-arm64: 0.14.48 + dev: true + + /escape-string-regexp/1.0.5: + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: '>=0.8.0' } + dev: true + + /escape-string-regexp/4.0.0: + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: '>=10' } + dev: true + + /eslint-config-prettier/8.5.0_eslint@8.19.0: + resolution: + { + integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==, + } + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.19.0 + dev: true + + /eslint-import-resolver-alias/1.1.2_t6pef3jrjg2rjejjp7kevcbc34: + resolution: + { + integrity: sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w==, + } + engines: { node: '>= 4' } + peerDependencies: + eslint-plugin-import: '>=1.4.0' + dependencies: + eslint-plugin-import: 2.25.4_2jrd2tv6zgguuh43n5i3q53svq + dev: true + + /eslint-import-resolver-node/0.3.6: + resolution: + { + integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==, + } + dependencies: + debug: 3.2.7 + resolve: 1.22.1 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-import-resolver-typescript/2.7.0_p6hsegxeddyw6tkhd66xuhpt6y: + resolution: + { + integrity: sha512-MNHS3u5pebvROX4MjGP9coda589ZGfL1SqdxUV4kSrcclfDRWvNE2D+eljbnWVMvWDVRgT89nhscMHPKYGcObQ==, + } + engines: { node: '>=4' } + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + eslint: 8.19.0 + eslint-plugin-import: 2.25.4_2jrd2tv6zgguuh43n5i3q53svq + glob: 7.2.3 + is-glob: 4.0.3 + resolve: 1.22.1 + tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils/2.7.3_xe6opc42dcdurrfqfbzzc3a6si: + resolution: + { + integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==, + } + engines: { node: '>=4' } + peerDependencies: + '@typescript-eslint/parser': '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.17.0_g4cxuhevh5o54harssx6h7xjim + debug: 3.2.7 + eslint-import-resolver-node: 0.3.6 + eslint-import-resolver-typescript: 2.7.0_p6hsegxeddyw6tkhd66xuhpt6y + find-up: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-eslint-comments/3.2.0_eslint@8.19.0: + resolution: + { + integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==, + } + engines: { node: '>=6.5.0' } + peerDependencies: + eslint: '>=4.19.1' + dependencies: + escape-string-regexp: 1.0.5 + eslint: 8.19.0 + ignore: 5.2.0 + dev: true + + /eslint-plugin-import/2.25.4_2jrd2tv6zgguuh43n5i3q53svq: + resolution: + { + integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==, + } + engines: { node: '>=4' } + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.17.0_g4cxuhevh5o54harssx6h7xjim + array-includes: 3.1.5 + array.prototype.flat: 1.3.0 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 8.19.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.3_xe6opc42dcdurrfqfbzzc3a6si + has: 1.0.3 + is-core-module: 2.9.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.5 + resolve: 1.22.1 + tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jest/26.1.3_uaaox3v723ui26evhtwqay6v7e: + resolution: + { + integrity: sha512-Pju+T7MFpo5VFhFlwrkK/9jRUu18r2iugvgyrWOnnGRaVTFFmFXp+xFJpHyqmjjLmGJPKLeEFLVTAxezkApcpQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.17.0_g6t5zrzuc64jpkxaqet5jodqtm + '@typescript-eslint/utils': 5.30.5_g4cxuhevh5o54harssx6h7xjim + eslint: 8.19.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-jsx-a11y/6.5.1_eslint@8.19.0: + resolution: + { + integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==, + } + engines: { node: '>=4.0' } + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.18.6 + aria-query: 4.2.2 + array-includes: 3.1.5 + ast-types-flow: 0.0.7 + axe-core: 4.4.2 + axobject-query: 2.2.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.19.0 + has: 1.0.3 + jsx-ast-utils: 3.3.2 + language-tags: 1.0.5 + minimatch: 3.1.2 + dev: true + + /eslint-plugin-react-hooks/4.3.0_eslint@8.19.0: + resolution: + { + integrity: sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==, + } + engines: { node: '>=10' } + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.19.0 + dev: true + + /eslint-plugin-react/7.29.4_eslint@8.19.0: + resolution: + { + integrity: sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==, + } + engines: { node: '>=4' } + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.5 + array.prototype.flatmap: 1.3.0 + doctrine: 2.1.0 + eslint: 8.19.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.2 + minimatch: 3.1.2 + object.entries: 1.1.5 + object.fromentries: 2.0.5 + object.hasown: 1.1.1 + object.values: 1.1.5 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.0 + string.prototype.matchall: 4.0.7 + dev: true + + /eslint-plugin-testing-library/5.1.0_g4cxuhevh5o54harssx6h7xjim: + resolution: + { + integrity: sha512-YSNzasJUbyhOTe14ZPygeOBvcPvcaNkwHwrj4vdf+uirr2D32JTDaKi6CP5Os2aWtOcvt4uBSPXp9h5xGoqvWQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6' } + peerDependencies: + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@typescript-eslint/utils': 5.30.5_g4cxuhevh5o54harssx6h7xjim + eslint: 8.19.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-tsdoc/0.2.14: + resolution: + { + integrity: sha512-fJ3fnZRsdIoBZgzkQjv8vAj6NeeOoFkTfgosj6mKsFjX70QV256sA/wq+y/R2+OL4L8E79VVaVWrPeZnKNe8Ng==, + } + dependencies: + '@microsoft/tsdoc': 0.13.2 + '@microsoft/tsdoc-config': 0.15.2 + dev: true + + /eslint-plugin-unicorn/41.0.1_eslint@8.19.0: + resolution: + { + integrity: sha512-gF5vo2dIj0YdNMQ/IMegiBkQdQ22GBFFVpdkJP+0og3w7XD4ypea0xQVRv6iofkLVR2w0phAdikcnU01ybd4Ow==, + } + engines: { node: '>=12' } + peerDependencies: + eslint: '>=8.8.0' + dependencies: + '@babel/helper-validator-identifier': 7.18.6 + ci-info: 3.3.2 + clean-regexp: 1.0.0 + eslint: 8.19.0 + eslint-utils: 3.0.0_eslint@8.19.0 + esquery: 1.4.0 + indent-string: 4.0.0 + is-builtin-module: 3.1.0 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.24 + safe-regex: 2.1.1 + semver: 7.3.7 + strip-indent: 3.0.0 + dev: true + + /eslint-scope/5.1.1: + resolution: + { + integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, + } + engines: { node: '>=8.0.0' } + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope/7.1.1: + resolution: + { + integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils/3.0.0_eslint@8.19.0: + resolution: + { + integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, + } + engines: { node: ^10.0.0 || ^12.0.0 || >= 14.0.0 } + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.19.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: + { + integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, + } + engines: { node: '>=10' } + dev: true + + /eslint-visitor-keys/3.3.0: + resolution: + { + integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dev: true + + /eslint/8.19.0: + resolution: + { + integrity: sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + hasBin: true + dependencies: + '@eslint/eslintrc': 1.3.0 + '@humanwhocodes/config-array': 0.9.5 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0_eslint@8.19.0 + eslint-visitor-keys: 3.3.0 + espree: 9.3.2 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 6.0.2 + globals: 13.16.0 + ignore: 5.2.0 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree/9.3.2: + resolution: + { + integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + dependencies: + acorn: 8.7.1 + acorn-jsx: 5.3.2_acorn@8.7.1 + eslint-visitor-keys: 3.3.0 + dev: true + + /esquery/1.4.0: + resolution: + { + integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==, + } + engines: { node: '>=0.10' } + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse/4.3.0: + resolution: + { + integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, + } + engines: { node: '>=4.0' } + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse/4.3.0: + resolution: + { + integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, + } + engines: { node: '>=4.0' } + dev: true + + /estraverse/5.3.0: + resolution: + { + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, + } + engines: { node: '>=4.0' } + dev: true + + /esutils/2.0.3: + resolution: + { + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, + } + engines: { node: '>=0.10.0' } + dev: true + + /execa/5.1.1: + resolution: + { + integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, + } + engines: { node: '>=10' } + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + /execa/6.1.0: + resolution: + { + integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 3.0.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /fast-deep-equal/3.1.3: + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + } + + /fast-glob/3.2.11: + resolution: + { + integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==, + } + engines: { node: '>=8.6.0' } + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, + } + dev: true + + /fast-levenshtein/2.0.6: + resolution: + { + integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, + } + dev: true + + /fast-url-parser/1.1.3: + resolution: + { + integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==, + } + dependencies: + punycode: 1.4.1 + dev: false + + /fastq/1.13.0: + resolution: + { + integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==, + } + dependencies: + reusify: 1.0.4 + dev: true + + /file-entry-cache/6.0.1: + resolution: + { + integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + dependencies: + flat-cache: 3.0.4 + dev: true + + /fill-range/7.0.1: + resolution: + { + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, + } + engines: { node: '>=8' } + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up/2.1.0: + resolution: + { + integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==, + } + engines: { node: '>=4' } + dependencies: + locate-path: 2.0.0 + dev: true + + /find-up/4.1.0: + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, + } + engines: { node: '>=8' } + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache/3.0.4: + resolution: + { + integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, + } + engines: { node: ^10.12.0 || >=12.0.0 } + dependencies: + flatted: 3.2.6 + rimraf: 3.0.2 + dev: true + + /flatted/3.2.6: + resolution: + { + integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==, + } + dev: true + + /fs.realpath/1.0.0: + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } + dev: true + + /fsevents/2.3.2: + resolution: + { + integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: + { + integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, + } + dev: true + + /function.prototype.name/1.1.5: + resolution: + { + integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + functions-have-names: 1.2.3 + dev: true + + /functional-red-black-tree/1.0.1: + resolution: + { + integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==, + } + dev: true + + /functions-have-names/1.2.3: + resolution: + { + integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, + } + dev: true + + /get-intrinsic/1.1.2: + resolution: + { + integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==, + } + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-stream/6.0.1: + resolution: + { + integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, + } + engines: { node: '>=10' } + + /get-symbol-description/1.0.0: + resolution: + { + integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.2 + dev: true + + /get-tsconfig/4.1.0: + resolution: + { + integrity: sha512-bhshxJhpfmeQ8x4fAvDqJV2VfGp5TfHdLpmBpNZZhMoVyfIrOippBW4mayC3DT9Sxuhcyl56Efw61qL28hG4EQ==, + } + dev: true + + /glob-parent/5.1.2: + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: '>= 6' } + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent/6.0.2: + resolution: + { + integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, + } + engines: { node: '>=10.13.0' } + dependencies: + is-glob: 4.0.3 + dev: true + + /glob/7.1.6: + resolution: + { + integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==, + } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob/7.1.7: + resolution: + { + integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==, + } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob/7.2.3: + resolution: + { + integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, + } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals/13.16.0: + resolution: + { + integrity: sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==, + } + engines: { node: '>=8' } + dependencies: + type-fest: 0.20.2 + dev: true + + /globby/11.1.0: + resolution: + { + integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, + } + engines: { node: '>=10' } + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.11 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /has-bigints/1.0.2: + resolution: + { + integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, + } + dev: true + + /has-flag/3.0.0: + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: '>=4' } + dev: true + + /has-flag/4.0.0: + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: '>=8' } + dev: true + + /has-property-descriptors/1.0.0: + resolution: + { + integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, + } + dependencies: + get-intrinsic: 1.1.2 + dev: true + + /has-symbols/1.0.3: + resolution: + { + integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, + } + engines: { node: '>= 0.4' } + dev: true + + /has-tostringtag/1.0.0: + resolution: + { + integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, + } + engines: { node: '>= 0.4' } + dependencies: + has-symbols: 1.0.3 + dev: true + + /has/1.0.3: + resolution: + { + integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, + } + engines: { node: '>= 0.4.0' } + dependencies: + function-bind: 1.1.1 + dev: true + + /hosted-git-info/2.8.9: + resolution: + { + integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, + } + dev: true + + /human-signals/2.1.0: + resolution: + { + integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, + } + engines: { node: '>=10.17.0' } + + /human-signals/3.0.1: + resolution: + { + integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==, + } + engines: { node: '>=12.20.0' } + dev: true + + /husky/8.0.1: + resolution: + { + integrity: sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==, + } + engines: { node: '>=14' } + hasBin: true + dev: true + + /ignore/5.2.0: + resolution: + { + integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==, + } + engines: { node: '>= 4' } + dev: true + + /import-fresh/3.3.0: + resolution: + { + integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, + } + engines: { node: '>=6' } + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash/0.1.4: + resolution: + { + integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, + } + engines: { node: '>=0.8.19' } + dev: true + + /indent-string/4.0.0: + resolution: + { + integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, + } + engines: { node: '>=8' } + dev: true + + /inflight/1.0.6: + resolution: + { + integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, + } + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } + dev: true + + /ini/1.3.8: + resolution: + { + integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, + } + dev: false + + /internal-slot/1.0.3: + resolution: + { + integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==, + } + engines: { node: '>= 0.4' } + dependencies: + get-intrinsic: 1.1.2 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /is-arrayish/0.2.1: + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + } + dev: true + + /is-bigint/1.0.4: + resolution: + { + integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, + } + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path/2.1.0: + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: '>=8' } + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object/1.1.2: + resolution: + { + integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-builtin-module/3.1.0: + resolution: + { + integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==, + } + engines: { node: '>=6' } + dependencies: + builtin-modules: 3.3.0 + dev: true + + /is-callable/1.2.4: + resolution: + { + integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==, + } + engines: { node: '>= 0.4' } + dev: true + + /is-core-module/2.9.0: + resolution: + { + integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==, + } + dependencies: + has: 1.0.3 + dev: true + + /is-date-object/1.0.5: + resolution: + { + integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, + } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-docker/2.2.1: + resolution: + { + integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, + } + engines: { node: '>=8' } + hasBin: true + dev: false + + /is-extglob/2.1.1: + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: '>=0.10.0' } + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: '>=8' } + + /is-fullwidth-code-point/4.0.0: + resolution: + { + integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, + } + engines: { node: '>=12' } + dev: true + + /is-glob/4.0.3: + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: '>=0.10.0' } + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-negative-zero/2.0.2: + resolution: + { + integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, + } + engines: { node: '>= 0.4' } + dev: true + + /is-number-object/1.0.7: + resolution: + { + integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, + } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number/7.0.0: + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: '>=0.12.0' } + dev: true + + /is-port-reachable/4.0.0: + resolution: + { + integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dev: false + + /is-regex/1.1.4: + resolution: + { + integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-shared-array-buffer/1.0.2: + resolution: + { + integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, + } + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream/2.0.1: + resolution: + { + integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, + } + engines: { node: '>=8' } + + /is-stream/3.0.0: + resolution: + { + integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dev: true + + /is-string/1.0.7: + resolution: + { + integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, + } + engines: { node: '>= 0.4' } + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol/1.0.4: + resolution: + { + integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, + } + engines: { node: '>= 0.4' } + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-weakref/1.0.2: + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + } + dependencies: + call-bind: 1.0.2 + dev: true + + /is-wsl/2.2.0: + resolution: + { + integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, + } + engines: { node: '>=8' } + dependencies: + is-docker: 2.2.1 + dev: false + + /isexe/2.0.0: + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } + + /jju/1.4.0: + resolution: + { + integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==, + } + dev: true + + /joycon/3.1.1: + resolution: + { + integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==, + } + engines: { node: '>=10' } + dev: true + + /js-tokens/4.0.0: + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } + dev: true + + /js-yaml/4.1.0: + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + } + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: + { + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, + } + dev: true + + /json-schema-traverse/0.4.1: + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, + } + dev: true + + /json-schema-traverse/1.0.0: + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, + } + dev: false + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: + { + integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, + } + dev: true + + /json5/1.0.1: + resolution: + { + integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==, + } + hasBin: true + dependencies: + minimist: 1.2.6 + dev: true + + /jsx-ast-utils/3.3.2: + resolution: + { + integrity: sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==, + } + engines: { node: '>=4.0' } + dependencies: + array-includes: 3.1.5 + object.assign: 4.1.2 + dev: true + + /language-subtag-registry/0.3.22: + resolution: + { + integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==, + } + dev: true + + /language-tags/1.0.5: + resolution: + { + integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==, + } + dependencies: + language-subtag-registry: 0.3.22 + dev: true + + /levn/0.4.1: + resolution: + { + integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, + } + engines: { node: '>= 0.8.0' } + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lilconfig/2.0.5: + resolution: + { + integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==, + } + engines: { node: '>=10' } + dev: true + + /lines-and-columns/1.2.4: + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } + dev: true + + /lint-staged/13.0.3: + resolution: + { + integrity: sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==, + } + engines: { node: ^14.13.1 || >=16.0.0 } + hasBin: true + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.19 + commander: 9.3.0 + debug: 4.3.4 + execa: 6.1.0 + lilconfig: 2.0.5 + listr2: 4.0.5 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-inspect: 1.12.2 + pidtree: 0.6.0 + string-argv: 0.3.1 + yaml: 2.1.1 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true + + /listr2/4.0.5: + resolution: + { + integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==, + } + engines: { node: '>=12' } + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.19 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.5.5 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /load-tsconfig/0.2.3: + resolution: + { + integrity: sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dev: true + + /locate-path/2.0.0: + resolution: + { + integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==, + } + engines: { node: '>=4' } + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path/5.0.0: + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, + } + engines: { node: '>=8' } + dependencies: + p-locate: 4.1.0 + dev: true + + /lodash.merge/4.6.2: + resolution: + { + integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, + } + dev: true + + /lodash.sortby/4.7.0: + resolution: + { + integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==, + } + dev: true + + /lodash/4.17.21: + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } + dev: true + + /log-update/4.0.0: + resolution: + { + integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==, + } + engines: { node: '>=10' } + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /loose-envify/1.4.0: + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: true + + /lru-cache/6.0.0: + resolution: + { + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, + } + engines: { node: '>=10' } + dependencies: + yallist: 4.0.0 + dev: true + + /merge-stream/2.0.0: + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } + + /merge2/1.4.1: + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: '>= 8' } + dev: true + + /micromatch/4.0.5: + resolution: + { + integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, + } + engines: { node: '>=8.6' } + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db/1.33.0: + resolution: + { + integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==, + } + engines: { node: '>= 0.6' } + dev: false + + /mime-db/1.52.0: + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + } + engines: { node: '>= 0.6' } + dev: false + + /mime-types/2.1.18: + resolution: + { + integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==, + } + engines: { node: '>= 0.6' } + dependencies: + mime-db: 1.33.0 + dev: false + + /mime-types/2.1.35: + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: '>= 0.6' } + dependencies: + mime-db: 1.52.0 + dev: false + + /mimic-fn/2.1.0: + resolution: + { + integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, + } + engines: { node: '>=6' } + + /mimic-fn/4.0.0: + resolution: + { + integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, + } + engines: { node: '>=12' } + dev: true + + /min-indent/1.0.1: + resolution: + { + integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, + } + engines: { node: '>=4' } + dev: true + + /minimatch/3.0.4: + resolution: + { + integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==, + } + dependencies: + brace-expansion: 1.1.11 + dev: false + + /minimatch/3.1.2: + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist/1.2.6: + resolution: + { + integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==, + } + + /ms/2.0.0: + resolution: + { + integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, + } + + /ms/2.1.2: + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } + dev: true + + /ms/2.1.3: + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + } + dev: true + + /mz/2.7.0: + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, + } + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /natural-compare/1.4.0: + resolution: + { + integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, + } + dev: true + + /negotiator/0.6.3: + resolution: + { + integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, + } + engines: { node: '>= 0.6' } + dev: false + + /normalize-package-data/2.5.0: + resolution: + { + integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, + } + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.1 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path/3.0.0: + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: '>=0.10.0' } + dev: true + + /npm-run-path/4.0.1: + resolution: + { + integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, + } + engines: { node: '>=8' } + dependencies: + path-key: 3.1.1 + + /npm-run-path/5.1.0: + resolution: + { + integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + dependencies: + path-key: 4.0.0 + dev: true + + /object-assign/4.1.1: + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: '>=0.10.0' } + dev: true + + /object-inspect/1.12.2: + resolution: + { + integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==, + } + dev: true + + /object-keys/1.1.1: + resolution: + { + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, + } + engines: { node: '>= 0.4' } + dev: true + + /object.assign/4.1.2: + resolution: + { + integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries/1.1.5: + resolution: + { + integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + + /object.fromentries/2.0.5: + resolution: + { + integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + + /object.hasown/1.1.1: + resolution: + { + integrity: sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==, + } + dependencies: + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + + /object.values/1.1.5: + resolution: + { + integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + + /on-headers/1.0.2: + resolution: + { + integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==, + } + engines: { node: '>= 0.8' } + dev: false + + /once/1.4.0: + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime/5.1.2: + resolution: + { + integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, + } + engines: { node: '>=6' } + dependencies: + mimic-fn: 2.1.0 + + /onetime/6.0.0: + resolution: + { + integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, + } + engines: { node: '>=12' } + dependencies: + mimic-fn: 4.0.0 + dev: true + + /optionator/0.9.1: + resolution: + { + integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, + } + engines: { node: '>= 0.8.0' } + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /p-limit/1.3.0: + resolution: + { + integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==, + } + engines: { node: '>=4' } + dependencies: + p-try: 1.0.0 + dev: true + + /p-limit/2.3.0: + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, + } + engines: { node: '>=6' } + dependencies: + p-try: 2.2.0 + dev: true + + /p-locate/2.0.0: + resolution: + { + integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==, + } + engines: { node: '>=4' } + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate/4.1.0: + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, + } + engines: { node: '>=8' } + dependencies: + p-limit: 2.3.0 + dev: true + + /p-map/4.0.0: + resolution: + { + integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, + } + engines: { node: '>=10' } + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-try/1.0.0: + resolution: + { + integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==, + } + engines: { node: '>=4' } + dev: true + + /p-try/2.2.0: + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, + } + engines: { node: '>=6' } + dev: true + + /parent-module/1.0.1: + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + } + engines: { node: '>=6' } + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json/5.2.0: + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + } + engines: { node: '>=8' } + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /path-exists/3.0.0: + resolution: + { + integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==, + } + engines: { node: '>=4' } + dev: true + + /path-exists/4.0.0: + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + } + engines: { node: '>=8' } + dev: true + + /path-is-absolute/1.0.1: + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: '>=0.10.0' } + dev: true + + /path-is-inside/1.0.2: + resolution: { integrity: sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= } + dev: false + + /path-key/3.1.1: + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: '>=8' } + + /path-key/4.0.0: + resolution: + { + integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, + } + engines: { node: '>=12' } + dev: true + + /path-parse/1.0.7: + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } + dev: true + + /path-to-regexp/2.2.1: + resolution: + { + integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==, + } + dev: false + + /path-type/4.0.0: + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: '>=8' } + dev: true + + /picomatch/2.3.1: + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: '>=8.6' } + dev: true + + /pidtree/0.6.0: + resolution: + { + integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, + } + engines: { node: '>=0.10' } + hasBin: true + dev: true + + /pirates/4.0.5: + resolution: + { + integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==, + } + engines: { node: '>= 6' } + dev: true + + /pluralize/8.0.0: + resolution: + { + integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, + } + engines: { node: '>=4' } + dev: true + + /postcss-load-config/3.1.4: + resolution: + { + integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==, + } + engines: { node: '>= 10' } + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.0.5 + yaml: 1.10.2 + dev: true + + /prelude-ls/1.2.1: + resolution: + { + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, + } + engines: { node: '>= 0.8.0' } + dev: true + + /prettier/2.7.1: + resolution: + { + integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==, + } + engines: { node: '>=10.13.0' } + hasBin: true + dev: true + + /prop-types/15.8.1: + resolution: + { + integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, + } + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + + /punycode/1.4.1: + resolution: + { + integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==, + } + dev: false + + /punycode/2.1.1: + resolution: + { + integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==, + } + engines: { node: '>=6' } + + /queue-microtask/1.2.3: + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } + dev: true + + /range-parser/1.2.0: + resolution: + { + integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==, + } + engines: { node: '>= 0.6' } + dev: false + + /rc/1.2.8: + resolution: + { + integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, + } + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.6 + strip-json-comments: 2.0.1 + dev: false + + /react-is/16.13.1: + resolution: + { + integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, + } + dev: true + + /read-pkg-up/7.0.1: + resolution: + { + integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, + } + engines: { node: '>=8' } + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg/5.2.0: + resolution: + { + integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, + } + engines: { node: '>=8' } + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /readdirp/3.6.0: + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: '>=8.10.0' } + dependencies: + picomatch: 2.3.1 + dev: true + + /regenerator-runtime/0.13.9: + resolution: + { + integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==, + } + dev: true + + /regexp-tree/0.1.24: + resolution: + { + integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==, + } + hasBin: true + dev: true + + /regexp.prototype.flags/1.4.3: + resolution: + { + integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==, + } + engines: { node: '>= 0.4' } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + dev: true + + /regexpp/3.2.0: + resolution: + { + integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, + } + engines: { node: '>=8' } + dev: true + + /registry-auth-token/3.3.2: + resolution: + { + integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==, + } + dependencies: + rc: 1.2.8 + safe-buffer: 5.2.1 + dev: false + + /registry-url/3.1.0: + resolution: + { + integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==, + } + engines: { node: '>=0.10.0' } + dependencies: + rc: 1.2.8 + dev: false + + /require-from-string/2.0.2: + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + } + engines: { node: '>=0.10.0' } + dev: false + + /resolve-from/4.0.0: + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: '>=4' } + dev: true + + /resolve-from/5.0.0: + resolution: + { + integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, + } + engines: { node: '>=8' } + dev: true + + /resolve/1.19.0: + resolution: + { + integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==, + } + dependencies: + is-core-module: 2.9.0 + path-parse: 1.0.7 + dev: true + + /resolve/1.22.1: + resolution: + { + integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, + } + hasBin: true + dependencies: + is-core-module: 2.9.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve/2.0.0-next.4: + resolution: + { + integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==, + } + hasBin: true + dependencies: + is-core-module: 2.9.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor/3.1.0: + resolution: + { + integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, + } + engines: { node: '>=8' } + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /reusify/1.0.4: + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: '>=1.0.0', node: '>=0.10.0' } + dev: true + + /rfdc/1.3.0: + resolution: + { + integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==, + } + dev: true + + /rimraf/3.0.2: + resolution: + { + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, + } + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rollup/2.76.0: + resolution: + { + integrity: sha512-9jwRIEY1jOzKLj3nsY/yot41r19ITdQrhs+q3ggNWhr9TQgduHqANvPpS32RNpzGklJu3G1AJfvlZLi/6wFgWA==, + } + engines: { node: '>=10.0.0' } + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel/1.2.0: + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rxjs/7.5.5: + resolution: + { + integrity: sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==, + } + dependencies: + tslib: 2.4.0 + dev: true + + /safe-buffer/5.1.2: + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, + } + dev: false + + /safe-buffer/5.2.1: + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } + dev: false + + /safe-regex/2.1.1: + resolution: + { + integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==, + } + dependencies: + regexp-tree: 0.1.24 + dev: true + + /semver/5.7.1: + resolution: + { + integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==, + } + hasBin: true + dev: true + + /semver/6.3.0: + resolution: + { + integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==, + } + hasBin: true + dev: true + + /semver/7.3.7: + resolution: + { + integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==, + } + engines: { node: '>=10' } + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /serve-handler/6.1.3: + resolution: + { + integrity: sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==, + } + dependencies: + bytes: 3.0.0 + content-disposition: 0.5.2 + fast-url-parser: 1.1.3 + mime-types: 2.1.18 + minimatch: 3.0.4 + path-is-inside: 1.0.2 + path-to-regexp: 2.2.1 + range-parser: 1.2.0 + dev: false + + /shebang-command/2.0.0: + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: '>=8' } + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex/3.0.0: + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: '>=8' } + + /side-channel/1.0.4: + resolution: + { + integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, + } + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.2 + object-inspect: 1.12.2 + dev: true + + /signal-exit/3.0.7: + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + } + + /slash/3.0.0: + resolution: + { + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, + } + engines: { node: '>=8' } + dev: true + + /slice-ansi/3.0.0: + resolution: + { + integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==, + } + engines: { node: '>=8' } + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/4.0.0: + resolution: + { + integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, + } + engines: { node: '>=10' } + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/5.0.0: + resolution: + { + integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, + } + engines: { node: '>=12' } + dependencies: + ansi-styles: 6.1.0 + is-fullwidth-code-point: 4.0.0 + dev: true + + /source-map-support/0.5.21: + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, + } + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map/0.6.1: + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: '>=0.10.0' } + dev: true + + /source-map/0.8.0-beta.0: + resolution: + { + integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==, + } + engines: { node: '>= 8' } + dependencies: + whatwg-url: 7.1.0 + dev: true + + /spdx-correct/3.1.1: + resolution: + { + integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==, + } + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.11 + dev: true + + /spdx-exceptions/2.3.0: + resolution: + { + integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, + } + dev: true + + /spdx-expression-parse/3.0.1: + resolution: + { + integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, + } + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.11 + dev: true + + /spdx-license-ids/3.0.11: + resolution: + { + integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==, + } + dev: true + + /string-argv/0.3.1: + resolution: + { + integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==, + } + engines: { node: '>=0.6.19' } + dev: true + + /string-width/4.2.3: + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: '>=8' } + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + /string-width/5.1.2: + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: '>=12' } + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.0.1 + + /string.prototype.matchall/4.0.7: + resolution: + { + integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + get-intrinsic: 1.1.2 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + dev: true + + /string.prototype.trimend/1.0.5: + resolution: + { + integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + + /string.prototype.trimstart/1.0.5: + resolution: + { + integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.1 + dev: true + + /strip-ansi/6.0.1: + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: '>=8' } + dependencies: + ansi-regex: 5.0.1 + + /strip-ansi/7.0.1: + resolution: + { + integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==, + } + engines: { node: '>=12' } + dependencies: + ansi-regex: 6.0.1 + + /strip-bom/3.0.0: + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + } + engines: { node: '>=4' } + dev: true + + /strip-final-newline/2.0.0: + resolution: + { + integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, + } + engines: { node: '>=6' } + + /strip-final-newline/3.0.0: + resolution: + { + integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, + } + engines: { node: '>=12' } + dev: true + + /strip-indent/3.0.0: + resolution: + { + integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, + } + engines: { node: '>=8' } + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments/2.0.1: + resolution: + { + integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, + } + engines: { node: '>=0.10.0' } + dev: false + + /strip-json-comments/3.1.1: + resolution: + { + integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, + } + engines: { node: '>=8' } + dev: true + + /sucrase/3.23.0: + resolution: + { + integrity: sha512-xgC1xboStzGhCnRywlBf/DLmkC+SkdAKqrNCDsxGrzM0phR5oUxoFKiQNrsc2D8wDdAm03iLbSZqjHDddo3IzQ==, + } + engines: { node: '>=8' } + hasBin: true + dependencies: + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.5 + ts-interface-checker: 0.1.13 + dev: true + + /supports-color/5.5.0: + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: '>=4' } + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: '>=8' } + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag/1.0.0: + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: '>= 0.4' } + dev: true + + /text-table/0.2.0: + resolution: + { + integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, + } + dev: true + + /thenify-all/1.6.0: + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + } + engines: { node: '>=0.8' } + dependencies: + thenify: 3.3.1 + dev: true + + /thenify/3.3.1: + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + } + dependencies: + any-promise: 1.3.0 + dev: true + + /through/2.3.8: + resolution: + { + integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, + } + dev: true + + /to-regex-range/5.0.1: + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: '>=8.0' } + dependencies: + is-number: 7.0.0 + dev: true + + /tr46/1.0.1: + resolution: + { + integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==, + } + dependencies: + punycode: 2.1.1 + dev: true + + /tree-kill/1.2.2: + resolution: + { + integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, + } + hasBin: true + dev: true + + /ts-interface-checker/0.1.13: + resolution: + { + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, + } + dev: true + + /tsconfig-paths/3.14.1: + resolution: + { + integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==, + } + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.1 + minimist: 1.2.6 + strip-bom: 3.0.0 + dev: true + + /tslib/1.14.1: + resolution: + { + integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, + } + dev: true + + /tslib/2.4.0: + resolution: + { + integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==, + } + dev: true + + /tsup/6.1.3_typescript@4.6.4: + resolution: + { + integrity: sha512-eRpBnbfpDFng+EJNTQ90N7QAf4HAGGC7O3buHIjroKWK7D1ibk9/YnR/3cS8HsMU5T+6Oi+cnF+yU5WmCnB//Q==, + } + engines: { node: '>=14' } + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: ^4.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 3.0.4_esbuild@0.14.48 + cac: 6.7.12 + chokidar: 3.5.3 + debug: 4.3.4 + esbuild: 0.14.48 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 3.1.4 + resolve-from: 5.0.0 + rollup: 2.76.0 + source-map: 0.8.0-beta.0 + sucrase: 3.23.0 + tree-kill: 1.2.2 + typescript: 4.6.4 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + /tsutils/3.21.0_typescript@4.6.4: + resolution: + { + integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, + } + engines: { node: '>= 6' } + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.6.4 + dev: true + + /tsx/3.7.1: + resolution: + { + integrity: sha512-dwl1GBdkwVQ9zRxTmETGi+ck8pewNm2QXh+HK6jHxdHmeCjfCL+Db3b4VX/dOMDSS2hle1j5LzQoo8OpVXu6XQ==, + } + hasBin: true + dependencies: + '@esbuild-kit/cjs-loader': 2.3.0 + '@esbuild-kit/core-utils': 2.0.2 + '@esbuild-kit/esm-loader': 2.4.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /type-check/0.4.0: + resolution: + { + integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, + } + engines: { node: '>= 0.8.0' } + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest/0.20.2: + resolution: + { + integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, + } + engines: { node: '>=10' } + dev: true + + /type-fest/0.21.3: + resolution: + { + integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, + } + engines: { node: '>=10' } + dev: true + + /type-fest/0.6.0: + resolution: + { + integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, + } + engines: { node: '>=8' } + dev: true + + /type-fest/0.8.1: + resolution: + { + integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, + } + engines: { node: '>=8' } + dev: true + + /type-fest/2.16.0: + resolution: + { + integrity: sha512-qpaThT2HQkFb83gMOrdKVsfCN7LKxP26Yq+smPzY1FqoHRjqmjqHXA7n5Gkxi8efirtbeEUxzfEdePthQWCuHw==, + } + engines: { node: '>=12.20' } + dev: false + + /typescript/4.6.4: + resolution: + { + integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==, + } + engines: { node: '>=4.2.0' } + hasBin: true + dev: true + + /unbox-primitive/1.0.2: + resolution: + { + integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, + } + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /update-check/1.5.4: + resolution: + { + integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==, + } + dependencies: + registry-auth-token: 3.3.2 + registry-url: 3.1.0 + dev: false + + /uri-js/4.4.1: + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + } + dependencies: + punycode: 2.1.1 + + /v8-compile-cache/2.3.0: + resolution: + { + integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==, + } + dev: true + + /validate-npm-package-license/3.0.4: + resolution: + { + integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, + } + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /vary/1.1.2: + resolution: + { + integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, + } + engines: { node: '>= 0.8' } + dev: false + + /webidl-conversions/4.0.2: + resolution: + { + integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==, + } + dev: true + + /whatwg-url/7.1.0: + resolution: + { + integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==, + } + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /which-boxed-primitive/1.0.2: + resolution: + { + integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, + } + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which/2.0.2: + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: '>= 8' } + hasBin: true + dependencies: + isexe: 2.0.0 + + /widest-line/4.0.1: + resolution: + { + integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==, + } + engines: { node: '>=12' } + dependencies: + string-width: 5.1.2 + dev: false + + /word-wrap/1.2.3: + resolution: + { + integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, + } + engines: { node: '>=0.10.0' } + dev: true + + /wrap-ansi/6.2.0: + resolution: + { + integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, + } + engines: { node: '>=8' } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi/7.0.0: + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: '>=10' } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi/8.0.1: + resolution: + { + integrity: sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==, + } + engines: { node: '>=12' } + dependencies: + ansi-styles: 6.1.0 + string-width: 5.1.2 + strip-ansi: 7.0.1 + dev: false + + /wrappy/1.0.2: + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } + dev: true + + /yallist/4.0.0: + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } + dev: true + + /yaml/1.10.2: + resolution: + { + integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, + } + engines: { node: '>= 6' } + dev: true + + /yaml/2.1.1: + resolution: + { + integrity: sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==, + } + engines: { node: '>= 14' } + dev: true diff --git a/readme.md b/readme.md new file mode 100644 index 00000000..fd751ec4 --- /dev/null +++ b/readme.md @@ -0,0 +1,96 @@ +![Serve Logo](https://raw.githubusercontent.com/vercel/serve/main/media/banner.png) + + + +--- + +`serve` helps you serve a static site, single page application or just a static file (no matter if on your device or on the local network). It also provides a neat interface for listing the directory's contents: + +![Listing UI](https://raw.githubusercontent.com/vercel/serve/main/media/listing-ui.png) + +> Once it's time to push your site to production, we recommend using [Vercel](https://vercel.com). + +## Usage + +The quickest way to get started is to just run `npx serve` in your project's directory. + +If you prefer, you can also install the package globally (you'll need at least [Node LTS](https://github.com/nodejs/Release#release-schedule)): + +```bash +> npm install --global serve +``` + +Once that's done, you can run this command inside your project's directory... + +```bash +> serve +``` + +...or specify which folder you want to serve: + +```bash +> serve folder-name/ +``` + +Finally, run this command to see a list of all available options: + +```bash +> serve --help +``` + +Now you understand how the package works! :tada: + +## Configuration + +To customize `serve`'s behavior, create a `serve.json` file in the public folder and insert any of [these properties](https://github.com/vercel/serve-handler#options). + +## API + +The core of `serve` is [serve-handler](https://github.com/vercel/serve-handler), which can be used as middleware in existing HTTP servers: + +```js +const handler = require('serve-handler'); +const http = require('http'); + +const server = http.createServer((request, response) => { + // You pass two more arguments for config and middleware + // More details here: https://github.com/vercel/serve-handler#options + return handler(request, response); +}); + +server.listen(3000, () => { + console.log('Running at http://localhost:3000'); +}); +``` + +> **Note** +> +> You can also replace `http.createServer` with [micro](https://github.com/vercel/micro). + +## Issues and Contributing + +If you want a feature to be added, or wish to report a bug, please open an issue [here](https://github.com/vercel/serve/issues/new). + +If you wish to contribute to the project, please read the [contributing guide](contributing.md) first. + +## Credits + +This project used to be called "list" and "micro-list". But thanks to [TJ Holowaychuk](https://github.com/tj) handing us the new name, it's now called "serve" (which is much more definite). + +## Author + +Leo Lamprecht ([@notquiteleo](https://twitter.com/notquiteleo)) diff --git a/source/main.ts b/source/main.ts new file mode 100755 index 00000000..e3afb265 --- /dev/null +++ b/source/main.ts @@ -0,0 +1,172 @@ +#!/usr/bin/env node + +// source/main.ts +// The CLI for the `serve-handler` module. + +import path from 'node:path'; +import chalk from 'chalk'; +import boxen from 'boxen'; +import clipboard from 'clipboardy'; +import checkForUpdate from 'update-check'; +import manifest from '../package.json'; +import { resolve } from './utilities/promise.js'; +import { startServer } from './utilities/server.js'; +import { registerCloseListener } from './utilities/http.js'; +import { parseArguments, getHelpText } from './utilities/cli.js'; +import { loadConfiguration } from './utilities/config.js'; +import { logger } from './utilities/logger.js'; +import type { Arguments } from './types.js'; + +/** + * Checks for updates to this package. If an update is available, it brings it + * to the user's notice by printing a message to the console. + * + * @param debugMode - Whether or not we should print additional debug information. + * @returns + */ +const printUpdateNotification = async (debugMode?: boolean) => { + const [error, update] = await resolve(checkForUpdate(manifest)); + + if (error) { + const suffix = debugMode ? ':' : ' (use `--debug` to see full error)'; + logger.warn(`Checking for updates failed${suffix}`); + + if (debugMode) logger.error(error.message); + } + if (!update) return; + + logger.log( + chalk` {bgRed.white UPDATE } The latest version of \`serve\` is ${update.latest}`, + ); +}; + +// Parse the options passed by the user. +let args: Arguments; +try { + args = parseArguments(); +} catch (error: unknown) { + logger.error((error as Error).message); + process.exit(1); +} + +// Check for updates to the package unless the user sets the `NO_UPDATE_CHECK` +// variable. +if (process.env.NO_UPDATE_CHECK !== '1') + await printUpdateNotification(args['--debug']); +// If the `version` or `help` arguments are passed, print the version or the +// help text and exit. +if (args['--version']) { + logger.log(manifest.version); + process.exit(0); +} +if (args['--help']) { + logger.log(getHelpText()); + process.exit(0); +} + +// Default to listening on port 3000. +if (!args['--listen']) + args['--listen'] = [ + [process.env.PORT ? parseInt(process.env.PORT, 10) : 3000], + ]; +// Ensure that the user has passed only one directory to serve. +if (args._.length > 1) { + logger.error('Please provide one path argument at maximum'); + process.exit(1); +} + +// Warn the user about using deprecated configuration files. +if (args['--config'] === 'now.json' || args['--config'] === 'package.json') + logger.warn( + 'The config files `now.json` and `package.json` are deprecated. Please use `serve.json`.', + ); +// Parse the configuration. +const cwd = process.cwd(); +const entry = args._[0] ? path.resolve(args._[0]) : cwd; +const config = await loadConfiguration(cwd, entry, args); + +// If the user wants all the URLs rewritten to `/index.html`, make it happen. +if (args['--single']) { + const { rewrites } = config; + const existingRewrites = Array.isArray(rewrites) ? rewrites : []; + + // Ensure this is the first rewrite rule so it gets priority. + config.rewrites = [ + { + source: '**', + destination: '/index.html', + }, + ...existingRewrites, + ]; +} + +// Start the server for each endpoint passed by the user. +for (const endpoint of args['--listen']) { + // Disabling this rule as we want to start each server one by one. + // eslint-disable-next-line no-await-in-loop + const { local, network, previous } = await startServer( + endpoint, + config, + args, + ); + + const copyAddress = !args['--no-clipboard']; + + // If we are not in a TTY or Node is running in production mode, print + // a single line of text with the server address. + if (!process.stdout.isTTY || process.env.NODE_ENV === 'production') { + const suffix = local ? ` at ${local}` : ''; + logger.info(`Accepting connections${suffix}`); + + continue; + } + + // Else print a fancy box with the server address. + let message = chalk.green('Serving!'); + if (local) { + const prefix = network ? '- ' : ''; + const space = network ? ' ' : ' '; + + message += `\n\n${chalk.bold(`${prefix}Local:`)}${space}${local}`; + } + if (network) message += `\n${chalk.bold('- On Your Network:')} ${network}`; + if (previous) + message += chalk.red( + `\n\nThis port was picked because ${chalk.underline( + previous.toString(), + )} is in use.`, + ); + + // Try to copy the address to the user's clipboard too. + if (copyAddress && local) { + try { + // eslint-disable-next-line no-await-in-loop + await clipboard.write(local); + message += `\n\n${chalk.grey('Copied local address to clipboard!')}`; + } catch (error: unknown) { + logger.error(`Cannot copy to clipboard: ${(error as Error).message}`); + } + } + + logger.log( + boxen(message, { + padding: 1, + borderColor: 'green', + margin: 1, + }), + ); +} + +// Print out a message to let the user know we are shutting down the server +// when they press Ctrl+C or kill the process externally. +registerCloseListener(() => { + logger.log(); + logger.info('Gracefully shutting down. Please wait...'); + + process.on('SIGINT', () => { + logger.log(); + logger.warn('Force-closing all open sockets...'); + + process.exit(0); + }); +}); diff --git a/source/types.ts b/source/types.ts new file mode 100644 index 00000000..7ae5cefa --- /dev/null +++ b/source/types.ts @@ -0,0 +1,89 @@ +// source/types.ts +// Type definitions for the CLI. + +// An error thrown by any native Node modules. +export declare interface NodeError extends Error { + code: string; +} + +// A path to a file/remote resource. +export declare type Path = string; +// The port to bind the server on. +export declare type Port = number; +// The name of the host. +export declare type Host = string; +// The address of the server. +export declare interface ServerAddress { + local?: string; + network?: string; + previous?: number; +} + +// The endpoint the server should listen on. +export declare type ListenEndpoint = + | number + | `tcp://${Host}:${Port}` + | `unix:${Path}` + | `pipe:\\\\.\\pipe\\${Host}`; + +// The parsed endpoints. +export declare type ParsedEndpoint = [Port] | [Host] | [Port, Host]; + +// An entry for URL rewrites. +export declare interface Rewrite { + source: string; + destination: string; +} + +// An entry for redirecting a URL. +export declare type Redirect = Rewrite & { + type: number; +}; + +// An entry to send headers for. +export declare interface Header { + source: string; + headers: { + key: string; + value: string; + }[]; +} + +// The configuration for the CLI. +export declare interface Configuration { + public: Path; + cleanUrls: boolean | Path[]; + rewrites: Rewrite[]; + redirects: Redirect[]; + headers: Header[]; + directoryListing: boolean | Path[]; + unlisted: Path[]; + trailingSlash: boolean; + renderSingle: boolean; + symlinks: boolean; + etag: boolean; +} + +// The options you can pass to the CLI. +export declare interface Options { + '--help': boolean; + '--version': boolean; + '--listen': ParsedEndpoint[]; + '--single': boolean; + '--debug': boolean; + '--config': Path; + '--no-clipboard': boolean; + '--no-compression': boolean; + '--no-etag': boolean; + '--symlinks': boolean; + '--cors': boolean; + '--no-port-switching': boolean; + '--ssl-cert': Path; + '--ssl-key': Path; + '--ssl-pass': string; +} + +// The arguments passed to the CLI (the options + the positional arguments) +export declare type Arguments = Partial & { + _: string[]; +}; diff --git a/source/utilities/cli.ts b/source/utilities/cli.ts new file mode 100644 index 00000000..f32aa8e0 --- /dev/null +++ b/source/utilities/cli.ts @@ -0,0 +1,127 @@ +// source/utilities/cli.ts +// CLI-related utility functions. + +import chalk from 'chalk'; +import parseArgv from 'arg'; +import { parseEndpoint } from './http.js'; +import type { Arguments } from '../types.js'; + +// The options the CLI accepts, and how to parse them. +const options = { + '--help': Boolean, + '--version': Boolean, + '--listen': [parseEndpoint] as [typeof parseEndpoint], + '--single': Boolean, + '--debug': Boolean, + '--config': String, + '--no-clipboard': Boolean, + '--no-compression': Boolean, + '--no-etag': Boolean, + '--symlinks': Boolean, + '--cors': Boolean, + '--no-port-switching': Boolean, + '--ssl-cert': String, + '--ssl-key': String, + '--ssl-pass': String, + // A list of aliases for the above options. + '-h': '--help', + '-v': '--version', + '-l': '--listen', + '-s': '--single', + '-d': '--debug', + '-c': '--config', + '-n': '--no-clipboard', + '-u': '--no-compression', + '-S': '--symlinks', + '-C': '--cors', + + // The `-p` option is deprecated and is kept only for backwards-compatibility. + '-p': '--listen', +}; + +// The help text for the CLI. +const helpText = chalk` + {bold.cyan serve} - Static file serving and directory listing + + {bold USAGE} + + {bold $} {cyan serve} --help + {bold $} {cyan serve} --version + {bold $} {cyan serve} folder_name + {bold $} {cyan serve} [-l {underline listen_uri} [-l ...]] [{underline directory}] + + By default, {cyan serve} will listen on {bold 0.0.0.0:3000} and serve the + current working directory on that address. + + Specifying a single {bold --listen} argument will overwrite the default, not supplement it. + + {bold OPTIONS} + + --help Shows this help message + + -v, --version Displays the current version of serve + + -l, --listen {underline listen_uri} Specify a URI endpoint on which to listen (see below) - + more than one may be specified to listen in multiple places + + -p Specify custom port + + -d, --debug Show debugging information + + -s, --single Rewrite all not-found requests to \`index.html\` + + -c, --config Specify custom path to \`serve.json\` + + -C, --cors Enable CORS, sets \`Access-Control-Allow-Origin\` to \`*\` + + -n, --no-clipboard Do not copy the local address to the clipboard + + -u, --no-compression Do not compress files + + --no-etag Send \`Last-Modified\` header instead of \`ETag\` + + -S, --symlinks Resolve symlinks instead of showing 404 errors + + --ssl-cert Optional path to an SSL/TLS certificate to serve with HTTPS + + --ssl-key Optional path to the SSL/TLS certificate\'s private key + + --ssl-pass Optional path to the SSL/TLS certificate\'s passphrase + + --no-port-switching Do not open a port other than the one specified when it\'s taken. + + {bold ENDPOINTS} + + Listen endpoints (specified by the {bold --listen} or {bold -l} options above) instruct {cyan serve} + to listen on one or more interfaces/ports, UNIX domain sockets, or Windows named pipes. + + For TCP ports on hostname "localhost": + + {bold $} {cyan serve} -l {underline 1234} + + For TCP (traditional host/port) endpoints: + + {bold $} {cyan serve} -l tcp://{underline hostname}:{underline 1234} + + For UNIX domain socket endpoints: + + {bold $} {cyan serve} -l unix:{underline /path/to/socket.sock} + + For Windows named pipe endpoints: + + {bold $} {cyan serve} -l pipe:\\\\.\\pipe\\{underline PipeName} +`; + +/** + * Parses the program's `process.argv` and returns the options and arguments. + * + * @returns The parsed options and arguments. + */ +export const parseArguments = (): Arguments => parseArgv(options); + +/** + * Returns the help text. + * + * @returns The help text shown when the `--help` option is used. + */ +export const getHelpText = (): string => helpText; diff --git a/source/utilities/config.ts b/source/utilities/config.ts new file mode 100644 index 00000000..75cd4a4c --- /dev/null +++ b/source/utilities/config.ts @@ -0,0 +1,134 @@ +// source/utilities/config.ts +// Parse and return the configuration for the CLI. + +import { + resolve as resolvePath, + relative as resolveRelativePath, +} from 'node:path'; +import { readFile } from 'node:fs/promises'; +import Ajv from 'ajv'; +// @ts-expect-error No type definitions. +import schema from '@zeit/schemas/deployment/config-static.js'; +import { resolve } from './promise.js'; +import type { ErrorObject } from 'ajv'; +import type { Configuration, Options, NodeError } from '../types.js'; + +/** + * Parses and returns a configuration object from the designated locations. + * + * @param cwd - The current working directory. + * @param entry - The directory to serve. + * @param args - The arguments passed to the CLI. + * + * @returns The parsed configuration. + */ +export const loadConfiguration = async ( + cwd: string, + entry: string, + args: Partial, +): Promise => { + const files = ['serve.json', 'now.json', 'package.json']; + if (args['--config']) files.unshift(args['--config']); + + const config: Partial = {}; + for (const file of files) { + // Resolve the path to the configuration file relative to the directory + // with the content in it. + const location = resolvePath(entry, file); + + // Disabling the lint rule as we don't want to read all the files at once; + // if we can retrieve the configuration from the first file itself, we + // shouldn't waste time and resources fetching the other files too. + // eslint-disable-next-line no-await-in-loop + const [error, rawContents] = await resolve( + readFile(location, 'utf8'), + ); + if (error) { + if (error.code === 'ENOENT' && file !== args['--config']) continue; + else + throw new Error( + `Could not read configuration from file ${location}: ${error.message}`, + ); + } + + // The configuration can come from three files in different forms: + // - now.json: `/now/static` + // - package.json: `/static` + // - serve.json: `/` + type ServeConfigurationFile = Partial; + interface ManifestConfigurationFile { + static?: Partial; + } + interface NowConfigurationFile { + now: { static?: Partial }; + } + type ParseableConfiguration = + | ServeConfigurationFile + | ManifestConfigurationFile + | NowConfigurationFile + | undefined; + + // Parse the JSON in the file. If the parsed JSON is not an object, or the + // file does not contain valid JSON, throw an error. + let parsedJson: ParseableConfiguration; + try { + parsedJson = JSON.parse(rawContents) as ParseableConfiguration; + if (typeof parsedJson !== 'object') + throw new Error('configuration is not an object'); + } catch (parserError: unknown) { + throw new Error( + `Could not parse ${location} as JSON: ${ + (parserError as Error).message + }`, + ); + } + + // Check if any of these files have a serve specific section. + if (file === 'now.json') { + parsedJson = parsedJson as NowConfigurationFile; + parsedJson = parsedJson.now.static; + } else if (file === 'package.json') { + parsedJson = parsedJson as ManifestConfigurationFile; + parsedJson = parsedJson.static; + } + if (!parsedJson) continue; + + // Once we have found a valid configuration, assign it and stop looking + // through more configuration files. + Object.assign(config, parsedJson); + break; + } + + // Make sure the directory with the content is relative to the entry path + // provided by the user. + if (entry) { + const staticDirectory = config.public; + config.public = resolveRelativePath( + cwd, + staticDirectory ? resolvePath(entry, staticDirectory) : entry, + ); + } + + // If the configuration isn't empty, validate it against the AJV schema. + if (Object.keys(config).length !== 0) { + const ajv = new Ajv({ allowUnionTypes: true }); + const validate = ajv.compile(schema as object); + + if (!validate(config) && validate.errors) { + const defaultMessage = 'The configuration you provided is invalid:'; + const error = validate.errors[0] as ErrorObject; + + throw new Error( + `${defaultMessage}\n${error.message ?? ''}\n${JSON.stringify( + error.params, + )}`, + ); + } + } + + // Configure defaults based on the options the user has passed. + config.etag = !args['--no-etag']; + config.symlinks = args['--symlinks'] || config.symlinks; + + return config as Configuration; +}; diff --git a/source/utilities/http.ts b/source/utilities/http.ts new file mode 100644 index 00000000..e8019440 --- /dev/null +++ b/source/utilities/http.ts @@ -0,0 +1,89 @@ +// source/utilities/http.ts +// Helper functions for the server. + +import { parse } from 'node:url'; +import { networkInterfaces as getNetworkInterfaces } from 'node:os'; +import type { ParsedEndpoint } from '../types.js'; + +const networkInterfaces = getNetworkInterfaces(); + +/** + * Parse and return the endpoints from the given string. + * + * @param uriOrPort - The endpoint to listen on. + * @returns A list of parsed endpoints. + */ +export const parseEndpoint = (uriOrPort: string): ParsedEndpoint => { + // If the endpoint is a port number, return it as is. + if (!isNaN(Number(uriOrPort))) return [uriOrPort]; + + // Cast it as a string, since we know for sure it is not a number. + const endpoint = uriOrPort; + + // We cannot use `new URL` here, otherwise it will not + // parse the host properly and it would drop support for IPv6. + const url = parse(endpoint); + + switch (url.protocol) { + case 'pipe:': { + const pipe = endpoint.replace(/^pipe:/, ''); + if (!pipe.startsWith('\\\\.\\')) + throw new Error(`Invalid Windows named pipe endpoint: ${endpoint}`); + + return [pipe]; + } + case 'unix:': + if (!url.pathname) + throw new Error(`Invalid UNIX domain socket endpoint: ${endpoint}`); + + return [url.pathname]; + case 'tcp:': + url.port = url.port ?? '3000'; + url.hostname = url.hostname ?? 'localhost'; + + return [parseInt(url.port, 10), url.hostname]; + default: + throw new Error( + `Unknown --listen endpoint scheme (protocol): ${ + url.protocol ?? 'undefined' + }`, + ); + } +}; + +/** + * Registers a function that runs on server shutdown. + * + * @param fn - The function to run on server shutdown + */ +export const registerCloseListener = (fn: () => void) => { + let run = false; + + const wrapper = () => { + if (!run) { + run = true; + fn(); + } + }; + + process.on('SIGINT', wrapper); + process.on('SIGTERM', wrapper); + process.on('exit', wrapper); +}; + +/** + * Returns the IP address of the host. + * + * @returns The address of the host. + */ +export const getNetworkAddress = () => { + for (const interfaceDetails of Object.values(networkInterfaces)) { + if (!interfaceDetails) continue; + + for (const details of interfaceDetails) { + const { address, family, internal } = details; + + if (family === 'IPv4' && !internal) return address; + } + } +}; diff --git a/source/utilities/logger.ts b/source/utilities/logger.ts new file mode 100644 index 00000000..dec9114c --- /dev/null +++ b/source/utilities/logger.ts @@ -0,0 +1,16 @@ +// source/utilities/logger.ts +// A simple colorized console logger. + +/* eslint no-console: 0 */ + +import chalk from 'chalk'; + +const info = (...message: string[]) => + console.error(chalk.magenta('INFO:', ...message)); +const warn = (...message: string[]) => + console.error(chalk.yellow('WARNING:', ...message)); +const error = (...message: string[]) => + console.error(chalk.red('ERROR:', ...message)); +const log = console.log; + +export const logger = { info, warn, error, log }; diff --git a/source/utilities/promise.ts b/source/utilities/promise.ts new file mode 100644 index 00000000..12645175 --- /dev/null +++ b/source/utilities/promise.ts @@ -0,0 +1,30 @@ +// source/utilities/promise.ts +// Exports Promise-related utilities. + +/** + * Waits for the passed promise to resolve, then returns the data and error + * in an array, similar to Go. + * + * For example: + * + * ``` + * const [error, data] = await resolve(dance()) + * if (error) console.error(error) + * else console.log(data) + * ``` + * + * @param promise - The promise to resolve. + * @returns An array containing the error as the first element, and the resolved + * data as the second element. + */ +export const resolve = ( + promise: Promise, +): Promise<[E, undefined] | [undefined, T]> => + promise + .then<[undefined, T]>((data) => [undefined, data]) + .catch<[E, undefined]>((error) => [error, undefined]); + +/** + * Promisifies the passed function. + */ +export { promisify } from 'node:util'; diff --git a/source/utilities/server.ts b/source/utilities/server.ts new file mode 100644 index 00000000..360389c1 --- /dev/null +++ b/source/utilities/server.ts @@ -0,0 +1,158 @@ +// source/utilities/server.ts +// Run the server with the given configuration. + +import http from 'node:http'; +import https from 'node:https'; +import { readFile } from 'node:fs/promises'; +import handler from 'serve-handler'; +import compression from 'compression'; +import isPortReachable from 'is-port-reachable'; +import { getNetworkAddress, registerCloseListener } from './http.js'; +import { promisify } from './promise.js'; +import type { IncomingMessage, ServerResponse } from 'node:http'; +import type { AddressInfo } from 'node:net'; +import type { + Configuration, + Options, + ParsedEndpoint, + Port, + ServerAddress, +} from '../types.js'; + +const compress = promisify(compression()); + +/** + * Starts the server and makes it listen on the given endpoint. + * + * @param endpoint - The endpoint to listen on. + * @param config - The configuration for the `serve-handler` middleware. + * @param args - The arguments passed to the CLI. + * @returns The address of the server. + */ +export const startServer = async ( + endpoint: ParsedEndpoint, + config: Partial, + args: Partial, + previous?: Port, +): Promise => { + // Define the request handler for the server. + const serverHandler = ( + request: IncomingMessage, + response: ServerResponse, + ): void => { + // We can't return a promise in a HTTP request handler, so we run our code + // inside an async function instead. + const run = async () => { + type ExpressRequest = Parameters[0]; + type ExpressResponse = Parameters[1]; + + if (args['--cors']) + response.setHeader('Access-Control-Allow-Origin', '*'); + if (!args['--no-compression']) + await compress(request as ExpressRequest, response as ExpressResponse); + + // Let the `serve-handler` module do the rest. + await handler(request, response, config); + }; + + // Then we run the async function, and re-throw any errors. + run().catch((error: Error) => { + throw error; + }); + }; + + // Create the server. + const useSsl = args['--ssl-cert'] && args['--ssl-key']; + const httpMode = useSsl ? 'https' : 'http'; + const sslPass = args['--ssl-pass']; + const serverConfig = + httpMode === 'https' && args['--ssl-cert'] && args['--ssl-key'] + ? { + key: await readFile(args['--ssl-key']), + cert: await readFile(args['--ssl-cert']), + passphrase: sslPass ? await readFile(sslPass, 'utf8') : '', + } + : {}; + const server = + httpMode === 'https' + ? https.createServer(serverConfig, serverHandler) + : http.createServer(serverHandler); + + // Once the server starts, return the address it is running on so the CLI + // can tell the user. + const getServerDetails = () => { + // Make sure to close the server once the process ends. + registerCloseListener(() => server.close()); + + // Once the server has started, get the address the server is running on + // and return it. + const details = server.address() as string | AddressInfo; + let local: string | undefined; + let network: string | undefined; + if (typeof details === 'string') { + local = details; + } else if (typeof details === 'object' && details.port) { + // According to https://www.ietf.org/rfc/rfc2732.txt, IPv6 addresses + // should be surrounded by square brackets (only the address, not the + // port). + let address; + if (details.address === '::') address = 'localhost'; + else if (details.family === 'IPv6') address = `[${details.address}]`; + else address = details.address; + const ip = getNetworkAddress(); + + local = `${httpMode}://${address}:${details.port}`; + network = ip ? `${httpMode}://${ip}:${details.port}` : undefined; + } + + return { + local, + network, + previous, + }; + }; + + // Listen for any error that occurs while serving, and throw an error + // if any errors are received. + server.on('error', (error) => { + throw new Error( + `Failed to serve: ${error.stack?.toString() ?? error.message}`, + ); + }); + + // If the endpoint is a non-zero port, make sure it is not occupied. + if ( + typeof endpoint[0] === 'number' && + !isNaN(endpoint[0]) && + endpoint[0] !== 0 + ) { + const port = endpoint[0]; + const isClosed = await isPortReachable(port, { + host: endpoint[1] ?? 'localhost', + }); + // If the port is already taken, then start the server on a random port + // instead. + if (isClosed) return startServer([0], config, args, port); + + // Otherwise continue on to starting the server. + } + + // Finally, start the server. + return new Promise((resolve, _reject) => { + // If only a port is specified, listen on the given port on localhost. + if (endpoint.length === 1 && typeof endpoint[0] === 'number') + server.listen(endpoint[0], () => resolve(getServerDetails())); + // If the path to a socket or a pipe is given, listen on it. + else if (endpoint.length === 1 && typeof endpoint[0] === 'string') + server.listen(endpoint[0], () => resolve(getServerDetails())); + // If a port number and hostname are given, listen on `host:port`. + else if ( + endpoint.length === 2 && + typeof endpoint[0] === 'number' && + typeof endpoint[1] === 'string' + ) + server.listen(endpoint[0], endpoint[1], () => + resolve(getServerDetails()), + ); + }); +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..0c1727d1 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "@vercel/style-guide/typescript", + "compilerOptions": { + "lib": ["es2020"], + "target": "es2020", + "module": "esnext", + "moduleResolution": "node", + "noEmit": true, + "resolveJsonModule": true + }, + "include": ["source/"] +}