From ab9c5864bbda513937a966b0b445c9ef83a443b7 Mon Sep 17 00:00:00 2001 From: Pavel Mineev Date: Fri, 16 Apr 2021 20:34:03 +0300 Subject: [PATCH] Create cool site for Reproxy (#30) by @akellbl4 * make cool site for reproxy * remove meta tags with images * fix dark theme * flix styles for sidebar nav * add scroll in sidebar * fix dark theme * fix markdown * remove package lock * add package lock to ignore * add update date and edit button * add build command * move target to public * add build * use gitignore * add logos * Changes - add meta - add close button * add style for code tag * fix favicon color in safari * add logo styles * update favicon * add classic ico favicon * update touch icon * fix sharing images * fix logo * move data to site data file * add fancy mate glass effect on header * make readme as site base * update logo update logo * add stretching width for the content * add dockerfile * fix dark theme bugs * remove usless props * fix logo * fix node version * replce logo for the site * fix path to logo in readme * add more space on logo in readme * fix logo size in readme --- .gitignore | 3 +- Makefile | 3 + README.md | 32 +- docs/index.html | 91 - site/.dockerignore | 6 + site/.eleventy.js | 89 + site/.gitignore | 4 + site/.prettierrc | 5 + site/Dockerfile | 11 + site/package.json | 39 + site/postcss.config.js | 7 + site/public/favicon.ico | Bin 0 -> 15086 bytes site/public/favicon.svg | 1 + site/public/index.html | 105 + site/public/manifest.json | 13 + site/public/sharing.png | Bin 0 -> 18018 bytes site/public/touch-icon.png | Bin 0 -> 10480 bytes site/src/data/layout.js | 1 + site/src/data/site.js | 11 + site/src/includes/.gitignore | 1 + site/src/includes/main.js | 38 + site/src/index.md | 210 ++ site/src/layouts/default.njk | 90 + site/src/logo-bg.svg | 1 + site/src/logo.svg | 1 + site/src/main.css | 11 + site/src/public/favicon.ico | Bin 0 -> 15086 bytes site/src/public/favicon.svg | 1 + site/src/public/manifest.json | 13 + site/src/public/sharing.png | Bin 0 -> 18018 bytes site/src/public/touch-icon.png | Bin 0 -> 10480 bytes site/tailwind.config.js | 121 + site/yarn.lock | 4124 ++++++++++++++++++++++++++++++++ 33 files changed, 4925 insertions(+), 107 deletions(-) delete mode 100644 docs/index.html create mode 100644 site/.dockerignore create mode 100644 site/.eleventy.js create mode 100644 site/.gitignore create mode 100644 site/.prettierrc create mode 100644 site/Dockerfile create mode 100644 site/package.json create mode 100644 site/postcss.config.js create mode 100644 site/public/favicon.ico create mode 100644 site/public/favicon.svg create mode 100644 site/public/index.html create mode 100644 site/public/manifest.json create mode 100644 site/public/sharing.png create mode 100644 site/public/touch-icon.png create mode 100644 site/src/data/layout.js create mode 100644 site/src/data/site.js create mode 100644 site/src/includes/.gitignore create mode 100644 site/src/includes/main.js create mode 100644 site/src/index.md create mode 100644 site/src/layouts/default.njk create mode 100644 site/src/logo-bg.svg create mode 100644 site/src/logo.svg create mode 100644 site/src/main.css create mode 100644 site/src/public/favicon.ico create mode 100644 site/src/public/favicon.svg create mode 100644 site/src/public/manifest.json create mode 100644 site/src/public/sharing.png create mode 100644 site/src/public/touch-icon.png create mode 100644 site/tailwind.config.js create mode 100644 site/yarn.lock diff --git a/.gitignore b/.gitignore index a0834c0..690ab0b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ access.log var/ dist/ -docker-compose-private.yml \ No newline at end of file +docker-compose-private.yml +.vscode diff --git a/Makefile b/Makefile index 2174676..28ffc0b 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,9 @@ race_test: build: info - cd app && GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-X main.revision=$(REV) -s -w" -o ../dist/reproxy +build_site: + - cd site && yarn build + info: - @echo "revision $(REV)" diff --git a/README.md b/README.md index 6f00e47..de59b25 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,15 @@ # reproxy [![build](https://github.com/umputun/reproxy/actions/workflows/ci.yml/badge.svg)](https://github.com/umputun/reproxy/actions/workflows/ci.yml) [![Coverage Status](https://coveralls.io/repos/github/umputun/reproxy/badge.svg?branch=master)](https://coveralls.io/github/umputun/reproxy?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/umputun/reproxy)](https://goreportcard.com/report/github.com/umputun/reproxy) [![Docker Automated build](https://img.shields.io/docker/automated/jrottenberg/ffmpeg.svg)](https://hub.docker.com/repository/docker/umputun/reproxy) - Reproxy is a simple edge HTTP(s) server / reverse proxy supporting various providers (docker, static, file). One or more providers supply information about requested server, requested url, destination url and health check url. Distributed as a single binary or as a docker container. Server can be set as FQDN, i.e. `s.example.com` or `*` (catch all). Requested url can be regex, for example `^/api/(.*)` and destination url may have regex matched groups in, i.e. `http://d.example.com:8080/$1`. For the example above `http://s.example.com/api/something?foo=bar` will be proxied to `http://d.example.com:8080/something?foo=bar`. -For convenience, requests with the trailing `/` and without regex groups expanded to `/(.*)`, and destinations in those cases -expanded to `/$1`. I.e. `/api/` -> `http://127.0.0.1/service` will be translated to `^/api/(.*)` -> `http://127.0.0.1/service/$1` +For convenience, requests with the trailing `/` and without regex groups expanded to `/(.*)`, and destinations in those cases +expanded to `/$1`. I.e. `/api/` -> `http://127.0.0.1/service` will be translated to `^/api/(.*)` -> `http://127.0.0.1/service/$1` -Both HTTP and HTTPS supported. For HTTPS, static certificate can be used as well as automated ACME (Let's Encrypt) certificates. +Both HTTP and HTTPS supported. For HTTPS, static certificate can be used as well as automated ACME (Let's Encrypt) certificates. Optional assets server can be used to serve static files. Starting reproxy requires at least one provider defined. The rest of parameters are strictly optional and have sane default. @@ -40,7 +39,7 @@ This is the simplest provider defining all mapping rules directly in the command Each rule is 3 or 4 comma-separated elements `server,sourceurl,destination,[ping-url]`. For example: - `*,^/api/(.*),https://api.example.com/$1,` - proxy all request to any host/server with `/api` prefix to `https://api.example.com` -- `example.com,/foo/bar,https://api.example.com/zzz,https://api.example.com/ping` - proxy all requests to `example.com` and with `/foo/bar` url to `https://api.example.com/zzz`. Uses `https://api.example.com/ping` for the health check +- `example.com,/foo/bar,https://api.example.com/zzz,https://api.example.com/ping` - proxy all requests to `example.com` and with `/foo/bar` url to `https://api.example.com/zzz`. Uses `https://api.example.com/ping` for the health check The last (4th) element defines an optional ping url used for health reporting. I.e.`*,^/api/(.*),https://api.example.com/$1,https://api.example.com/ping`. See [Health check](https://github.com/umputun/reproxy#ping-and-health-checks) section for more details. @@ -52,24 +51,27 @@ example of `config.yml`: ```yaml default: # the same as * (catch-all) server - - {route: "^/api/svc1/(.*)", dest: "http://127.0.0.1:8080/blah1/$1"} - - {route: "/api/svc3/xyz", dest: "http://127.0.0.3:8080/blah3/xyz", "ping": "http://127.0.0.3:8080/ping"} + - { route: "^/api/svc1/(.*)", dest: "http://127.0.0.1:8080/blah1/$1" } + - { + route: "/api/svc3/xyz", + dest: "http://127.0.0.3:8080/blah3/xyz", + "ping": "http://127.0.0.3:8080/ping", + } srv.example.com: - - {route: "^/api/svc2/(.*)", dest: "http://127.0.0.2:8080/blah2/$1/abc"} - + - { route: "^/api/svc2/(.*)", dest: "http://127.0.0.2:8080/blah2/$1/abc" } ``` This is a dynamic provider and file change will be applied automatically. ### Docker -Docker provider supports a fully automatic discovery (with `--docker.auto`) with no extra configuration and by default redirects all requests like `https://server//(.*)` to the internal IP of the given container and the exposed port. Only active (running) containers will be detected. +Docker provider supports a fully automatic discovery (with `--docker.auto`) with no extra configuration and by default redirects all requests like `https://server//(.*)` to the internal IP of the given container and the exposed port. Only active (running) containers will be detected. This default can be changed with labels: - `reproxy.server` - server (hostname) to match. Also can be a list of comma-separated servers. - `reproxy.route` - source route (location) -- `reproxy.dest` - destination path. Note: this is not full url, but just the path which will be appended to container's ip:port +- `reproxy.dest` - destination path. Note: this is not full url, but just the path which will be appended to container's ip:port - `reproxy.port` - destination port for the discovered container - `reproxy.ping` - ping path for the destination container. - `reproxy.enabled` - enable (`yes`, `true`, `1`) or disable (`no`, `false`, `0`) container from reproxy destinations. @@ -86,9 +88,9 @@ This is a dynamic provider and any change in container's status will be applied ## SSL support -SSL mode (by default none) can be set to `auto` (ACME/LE certificates), `static` (existing certificate) or `none`. If `auto` turned on SSL certificate will be issued automatically for all discovered server names. User can override it by setting `--ssl.fqdn` value(s) +SSL mode (by default none) can be set to `auto` (ACME/LE certificates), `static` (existing certificate) or `none`. If `auto` turned on SSL certificate will be issued automatically for all discovered server names. User can override it by setting `--ssl.fqdn` value(s) -## Logging +## Logging By default no request log generated. This can be turned on by setting `--logger.enabled`. The log (auto-rotated) has [Apache Combined Log Format](http://httpd.apache.org/docs/2.2/logs.html#combined) @@ -106,7 +108,7 @@ User may turn assets server on (off by default) to serve static files. As long a In addition to the common assets server multiple custom static servers supported. Each provider has a different way to define such static rule and some providers may not support it at all. For example, multiple static server make sense in case of static (command line provide), file provider and can be even useful with docker provider. 1. static provider - if source element prefixed by `assets:` it will be treated as file-server. For example `*,assets:/web,/var/www,` will serve all `/web/*` request with a file server on top of `/var/www` directory. -2. file provider - setting optional field `assets: true` +2. file provider - setting optional field `assets: true` 3. docker provider - `reproxy.assets=web-root:location`, i.e. `reproxy.assets=/web:/var/www`. ## More options @@ -121,7 +123,7 @@ In addition to the common assets server multiple custom static servers supported reproxy provides 2 endpoints for this purpose: - `/ping` responds with `pong` and indicates what reproxy up and running -- `/health` returns `200 OK` status if all destination servers responded to their ping request with `200` or `417 Expectation Failed` if any of servers responded with non-200 code. It also returns json body with details about passed/failed services. +- `/health` returns `200 OK` status if all destination servers responded to their ping request with `200` or `417 Expectation Failed` if any of servers responded with non-200 code. It also returns json body with details about passed/failed services. ## All Application Options diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index ea8f9f2..0000000 --- a/docs/index.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - reproxy - - - - - - - - - - - -
-

Simple Reverse Proxy

- -

Reproxy is a minimalistic system acting as an edge server / reverse proxy for your infrastructure. It provides the only essential functionality with no bells and whistles. Setup is very straightforward and not much to configure.

- -
    -
  • Automatic SSL termination with Lets Encrypt
  • -
  • Support of user-provided ssl certificates
  • -
  • Simple but flexible proxy rules
  • -
  • Static, command line proxy rules provider
  • -
  • Dynamic, file-based proxy rules provider
  • -
  • Docker provider with an automatic discovery
  • -
  • Optional traffic compression
  • -
  • User-defined limits and timeouts
  • -
  • Single binary distribution
  • -
  • Docker container distribution
  • -
  • Builtin static assets server
  • - -
  • Open source
  • -
- -

— reproxy team

-
- - \ No newline at end of file diff --git a/site/.dockerignore b/site/.dockerignore new file mode 100644 index 0000000..9cc858a --- /dev/null +++ b/site/.dockerignore @@ -0,0 +1,6 @@ +node_modules +.gitignore +.prettierrc +.dockerignore +Dockerfile +public diff --git a/site/.eleventy.js b/site/.eleventy.js new file mode 100644 index 0000000..2f015f6 --- /dev/null +++ b/site/.eleventy.js @@ -0,0 +1,89 @@ +const fs = require('fs') +const path = require('path') +const htmlmin = require('html-minifier') +const markdownIt = require('markdown-it') +const markdownItAnchor = require('markdown-it-anchor') +const toc = require('@thedigitalman/eleventy-plugin-toc-a11y') +const fns = require('date-fns') + +function getVersion() { + return `reproxy-${Date.now()}` +} + +function transformHTML(content, outputPath) { + if (!outputPath?.endsWith('.html')) { + return content + } + + return htmlmin.minify(content, { + useShortDoctype: true, + removeComments: true, + collapseWhitespace: true, + }) +} + +function transformMarkdown() { + return markdownIt({ + html: true, + breaks: true, + linkify: true, + }).use(markdownItAnchor, { + permalink: true, + permalinkClass: '', + permalinkSymbol: '', + }) +} + +function replaceLogo(content) { + const filepath = path.resolve(__dirname, './src/logo.svg') + const svg = fs.readFileSync(filepath, 'utf-8') + + return content.replace(//gi, svg) +} + +function getReadableDate(date) { + return fns.format(new Date(date), 'LLL dd, yyyy') +} + +function getISODate(date) { + return fns.format(new Date(date), 'yyyy-mm-dd') +} + +module.exports = (config) => { + config.addShortcode('version', getVersion) + + // Pluigns + config.addPlugin(toc, { + tags: ['h2', 'h3'], + heading: false, + listType: 'ul', + wrapperClass: 'docs-nav', + listClass: 'pl-5', + listItemClass: 'mb-2', + listItemAnchorClass: + 'inline-block p-1 hover:text-gray-900 dark:hover:text-gray-200', + }) + + // HTML transformations + config.addTransform('replaceLogo', replaceLogo) + config.addTransform('htmlmin', transformHTML) + // Date formaters + config.addFilter('humanizeDate', getReadableDate) + config.addFilter('isoDate', getISODate) + + // Markdown + config.setLibrary('md', transformMarkdown()) + + // Other files + config.addPassthroughCopy({ 'src/public/*': '.' }) + + return { + dir: { + input: 'src', + output: 'public', + data: 'data', + layouts: 'layouts', + includes: 'includes', + }, + } +} diff --git a/site/.gitignore b/site/.gitignore new file mode 100644 index 0000000..4488b8e --- /dev/null +++ b/site/.gitignore @@ -0,0 +1,4 @@ +_tmp +node_modules +yarn-* +package-lock.json diff --git a/site/.prettierrc b/site/.prettierrc new file mode 100644 index 0000000..5fe9f75 --- /dev/null +++ b/site/.prettierrc @@ -0,0 +1,5 @@ +{ + "semi": false, + "useTabs": true, + "singleQuote": true +} diff --git a/site/Dockerfile b/site/Dockerfile new file mode 100644 index 0000000..7df8dfc --- /dev/null +++ b/site/Dockerfile @@ -0,0 +1,11 @@ +FROM node:14-alpine + +WORKDIR build + +COPY . /build +RUN yarn --frozen-lockfile && \ + yarn build && \ + ls -la /public + +CMD ["sleep", "100"] + diff --git a/site/package.json b/site/package.json new file mode 100644 index 0000000..d0e761f --- /dev/null +++ b/site/package.json @@ -0,0 +1,39 @@ +{ + "name": "reproxy", + "version": "0.0.0", + "repository": "https://github.com/umputun/reproxy/site", + "author": "Pavel Mineev ", + "license": "MIT", + "private": true, + "engines": { + "node": ">= 14.15" + }, + "scripts": { + "build": "cross-env NODE_ENV=production run-s build:* --print-label", + "build:clean": "rm -rf public/*", + "build:css": "postcss src/main.css -o src/includes/main.css", + "build:eleventy": "eleventy", + "dev": "run-p dev:*", + "dev:css": "postcss src/main.css -o public/main.css -w", + "dev:eleventy": "eleventy --serve --watch" + }, + "devDependencies": { + "@11ty/eleventy": "^0.12.1", + "@11ty/eleventy-navigation": "^0.2.0", + "@tailwindcss/typography": "^0.4.0", + "@thedigitalman/eleventy-plugin-toc-a11y": "^2.0.2", + "autoprefixer": "^10.2.5", + "cross-env": "^7.0.3", + "cssnano": "^5.0.1", + "date-fns": "^2.21.0", + "html-minifier": "^4.0.0", + "markdown-it": "^12.0.4", + "markdown-it-anchor": "^7.1.0", + "markdown-it-link-attributes": "^3.0.0", + "npm-run-all": "^4.1.5", + "postcss": "^8.2.10", + "postcss-cli": "^8.3.1", + "prettier": "^2.2.1", + "tailwindcss": "^2.1.1" + } +} diff --git a/site/postcss.config.js b/site/postcss.config.js new file mode 100644 index 0000000..4c2ea59 --- /dev/null +++ b/site/postcss.config.js @@ -0,0 +1,7 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + cssnano: {}, + }, +} diff --git a/site/public/favicon.ico b/site/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d356715c140a5329fa7d2f7ecd7e53a319d84b9e GIT binary patch literal 15086 zcmdU$ZD<@t7{@0~ZM43mAC%&2V%2JmLh+^agLoCHSP)b&ZSzuF6hqMueo&fbFC{0U z4GLC2R8i1^3QDQgTlfs_J5`CyfTOAEiyisvCt^24{;j_LCin*< zK=u=fjRvGN;RbP6kI> zvpCw?kKT2ISQ-gK*h*%`l=8mNGQ|(JL0XQS`sXZ}&$c|DL#yDJ#WqwI!NsQW#VIVZR@Oe%82u zEM_ks?wXVyQ&zhFUE9)@#n&x^xLfP_(}f*D``WF11pRMs%RepsX!7OvA5)%*{?C(r ztuMPQV4#!sn_GVdJr-I258!z%cB@bZ3z!3G7F`%2^XZ`6R{4ndKUp=(-*{oSZd^s4 zUbg2?i%Zu>z<;>?LtGpdeO6ot&I)=>%H%)UlErPa7^2$QiX}SNq#S-eFE>Yp>sgP_ zH7SGtZBNZgo#@7u<~1>J*!q5i;paW`eMc4xD~0J>ukD(Ue?pD@?eC#dpO5kP!4hAM zm}xzJqhd{ z{EsJv-G%?1B(dB1Ii~z!!!XWGDF5+w16YHrh3c*=} zJa>z}UhUHt%Z>AViu*bG9(vYc)*}V@8C)VzV|oxk?qjS@`Fe*pd3Zjhj`ujctef$l zD!)(puN?k6wg0Q~3@NPBY9!h!T5+9LB}ReWxR!Z~m6VBpv*t;+;;#6`&3Vo}=5OgU zp>H5<{f-xL>pSNewLSW{_&Fcoz?DAes-S}=M6RV^PI1Fpj6d?&voJo zb)Ova)$hkMf$P@}Kn1z zra0=EQ)yuOBgFzK2FM@)Ptl%Mww-lWB=YS}{)%bTx>4FBxcO72!4m z&+%RVW~ksa?xl74xy~+ZvB%2KO)ukf##`^aan{qx=l>;hm<-&(@~3>_t$O5I#o<|NtP8(MrZnTh z=i&A_3^U`Y;uzDxZ|Q$r^4)D44>j$?K3n@`{6U#touln>fX}Xtw)iQ|_224I)b+4@ z1{C8%y!(pr{2l8m;B!#Le-rlIBk#LXYpG;TGv8CN9Q`zHGDTx diff --git a/site/public/index.html b/site/public/index.html new file mode 100644 index 0000000..ef34370 --- /dev/null +++ b/site/public/index.html @@ -0,0 +1,105 @@ +Reproxy

Reproxy is a simple edge HTTP(s) server / reverse proxy supporting various providers (docker, static, file).
One or more providers supply information about requested server, requested url, destination url and health check url.
Distributed as a single binary or as a docker container.

  • Automatic SSL termination with Let's Encrypt
  • Support of user-provided SSL certificates
  • Simple but flexible proxy rules
  • Static, command line proxy rules provider
  • Dynamic, file-based proxy rules provider
  • Docker provider with an automatic discovery
  • Optional traffic compression
  • User-defined limits and timeouts
  • Single binary distribution
  • Docker container distribution
  • Built-in static assets server

build Coverage Status Go Report Card Docker Automated build

Server can be set as FQDN, i.e. s.example.com or * (catch all). Requested url can be regex, for example ^/api/(.*) and destination url may have regex matched groups in, i.e. http://d.example.com:8080/$1. For the example above http://s.example.com/api/something?foo=bar will be proxied to http://d.example.com:8080/something?foo=bar.

For convenience, requests with the trailing / and without regex groups expanded to /(.*), and destinations in those cases
expanded to /$1. I.e. /api/ -> http://127.0.0.1/service will be translated to ^/api/(.*) -> http://127.0.0.1/service/$1

Both HTTP and HTTPS supported. For HTTPS, static certificate can be used as well as automated ACME (Let's Encrypt) certificates.
Optional assets server can be used to serve static files.

Starting reproxy requires at least one provider defined. The rest of parameters are strictly optional and have sane default.

example with a static provider:

reproxy --static.enabled --static.rule="example.com/api/(.*),https://api.example.com/$1"

example with an automatic docker discovery:

reproxy --docker.enabled --docker.auto

Install

Latest stable version has :vX.Y.Z tag (with :latest alias) and the current master has :master tag.

Providers

User can sets multiple providers at the same time.
See examples of various providers in examples

Static

This is the simplest provider defining all mapping rules directly in the command line (or environment). Multiple rules supported.
Each rule is 3 or 4 comma-separated elements server,sourceurl,destination,[ping-url]. For example:

  • *,^/api/(.*),https://api.example.com/$1, - proxy all request to any host/server with /api prefix to https://api.example.com
  • example.com,/foo/bar,https://api.example.com/zzz,https://api.example.com/ping - proxy all requests to example.com and with /foo/bar url to https://api.example.com/zzz. Uses https://api.example.com/ping for the health check

The last (4th) element defines an optional ping url used for health reporting. I.e.*,^/api/(.*),https://api.example.com/$1,https://api.example.com/ping. See Health check section for more details.

File

reproxy --file.enabled --file.name=config.yml

Example of config.yml:

default: # the same as * (catch-all) server
+  - { route: '^/api/svc1/(.*)', dest: 'http://127.0.0.1:8080/blah1/$1' }
+  - {
+      route: '/api/svc3/xyz',
+      dest: 'http://127.0.0.3:8080/blah3/xyz',
+      'ping': 'http://127.0.0.3:8080/ping',
+    }
+srv.example.com:
+  - { route: '^/api/svc2/(.*)', dest: 'http://127.0.0.2:8080/blah2/$1/abc' }
+

This is a dynamic provider and file change will be applied automatically.

Docker

Docker provider supports a fully automatic discovery (with --docker.auto) with no extra configuration and by default redirects all requests like https://server/<container_name>/(.*) to the internal IP of the given container and the exposed port. Only active (running) containers will be detected.

This default can be changed with labels:

  • reproxy.server - server (hostname) to match. Also can be a list of comma-separated servers.
  • reproxy.route - source route (location)
  • reproxy.dest - destination path. Note: this is not full url, but just the path which will be appended to container's ip:port
  • reproxy.port - destination port for the discovered container
  • reproxy.ping - ping path for the destination container.
  • reproxy.enabled - enable (yes, true, 1) or disable (no, false, 0) container from reproxy destinations.

Pls note: without --docker.auto the destination container has to have at least one of reproxy.* labels to be considered as a potential destination.

With --docker.auto, all containers with exposed port will be considered as routing destinations. There are 3 ways to restrict it:

  • Exclude some containers explicitly with --docker.exclude, i.e. --docker.exclude=c1 --docker.exclude=c2 ...
  • Allow only a particular docker network with --docker.network
  • Set the label reproxy.enabled=false or reproxy.enabled=no or reproxy.enabled=0

This is a dynamic provider and any change in container's status will be applied automatically.

SSL support

SSL mode (by default none) can be set to auto (ACME/LE certificates), static (existing certificate) or none. If auto turned on SSL certificate will be issued automatically for all discovered server names. User can override it by setting --ssl.fqdn value(s)

Logging

By default no request log generated. This can be turned on by setting --logger.enabled. The log (auto-rotated) has Apache Combined Log Format

Assets Server

User may turn assets server on (off by default) to serve static files. As long as --assets.location set it will treat every non-proxied request under assets.root as a request for static files.

Assets server can be used without any proxy providers. In this mode reproxy acts as a simple web server for a static context.

More options

  • --gzip enables gizp compression for responses.
  • --max=N allows to set the maximum size of request (default 64k)
  • --header sets extra header(s) added to each proxied request
  • --timeout.* various timeouts for both server and proxy transport. See timeout section in All Application Options

Ping and health checks

reproxy provides 2 endpoints for this purpose:

  • /ping responds with pong and indicates what reproxy up and running
  • /health returns 200 OK status if all destination servers responded to their ping request with 200 or 417 Expectation Failed if any of servers responded with non-200 code. It also returns json body with details about passed/failed services.

All Application Options

  -l, --listen=                     listen on host:port (default: 127.0.0.1:8080) [$LISTEN]
+  -m, --max=                        max response size (default: 64000) [$MAX_SIZE]
+  -g, --gzip                        enable gz compression [$GZIP]
+  -x, --header=                     proxy headers [$HEADER]
+      --signature                   enable reproxy signature headers [$SIGNATURE]
+      --dbg                         debug mode [$DEBUG]
+
+ssl:
+      --ssl.type=[none|static|auto] ssl (auto) support (default: none) [$SSL_TYPE]
+      --ssl.cert=                   path to cert.pem file [$SSL_CERT]
+      --ssl.key=                    path to key.pem file [$SSL_KEY]
+      --ssl.acme-location=          dir where certificates will be stored by autocert manager (default: ./var/acme) [$SSL_ACME_LOCATION]
+      --ssl.acme-email=             admin email for certificate notifications [$SSL_ACME_EMAIL]
+      --ssl.http-port=              http port for redirect to https and acme challenge test (default: 80) [$SSL_HTTP_PORT]
+      --ssl.fqdn=                   FQDN(s) for ACME certificates [$SSL_ACME_FQDN]
+
+assets:
+  -a, --assets.location=            assets location [$ASSETS_LOCATION]
+      --assets.root=                assets web root (default: /) [$ASSETS_ROOT]
+
+logger:
+      --logger.stdout               enable stdout logging [$LOGGER_STDOUT]
+      --logger.enabled              enable access and error rotated logs [$LOGGER_ENABLED]
+      --logger.file=                location of access log (default: access.log) [$LOGGER_FILE]
+      --logger.max-size=            maximum size in megabytes before it gets rotated (default: 100) [$LOGGER_MAX_SIZE]
+      --logger.max-backups=         maximum number of old log files to retain (default: 10) [$LOGGER_MAX_BACKUPS]
+
+docker:
+      --docker.enabled              enable docker provider [$DOCKER_ENABLED]
+      --docker.host=                docker host (default: unix:///var/run/docker.sock) [$DOCKER_HOST]
+      --docker.network=             docker network [$DOCKER_NETWORK]
+      --docker.exclude=             excluded containers [$DOCKER_EXCLUDE]
+      --docker.auto                 enable automatic routing (without labels) [$DOCKER_AUTO]
+
+file:
+      --file.enabled                enable file provider [$FILE_ENABLED]
+      --file.name=                  file name (default: reproxy.yml) [$FILE_NAME]
+      --file.interval=              file check interval (default: 3s) [$FILE_INTERVAL]
+      --file.delay=                 file event delay (default: 500ms) [$FILE_DELAY]
+
+static:
+      --static.enabled              enable static provider [$STATIC_ENABLED]
+      --static.rule=                routing rules [$STATIC_RULES]
+
+timeout:
+      --timeout.read-header=        read header server timeout (default: 5s) [$TIMEOUT_READ_HEADER]
+      --timeout.write=              write server timeout (default: 30s) [$TIMEOUT_WRITE]
+      --timeout.idle=               idle server timeout (default: 30s) [$TIMEOUT_IDLE]
+      --timeout.dial=               dial transport timeout (default: 30s) [$TIMEOUT_DIAL]
+      --timeout.keep-alive=         keep-alive transport timeout (default: 30s) [$TIMEOUT_KEEP_ALIVE]
+      --timeout.resp-header=        response header transport timeout (default: 5s) [$TIMEOUT_RESP_HEADER]
+      --timeout.idle-conn=          idle connection transport timeout (default: 90s) [$TIMEOUT_IDLE_CONN]
+      --timeout.tls=                TLS hanshake transport timeout (default: 10s) [$TIMEOUT_TLS]
+      --timeout.continue=           expect continue transport timeout (default: 1s) [$TIMEOUT_CONTINUE]
+
+Help Options:
+  -h, --help                        Show this help message
+
+

Status

The project is under active development and may have breaking changes till v1 released.

Updated  Edit
\ No newline at end of file diff --git a/site/public/manifest.json b/site/public/manifest.json new file mode 100644 index 0000000..fdd4a77 --- /dev/null +++ b/site/public/manifest.json @@ -0,0 +1,13 @@ +{ + "name": "Reproxy", + "short_name": "Reproxy", + "icons": [ + { + "src": "touch-icon.png", + "sizes": "512x512" + } + ], + "background_color": "#ffffff", + "theme_color": "#FF7A00", + "display": "fullscreen" +} diff --git a/site/public/sharing.png b/site/public/sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..c8a31d2a405095e5139841294817bdc4ed4ce9be GIT binary patch literal 18018 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%0DqC&<3HL0ZKQU>Q{*T;xmnecNJQw zDh`L<)W&FwKUarG3|gpJel*oCIsYRNCpAOc?Ml4B0Zf`iC+vkfhJOd=*2SfmI;ai< zR$IAR+aD(cb9~VtW>^|gOQH*wD>U$*h9H!!7Kr5gfv&Ikif(osK z)xSF2u9pU{A%k2sv8#h+rlgQyy9 zrn1bHe_|g%Uc@d0Ha5V0(;p+Vdm%=5gw9KD!tXf|?VGDR&@9Cra4%pd&WT0Bm66e2 zsso9}aOBWXQXW8RpRzA*Im?0Osl94$*!Bb-f0!(~6R@J?V!~{D?7QpGFiQ%@*rhHs z<}U1e9dLc@kL3U2BA$GMC|zisItYPfR!l(-;UI=b9Cr>6;=BF2ucAA#IEI>n&{&|0 z$znhj(Hoj7ET+KRnv@v}*b0qP2V?U!m}F~DGTJtEFj%E^OJ88t2gDHtpjb&?>(zB` zuKuG4&_JIwt9n=ToJookVt|eTs$DkbNBGku0cFcx#C~ca-jZk{3YTpOD%79b9HYHs z?N}qqh9HjNB`@T!AR>+LK$B3*Zp7Z3tr&8><`yJG1@KrDvUDm8I4=O34Yio8-!HDT zV4WiYW-=7{>`0dlDbkof=nZ9qxHdF~GoLjdntG{T!kRs03A_;FMFTP`VR5@$9^YGl z0_~SJAG)+#`2%y#4g^Bo=+ori2iMl{FG>RoBhUlBDr zQHBUG8X%q18ykn8Ab9EG7{w`|yXjkyFk#qwAKICt3R8h1y*2zk5cjb6Lr>#y{EZ2r z?pa7Hy+mQXC@sF9a}dO762v34!#>@%oN#z)s80+Kwm13XmrAPvOgU-@9?&yrPq6zI zL@Z$lfk`!Of%U?mzQpkdC^0b{Lx)0RtWA8b0^u^0IOJ^Kd6!*Z^pqpl!<(_$md;cMFQ= zBU>xw{4Aj=vH*(fb$LaKZK?3=F}QayORrnM!hCMOKF)ClA*(QQPxl_GnW-w}s{~TR zwJ<&?*`uZO`QJ4iada~8O%j6e!q6z3S&+^Y(*QQg3PPW6Dkro>F8c) zKk@IvhFqzT0yvuE;Oh;60|Hy(fRH90DOlz=Syy^A`#c~I zdD^U^&;S-yV@GK0sl^xHtY;c*D>0`|!L?>f^lU&~F!d=6E>Yr#`VMGyfxGz8-IGGUNIs#K_`Tr_1KOlKASKf-D2+CIo9Eu)QR!*3;pkHNs0p|S4zf-al;X@v(N$yMDN#T`K8sev+jzs1tUu11{O96ShNPMMo77mGf!D!U(#e z1wXcr9a=7XR6`?~bp(nXDe$K30j{cnD@U_KZ{jMqtWW}MSkOBzyrxsJF%osc)nEXQ z6x2CV!VXiq=^{VY3v9fDmXVs0`Zte%;xcv*7?)_0z?{;u4_4CvuJ?iu zcC$mT2s)w#)n|LWIpL^8GVtwqL8dLosJjKYhyu18k3f|H{N{2`UN>G~Rx9!uypU>m zSSmte#Kk|C1DLh}Or)Xir^E;FbEgf^J#Hrd>wq5tgSAi^u)FNzVpL*Dm4>b6ptwqn zvYqm(&}}TdD=)y<49fNnR6>^}_axGZuM2!iQy6gfo;&~IO3jgOO<<@E47vG;WKTFn zTBr|19Rc&QknG;oeHlz2)wjSI2H%NxJd2O6(t@IBh#qhf2u)|( zUBjNnDQ_935SF+311E_$uFhg2olq~43!Ob3MH=HN@do5nZQJ1MzLwXKM3eRD@-#?M zn0K~JY45=t!?UC zb=0@%I&9lY(lsFIXl>rAMcTUc&f|QA|7U}@uN%!H`2WA5<>$Ig*dT$Pu+P_n9&|jw z9SI5w(xCaA3Uod0=dR%!;CXA*ND>w~op(4urydWI^9%6xpq+M?qX+xB%hCMkt_X52 zt#@M0O8@;TD%E>F)=>JX2v%XWhU;n(1reLX4OkI53x>{HH>|=F2f2@5nkp-5Dx@oL f9~tDVT^h)+_ { + l.addEventListener('click', () => { + if (!isShow()) { + return + } + closeSidebar() + }) +}) + +function openSidebar() { + document.body.classList.add('overflow-hidden') + sidebarElement.classList.remove('hidden') +} + +function closeSidebar() { + sidebarElement.classList.add('hidden') + document.body.classList.remove('overflow-hidden') +} + +function isShow() { + return !sidebarElement.classList.contains('hidden') +} + +function toggleSidebar() { + if (isShow()) { + closeSidebar() + } else { + openSidebar() + } +} diff --git a/site/src/index.md b/site/src/index.md new file mode 100644 index 0000000..3eabde3 --- /dev/null +++ b/site/src/index.md @@ -0,0 +1,210 @@ +
+ +
+ +Reproxy is a simple edge HTTP(s) server / reverse proxy supporting various providers (docker, static, file). +One or more providers supply information about requested server, requested url, destination url and health check url. +Distributed as a single binary or as a docker container. + +- Automatic SSL termination with Let's Encrypt +- Support of user-provided SSL certificates +- Simple but flexible proxy rules +- Static, command line proxy rules provider +- Dynamic, file-based proxy rules provider +- Docker provider with an automatic discovery +- Optional traffic compression +- User-defined limits and timeouts +- Single binary distribution +- Docker container distribution +- Built-in static assets server + +[![build](https://github.com/umputun/reproxy/actions/workflows/ci.yml/badge.svg)](https://github.com/umputun/reproxy/actions/workflows/ci.yml) [![Coverage Status](https://coveralls.io/repos/github/umputun/reproxy/badge.svg?branch=master)](https://coveralls.io/github/umputun/reproxy?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/umputun/reproxy)](https://goreportcard.com/report/github.com/umputun/reproxy) [![Docker Automated build](https://img.shields.io/docker/automated/jrottenberg/ffmpeg.svg)](https://hub.docker.com/repository/docker/umputun/reproxy) + +Server can be set as FQDN, i.e. `s.example.com` or `*` (catch all). Requested url can be regex, for example `^/api/(.*)` and destination url may have regex matched groups in, i.e. `http://d.example.com:8080/$1`. For the example above `http://s.example.com/api/something?foo=bar` will be proxied to `http://d.example.com:8080/something?foo=bar`. + +For convenience, requests with the trailing `/` and without regex groups expanded to `/(.*)`, and destinations in those cases +expanded to `/$1`. I.e. `/api/` -> `http://127.0.0.1/service` will be translated to `^/api/(.*)` -> `http://127.0.0.1/service/$1` + +Both HTTP and HTTPS supported. For HTTPS, static certificate can be used as well as automated ACME (Let's Encrypt) certificates. +Optional assets server can be used to serve static files. + +Starting reproxy requires at least one provider defined. The rest of parameters are strictly optional and have sane default. + +example with a static provider: + +`reproxy --static.enabled --static.rule="example.com/api/(.*),https://api.example.com/$1"` + +example with an automatic docker discovery: + +`reproxy --docker.enabled --docker.auto` + +## Install + +- for a binary distribution pick the proper file in the [release section](https://github.com/umputun/reproxy/releases) +- docker container available on [Docker Hub](https://hub.docker.com/r/umputun/reproxy) as well as on [Github Container Registry](ghcr.io/umputun/reproxy). + +Latest stable version has `:vX.Y.Z` tag (with `:latest` alias) and the current master has `:master` tag. + +## Providers + +User can sets multiple providers at the same time. +_See examples of various providers in [examples](https://github.com/umputun/reproxy/tree/master/examples)_ + +### Static + +This is the simplest provider defining all mapping rules directly in the command line (or environment). Multiple rules supported. +Each rule is 3 or 4 comma-separated elements `server,sourceurl,destination,[ping-url]`. For example: + +- `*,^/api/(.*),https://api.example.com/$1,` - proxy all request to any host/server with `/api` prefix to `https://api.example.com` +- `example.com,/foo/bar,https://api.example.com/zzz,https://api.example.com/ping` - proxy all requests to `example.com` and with `/foo/bar` url to `https://api.example.com/zzz`. Uses `https://api.example.com/ping` for the health check + +The last (4th) element defines an optional ping url used for health reporting. I.e.`*,^/api/(.*),https://api.example.com/$1,https://api.example.com/ping`. See [Health check](https://github.com/umputun/reproxy#ping-and-health-checks) section for more details. + +### File + +`reproxy --file.enabled --file.name=config.yml` + +Example of `config.yml`: + +```yaml +default: # the same as * (catch-all) server + - { route: '^/api/svc1/(.*)', dest: 'http://127.0.0.1:8080/blah1/$1' } + - { + route: '/api/svc3/xyz', + dest: 'http://127.0.0.3:8080/blah3/xyz', + 'ping': 'http://127.0.0.3:8080/ping', + } +srv.example.com: + - { route: '^/api/svc2/(.*)', dest: 'http://127.0.0.2:8080/blah2/$1/abc' } +``` + +This is a dynamic provider and file change will be applied automatically. + +### Docker + +Docker provider supports a fully automatic discovery (with `--docker.auto`) with no extra configuration and by default redirects all requests like `https://server//(.*)` to the internal IP of the given container and the exposed port. Only active (running) containers will be detected. + +This default can be changed with labels: + +- `reproxy.server` - server (hostname) to match. Also can be a list of comma-separated servers. +- `reproxy.route` - source route (location) +- `reproxy.dest` - destination path. Note: this is not full url, but just the path which will be appended to container's ip:port +- `reproxy.port` - destination port for the discovered container +- `reproxy.ping` - ping path for the destination container. +- `reproxy.enabled` - enable (`yes`, `true`, `1`) or disable (`no`, `false`, `0`) container from reproxy destinations. + +Pls note: without `--docker.auto` the destination container has to have at least one of `reproxy.*` labels to be considered as a potential destination. + +With `--docker.auto`, all containers with exposed port will be considered as routing destinations. There are 3 ways to restrict it: + +- Exclude some containers explicitly with `--docker.exclude`, i.e. `--docker.exclude=c1 --docker.exclude=c2 ...` +- Allow only a particular docker network with `--docker.network` +- Set the label `reproxy.enabled=false` or `reproxy.enabled=no` or `reproxy.enabled=0` + +This is a dynamic provider and any change in container's status will be applied automatically. + +## SSL support + +SSL mode (by default none) can be set to `auto` (ACME/LE certificates), `static` (existing certificate) or `none`. If `auto` turned on SSL certificate will be issued automatically for all discovered server names. User can override it by setting `--ssl.fqdn` value(s) + +## Logging + +By default no request log generated. This can be turned on by setting `--logger.enabled`. The log (auto-rotated) has [Apache Combined Log Format](http://httpd.apache.org/docs/2.2/logs.html#combined) + +User can also turn stdout log on with `--logger.stdout`. It won't affect the file logging but will output some minimal info about processed requests, something like this: + +``` +2021/04/16 01:17:25.601 [INFO] GET - /echo/image.png - xxx.xxx.xxx.xxx - 200 (155400) - 371.661251ms +2021/04/16 01:18:18.959 [INFO] GET - /api/v1/params - xxx.xxx.xxx.xxx - 200 (74) - 1.217669m +``` + +## Assets Server + +User may turn assets server on (off by default) to serve static files. As long as `--assets.location` set it will treat every non-proxied request under `assets.root` as a request for static files. Assets server can be used without any proxy providers. In this mode reproxy acts as a simple web server for a static context. + +In addition to the common assets server multiple custom static servers supported. Each provider has a different way to define such static rule and some providers may not support it at all. For example, multiple static server make sense in case of static (command line provide), file provider and can be even useful with docker provider. + +1. static provider - if source element prefixed by `assets:` it will be treated as file-server. For example `*,assets:/web,/var/www,` will serve all `/web/*` request with a file server on top of `/var/www` directory. +2. file provider - setting optional field `assets: true` +3. docker provider - `reproxy.assets=web-root:location`, i.e. `reproxy.assets=/web:/var/www`. + +## More options + +- `--gzip` enables gizp compression for responses. +- `--max=N` allows to set the maximum size of request (default 64k) +- `--header` sets extra header(s) added to each proxied request +- `--timeout.*` various timeouts for both server and proxy transport. See `timeout` section in [All Application Options](https://github.com/umputun/reproxy#all-application-options) + +## Ping and health checks + +reproxy provides 2 endpoints for this purpose: + +- `/ping` responds with `pong` and indicates what reproxy up and running +- `/health` returns `200 OK` status if all destination servers responded to their ping request with `200` or `417 Expectation Failed` if any of servers responded with non-200 code. It also returns json body with details about passed/failed services. + +## All Application Options + +``` + -l, --listen= listen on host:port (default: 127.0.0.1:8080) [$LISTEN] + -m, --max= max response size (default: 64000) [$MAX_SIZE] + -g, --gzip enable gz compression [$GZIP] + -x, --header= proxy headers [$HEADER] + --signature enable reproxy signature headers [$SIGNATURE] + --dbg debug mode [$DEBUG] + +ssl: + --ssl.type=[none|static|auto] ssl (auto) support (default: none) [$SSL_TYPE] + --ssl.cert= path to cert.pem file [$SSL_CERT] + --ssl.key= path to key.pem file [$SSL_KEY] + --ssl.acme-location= dir where certificates will be stored by autocert manager (default: ./var/acme) [$SSL_ACME_LOCATION] + --ssl.acme-email= admin email for certificate notifications [$SSL_ACME_EMAIL] + --ssl.http-port= http port for redirect to https and acme challenge test (default: 80) [$SSL_HTTP_PORT] + --ssl.fqdn= FQDN(s) for ACME certificates [$SSL_ACME_FQDN] + +assets: + -a, --assets.location= assets location [$ASSETS_LOCATION] + --assets.root= assets web root (default: /) [$ASSETS_ROOT] + +logger: + --logger.stdout enable stdout logging [$LOGGER_STDOUT] + --logger.enabled enable access and error rotated logs [$LOGGER_ENABLED] + --logger.file= location of access log (default: access.log) [$LOGGER_FILE] + --logger.max-size= maximum size in megabytes before it gets rotated (default: 100) [$LOGGER_MAX_SIZE] + --logger.max-backups= maximum number of old log files to retain (default: 10) [$LOGGER_MAX_BACKUPS] + +docker: + --docker.enabled enable docker provider [$DOCKER_ENABLED] + --docker.host= docker host (default: unix:///var/run/docker.sock) [$DOCKER_HOST] + --docker.network= docker network [$DOCKER_NETWORK] + --docker.exclude= excluded containers [$DOCKER_EXCLUDE] + --docker.auto enable automatic routing (without labels) [$DOCKER_AUTO] + +file: + --file.enabled enable file provider [$FILE_ENABLED] + --file.name= file name (default: reproxy.yml) [$FILE_NAME] + --file.interval= file check interval (default: 3s) [$FILE_INTERVAL] + --file.delay= file event delay (default: 500ms) [$FILE_DELAY] + +static: + --static.enabled enable static provider [$STATIC_ENABLED] + --static.rule= routing rules [$STATIC_RULES] + +timeout: + --timeout.read-header= read header server timeout (default: 5s) [$TIMEOUT_READ_HEADER] + --timeout.write= write server timeout (default: 30s) [$TIMEOUT_WRITE] + --timeout.idle= idle server timeout (default: 30s) [$TIMEOUT_IDLE] + --timeout.dial= dial transport timeout (default: 30s) [$TIMEOUT_DIAL] + --timeout.keep-alive= keep-alive transport timeout (default: 30s) [$TIMEOUT_KEEP_ALIVE] + --timeout.resp-header= response header transport timeout (default: 5s) [$TIMEOUT_RESP_HEADER] + --timeout.idle-conn= idle connection transport timeout (default: 90s) [$TIMEOUT_IDLE_CONN] + --timeout.tls= TLS hanshake transport timeout (default: 10s) [$TIMEOUT_TLS] + --timeout.continue= expect continue transport timeout (default: 1s) [$TIMEOUT_CONTINUE] + +Help Options: + -h, --help Show this help message + +``` + +## Status + +The project is under active development and may have breaking changes till `v1` released. diff --git a/site/src/layouts/default.njk b/site/src/layouts/default.njk new file mode 100644 index 0000000..2314586 --- /dev/null +++ b/site/src/layouts/default.njk @@ -0,0 +1,90 @@ + + + + + + + {{ site.title }} + + + + + + + + + + + + + + + + {% if site.env === 'production' %} + {% set css %}{% include "main.css" %}{% endset %} + + {% else %} + + {% endif %} + + +
+ +
+ +
+ + {{ content | safe }} +
+
+ Updated  + Edit +
+
+ +
+ {% set js %}{% include "main.js" %}{% endset %} + + + diff --git a/site/src/logo-bg.svg b/site/src/logo-bg.svg new file mode 100644 index 0000000..5332e52 --- /dev/null +++ b/site/src/logo-bg.svg @@ -0,0 +1 @@ + diff --git a/site/src/logo.svg b/site/src/logo.svg new file mode 100644 index 0000000..c5edde5 --- /dev/null +++ b/site/src/logo.svg @@ -0,0 +1 @@ + diff --git a/site/src/main.css b/site/src/main.css new file mode 100644 index 0000000..f47610d --- /dev/null +++ b/site/src/main.css @@ -0,0 +1,11 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +html { + scroll-behavior: smooth; +} + +.docs-nav a ~ ul { + @apply mt-1 mb-2; +} diff --git a/site/src/public/favicon.ico b/site/src/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d356715c140a5329fa7d2f7ecd7e53a319d84b9e GIT binary patch literal 15086 zcmdU$ZD<@t7{@0~ZM43mAC%&2V%2JmLh+^agLoCHSP)b&ZSzuF6hqMueo&fbFC{0U z4GLC2R8i1^3QDQgTlfs_J5`CyfTOAEiyisvCt^24{;j_LCin*< zK=u=fjRvGN;RbP6kI> zvpCw?kKT2ISQ-gK*h*%`l=8mNGQ|(JL0XQS`sXZ}&$c|DL#yDJ#WqwI!NsQW#VIVZR@Oe%82u zEM_ks?wXVyQ&zhFUE9)@#n&x^xLfP_(}f*D``WF11pRMs%RepsX!7OvA5)%*{?C(r ztuMPQV4#!sn_GVdJr-I258!z%cB@bZ3z!3G7F`%2^XZ`6R{4ndKUp=(-*{oSZd^s4 zUbg2?i%Zu>z<;>?LtGpdeO6ot&I)=>%H%)UlErPa7^2$QiX}SNq#S-eFE>Yp>sgP_ zH7SGtZBNZgo#@7u<~1>J*!q5i;paW`eMc4xD~0J>ukD(Ue?pD@?eC#dpO5kP!4hAM zm}xzJqhd{ z{EsJv-G%?1B(dB1Ii~z!!!XWGDF5+w16YHrh3c*=} zJa>z}UhUHt%Z>AViu*bG9(vYc)*}V@8C)VzV|oxk?qjS@`Fe*pd3Zjhj`ujctef$l zD!)(puN?k6wg0Q~3@NPBY9!h!T5+9LB}ReWxR!Z~m6VBpv*t;+;;#6`&3Vo}=5OgU zp>H5<{f-xL>pSNewLSW{_&Fcoz?DAes-S}=M6RV^PI1Fpj6d?&voJo zb)Ova)$hkMf$P@}Kn1z zra0=EQ)yuOBgFzK2FM@)Ptl%Mww-lWB=YS}{)%bTx>4FBxcO72!4m z&+%RVW~ksa?xl74xy~+ZvB%2KO)ukf##`^aan{qx=l>;hm<-&(@~3>_t$O5I#o<|NtP8(MrZnTh z=i&A_3^U`Y;uzDxZ|Q$r^4)D44>j$?K3n@`{6U#touln>fX}Xtw)iQ|_224I)b+4@ z1{C8%y!(pr{2l8m;B!#Le-rlIBk#LXYpG;TGv8CN9Q`zHGDTx diff --git a/site/src/public/manifest.json b/site/src/public/manifest.json new file mode 100644 index 0000000..fdd4a77 --- /dev/null +++ b/site/src/public/manifest.json @@ -0,0 +1,13 @@ +{ + "name": "Reproxy", + "short_name": "Reproxy", + "icons": [ + { + "src": "touch-icon.png", + "sizes": "512x512" + } + ], + "background_color": "#ffffff", + "theme_color": "#FF7A00", + "display": "fullscreen" +} diff --git a/site/src/public/sharing.png b/site/src/public/sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..c8a31d2a405095e5139841294817bdc4ed4ce9be GIT binary patch literal 18018 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%0DqC&<3HL0ZKQU>Q{*T;xmnecNJQw zDh`L<)W&FwKUarG3|gpJel*oCIsYRNCpAOc?Ml4B0Zf`iC+vkfhJOd=*2SfmI;ai< zR$IAR+aD(cb9~VtW>^|gOQH*wD>U$*h9H!!7Kr5gfv&Ikif(osK z)xSF2u9pU{A%k2sv8#h+rlgQyy9 zrn1bHe_|g%Uc@d0Ha5V0(;p+Vdm%=5gw9KD!tXf|?VGDR&@9Cra4%pd&WT0Bm66e2 zsso9}aOBWXQXW8RpRzA*Im?0Osl94$*!Bb-f0!(~6R@J?V!~{D?7QpGFiQ%@*rhHs z<}U1e9dLc@kL3U2BA$GMC|zisItYPfR!l(-;UI=b9Cr>6;=BF2ucAA#IEI>n&{&|0 z$znhj(Hoj7ET+KRnv@v}*b0qP2V?U!m}F~DGTJtEFj%E^OJ88t2gDHtpjb&?>(zB` zuKuG4&_JIwt9n=ToJookVt|eTs$DkbNBGku0cFcx#C~ca-jZk{3YTpOD%79b9HYHs z?N}qqh9HjNB`@T!AR>+LK$B3*Zp7Z3tr&8><`yJG1@KrDvUDm8I4=O34Yio8-!HDT zV4WiYW-=7{>`0dlDbkof=nZ9qxHdF~GoLjdntG{T!kRs03A_;FMFTP`VR5@$9^YGl z0_~SJAG)+#`2%y#4g^Bo=+ori2iMl{FG>RoBhUlBDr zQHBUG8X%q18ykn8Ab9EG7{w`|yXjkyFk#qwAKICt3R8h1y*2zk5cjb6Lr>#y{EZ2r z?pa7Hy+mQXC@sF9a}dO762v34!#>@%oN#z)s80+Kwm13XmrAPvOgU-@9?&yrPq6zI zL@Z$lfk`!Of%U?mzQpkdC^0b{Lx)0RtWA8b0^u^0IOJ^Kd6!*Z^pqpl!<(_$md;cMFQ= zBU>xw{4Aj=vH*(fb$LaKZK?3=F}QayORrnM!hCMOKF)ClA*(QQPxl_GnW-w}s{~TR zwJ<&?*`uZO`QJ4iada~8O%j6e!q6z3S&+^Y(*QQg3PPW6Dkro>F8c) zKk@IvhFqzT0yvuE;Oh;60|Hy(fRH90DOlz=Syy^A`#c~I zdD^U^&;S-yV@GK0sl^xHtY;c*D>0`|!L?>f^lU&~F!d=6E>Yr#`VMGyfxGz8-IGGUNIs#K_`Tr_1KOlKASKf-D2+CIo9Eu)QR!*3;pkHNs0p|S4zf-al;X@v(N$yMDN#T`K8sev+jzs1tUu11{O96ShNPMMo77mGf!D!U(#e z1wXcr9a=7XR6`?~bp(nXDe$K30j{cnD@U_KZ{jMqtWW}MSkOBzyrxsJF%osc)nEXQ z6x2CV!VXiq=^{VY3v9fDmXVs0`Zte%;xcv*7?)_0z?{;u4_4CvuJ?iu zcC$mT2s)w#)n|LWIpL^8GVtwqL8dLosJjKYhyu18k3f|H{N{2`UN>G~Rx9!uypU>m zSSmte#Kk|C1DLh}Or)Xir^E;FbEgf^J#Hrd>wq5tgSAi^u)FNzVpL*Dm4>b6ptwqn zvYqm(&}}TdD=)y<49fNnR6>^}_axGZuM2!iQy6gfo;&~IO3jgOO<<@E47vG;WKTFn zTBr|19Rc&QknG;oeHlz2)wjSI2H%NxJd2O6(t@IBh#qhf2u)|( zUBjNnDQ_935SF+311E_$uFhg2olq~43!Ob3MH=HN@do5nZQJ1MzLwXKM3eRD@-#?M zn0K~JY45=t!?UC zb=0@%I&9lY(lsFIXl>rAMcTUc&f|QA|7U}@uN%!H`2WA5<>$Ig*dT$Pu+P_n9&|jw z9SI5w(xCaA3Uod0=dR%!;CXA*ND>w~op(4urydWI^9%6xpq+M?qX+xB%hCMkt_X52 zt#@M0O8@;TD%E>F)=>JX2v%XWhU;n(1reLX4OkI53x>{HH>|=F2f2@5nkp-5Dx@oL f9~tDVT^h)+_ ({ + DEFAULT: { + css: { + maxWidth: '100%', + paddingLeft: spacing[12], + paddingRight: spacing[12], + color: theme('colors.gray.700'), + 'h2,h3,h4': { + 'scroll-margin-top': spacing[24], + }, + 'blockquote p:first-of-type::before': false, + 'blockquote p:last-of-type::after': false, + 'code::before': false, + 'code::after': false, + img: { + margin: spacing[2], + display: 'initial', + }, + code: { + wordWrap: 'break-word', + fontWeight: 'normal', + backgroundColor: theme('colors.gray.100'), + color: theme('colors.gray.700'), + paddingTop: spacing[1], + paddingBottom: spacing[1], + paddingLeft: spacing[2], + paddingRight: spacing[2], + borderRadius: spacing[1], + }, + }, + }, + dark: { + css: [ + { + color: theme('colors.gray.400'), + '[class~="lead"]': { + color: theme('colors.gray.300'), + }, + a: { + color: theme('colors.gray.200'), + }, + strong: { + color: theme('colors.gray.200'), + }, + 'ol > li::before': { + color: theme('colors.gray.400'), + }, + 'ul > li::before': { + backgroundColor: theme('colors.gray.600'), + }, + hr: { + borderColor: theme('colors.gray.300'), + }, + blockquote: { + color: theme('colors.gray.300'), + borderLeftColor: theme('colors.gray.600'), + }, + h1: { + color: theme('colors.gray.200'), + }, + h2: { + color: theme('colors.gray.200'), + }, + h3: { + color: theme('colors.gray.200'), + }, + h4: { + color: theme('colors.gray.200'), + }, + 'figure figcaption': { + color: theme('colors.gray.400'), + }, + code: { + backgroundColor: theme('colors.gray.700'), + color: theme('colors.gray.200'), + }, + 'a code': { + color: theme('colors.gray.200'), + }, + pre: { + color: theme('colors.gray.300'), + backgroundColor: theme('colors.gray.800'), + }, + thead: { + color: theme('colors.gray.200'), + borderBottomColor: theme('colors.gray.400'), + }, + 'tbody tr': { + borderBottomColor: theme('colors.gray.600'), + }, + }, + ], + }, + }), + }, + }, + variants: { + extend: { + typography: ['responsive', 'dark'], + }, + }, + plugins: [require('@tailwindcss/typography')], +} diff --git a/site/yarn.lock b/site/yarn.lock new file mode 100644 index 0000000..6171eb1 --- /dev/null +++ b/site/yarn.lock @@ -0,0 +1,4124 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@11ty/dependency-tree@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@11ty/dependency-tree/-/dependency-tree-1.0.0.tgz#b1fa53da49aafe0ab3fe38bc6b6058b704aa59a1" + integrity sha512-2FWYlkphQ/83MG7b9qqBJfJJ0K9zupNz/6n4EdDuNLw6hQHGp4Sp4UMDRyBvA/xCTYDBaPSuSjHuu45tSujegg== + +"@11ty/eleventy-navigation@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@11ty/eleventy-navigation/-/eleventy-navigation-0.2.0.tgz#fd610a4a3d52934b54832be5268dddf4b2fd22f4" + integrity sha512-mkFoNpL32FosMTuZwxcY3KXVVYLRt7zBqVWP9X+0GMufnRNGpLZd+BYwD0vmYHLAxz1ol/RLlL2Hmkgp/YJ4TQ== + dependencies: + dependency-graph "^0.11.0" + +"@11ty/eleventy@^0.12.1": + version "0.12.1" + resolved "https://registry.yarnpkg.com/@11ty/eleventy/-/eleventy-0.12.1.tgz#a957985e783bb5eeb8c1a97e661c5252014b2fd3" + integrity sha512-YGG1Vk0IPXsExSAwIyv6zccxxlaxXLb4PvO/G+SW66Dsz2l1ZSObJuukVTLc6iMpqZCS+LZQNXnaqG9PuRmy7w== + dependencies: + "@11ty/dependency-tree" "^1.0.0" + browser-sync "^2.26.14" + chalk "^4.1.0" + chokidar "^3.5.1" + debug "^4.3.1" + dependency-graph "^0.11.0" + ejs "^2.7.4" + fast-glob "^3.2.5" + fs-extra "^8.1.0" + gray-matter "^4.0.2" + hamljs "^0.6.2" + handlebars "^4.7.7" + javascript-stringify "^2.0.1" + liquidjs "^6.4.3" + lodash "^4.17.21" + luxon "^1.26.0" + markdown-it "^10.0.0" + minimist "^1.2.5" + moo "^0.5.1" + multimatch "^4.0.0" + mustache "^2.3.2" + normalize-path "^3.0.0" + nunjucks "^3.2.3" + parse-filepath "^1.0.2" + please-upgrade-node "^3.2.0" + pretty "^2.0.0" + pug "^3.0.2" + recursive-copy "^2.0.11" + semver "^7.3.4" + slugify "^1.4.7" + time-require "^0.1.2" + valid-url "^1.0.9" + +"@babel/code-frame@^7.0.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/highlight@^7.12.13": + version "7.13.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" + integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.6.0", "@babel/parser@^7.9.6": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.15.tgz#8e66775fb523599acb6a289e12929fa5ab0954d8" + integrity sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ== + +"@babel/types@^7.6.1", "@babel/types@^7.9.6": + version "7.13.14" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d" + integrity sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@fullhuman/postcss-purgecss@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@fullhuman/postcss-purgecss/-/postcss-purgecss-3.1.3.tgz#47af7b87c9bfb3de4bc94a38f875b928fffdf339" + integrity sha512-kwOXw8fZ0Lt1QmeOOrd+o4Ibvp4UTEBFQbzvWldjlKv5n+G9sXfIPn1hh63IQIL8K8vbvv1oYMJiIUbuy9bGaA== + dependencies: + purgecss "^3.1.3" + +"@nodelib/fs.scandir@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" + integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== + dependencies: + "@nodelib/fs.stat" "2.0.4" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" + integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" + integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + dependencies: + "@nodelib/fs.scandir" "2.1.4" + fastq "^1.6.0" + +"@tailwindcss/typography@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.4.0.tgz#b80974ad6af93df7b06e1981cb4d79698b6ad5c7" + integrity sha512-3BfOYT5MYNEq81Ism3L2qu/HRP2Q5vWqZtZRQqQrthHuaTK9qpuPfbMT5WATjAM5J1OePKBaI5pLoX4S1JGNMQ== + dependencies: + lodash.castarray "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + lodash.uniq "^4.5.0" + +"@thedigitalman/eleventy-plugin-toc-a11y@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@thedigitalman/eleventy-plugin-toc-a11y/-/eleventy-plugin-toc-a11y-2.0.2.tgz#fc17576ee5fe8f60058007b73137660ce451f0d5" + integrity sha512-Pzm8khYyjMnXu5IxH7qQqhRW8xm+oFNotLf8IKK8qGk43xmnvckMJ2lk2XuX0IaS+MmQ+mWPY6VKzL4vpcozjw== + dependencies: + cheerio "1.0.0-rc.3" + +"@trysound/sax@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" + integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== + +"@types/minimatch@^3.0.3": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" + integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== + +"@types/node@*": + version "14.14.37" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e" + integrity sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +a-sync-waterfall@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz#75b6b6aa72598b497a125e7a2770f14f4c8a1fa7" + integrity sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.4: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-node@^1.6.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + dependencies: + acorn "^7.0.0" + acorn-walk "^7.0.0" + xtend "^4.0.2" + +acorn-walk@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.0.0, acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + +alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= + +anymatch@~3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= + +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asap@^2.0.3, asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +assert-never@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.2.1.tgz#11f0e363bf146205fb08193b5c7b90f4d1cf44fe" + integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw== + +async-each-series@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-0.1.1.tgz#7617c1917401fd8ca4a28aadce3dbae98afeb432" + integrity sha1-dhfBkXQB/Yykooqtzj266Yr+tDI= + +async@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +autoprefixer@^10.2.5: + version "10.2.5" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.2.5.tgz#096a0337dbc96c0873526d7fef5de4428d05382d" + integrity sha512-7H4AJZXvSsn62SqZyJCP+1AWwOuoYpUfK6ot9vm0e87XD6mT8lDywc9D9OTJPMULyGcvmIxzTAMeG2Cc+YX+fA== + dependencies: + browserslist "^4.16.3" + caniuse-lite "^1.0.30001196" + colorette "^1.2.2" + fraction.js "^4.0.13" + normalize-range "^0.1.2" + postcss-value-parser "^4.1.0" + +axios@0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + +babel-walk@3.0.0-canary-5: + version "3.0.0-canary-5" + resolved "https://registry.yarnpkg.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz#f66ecd7298357aee44955f235a6ef54219104b11" + integrity sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw== + dependencies: + "@babel/types" "^7.9.6" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-arraybuffer@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" + integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= + +base64id@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-sync-client@^2.26.14: + version "2.26.14" + resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.26.14.tgz#f2f0a8e5febc65b725fb38c8d648389214a38947" + integrity sha512-be0m1MchmKv/26r/yyyolxXcBi052aYrmaQep5nm8YNMjFcEyzv0ZoOKn/c3WEXNlEB/KeXWaw70fAOJ+/F1zQ== + dependencies: + etag "1.8.1" + fresh "0.5.2" + mitt "^1.1.3" + rxjs "^5.5.6" + +browser-sync-ui@^2.26.14: + version "2.26.14" + resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-2.26.14.tgz#96632c38dda72560a3be8e985716d7a735e94749" + integrity sha512-6oT1sboM4KVNnWCCJDMGbRIeTBw97toMFQ+srImvwQ6J5t9KMgizaIX8HcKLiemsUMSJkgGM9RVKIpq2UblgOA== + dependencies: + async-each-series "0.1.1" + connect-history-api-fallback "^1" + immutable "^3" + server-destroy "1.0.1" + socket.io-client "^2.4.0" + stream-throttle "^0.1.3" + +browser-sync@^2.26.14: + version "2.26.14" + resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.26.14.tgz#716c13ef91e72dfe092ff84bec3ddf62ea9d81fd" + integrity sha512-3TtpsheGolJT6UFtM2CZWEcGJmI4ZEvoCKiKE2bvcDnPxRkhQT4nIGVtfiyPcoHKXGM0LwMOZmYJNWfiNfVXWA== + dependencies: + browser-sync-client "^2.26.14" + browser-sync-ui "^2.26.14" + bs-recipes "1.3.4" + bs-snippet-injector "^2.0.1" + chokidar "^3.5.1" + connect "3.6.6" + connect-history-api-fallback "^1" + dev-ip "^1.0.1" + easy-extender "^2.3.4" + eazy-logger "3.1.0" + etag "^1.8.1" + fresh "^0.5.2" + fs-extra "3.0.1" + http-proxy "^1.18.1" + immutable "^3" + localtunnel "^2.0.1" + micromatch "^4.0.2" + opn "5.3.0" + portscanner "2.1.1" + qs "6.2.3" + raw-body "^2.3.2" + resp-modifier "6.0.2" + rx "4.1.0" + send "0.16.2" + serve-index "1.9.1" + serve-static "1.13.2" + server-destroy "1.0.1" + socket.io "2.4.0" + ua-parser-js "^0.7.18" + yargs "^15.4.1" + +browserslist@^4.0.0, browserslist@^4.16.0, browserslist@^4.16.3: + version "4.16.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.4.tgz#7ebf913487f40caf4637b892b268069951c35d58" + integrity sha512-d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ== + dependencies: + caniuse-lite "^1.0.30001208" + colorette "^1.2.2" + electron-to-chromium "^1.3.712" + escalade "^3.1.1" + node-releases "^1.1.71" + +bs-recipes@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/bs-recipes/-/bs-recipes-1.3.4.tgz#0d2d4d48a718c8c044769fdc4f89592dc8b69585" + integrity sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU= + +bs-snippet-injector@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz#61b5393f11f52559ed120693100343b6edb04dd5" + integrity sha1-YbU5PxH1JVntEgaTEANDtu2wTdU= + +bytes@3.1.0, bytes@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001196, caniuse-lite@^1.0.30001208: + version "1.0.30001208" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz#a999014a35cebd4f98c405930a057a0d75352eb9" + integrity sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA== + +chalk@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= + dependencies: + ansi-styles "~1.0.0" + has-color "~0.1.0" + strip-ansi "~0.1.0" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +character-parser@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" + integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A= + dependencies: + is-regex "^1.0.3" + +cheerio@1.0.0-rc.3: + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" + integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.1" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash "^4.15.0" + parse5 "^3.0.1" + +chokidar@^3.3.0, chokidar@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + +clean-css@^4.2.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" + integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.1, color@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" + integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.4" + +colorette@^1.2.1, colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + +commander@^2.19.0, commander@^2.2.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commander@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-emitter@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +condense-newlines@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8= + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +connect-history-api-fallback@^1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +connect@3.6.6: + version "3.6.6" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" + integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= + dependencies: + debug "2.6.9" + finalhandler "1.1.0" + parseurl "~1.3.2" + utils-merge "1.0.1" + +constantinople@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-4.0.1.tgz#0def113fa0e4dc8de83331a5cf79c8b325213151" + integrity sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw== + dependencies: + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.1" + +cookie@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cross-env@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + +cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + 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" + +cross-spawn@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-color-names@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" + integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== + +css-declaration-sorter@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.0.0.tgz#eb21f75860078627e9e3cc6f5535ccfcea445817" + integrity sha512-S0TE4E0ha5+tBHdLWPc5n+S8E4dFBS5xScPvgHkLNZwWvX4ISoFGhGeerLC9uS1cKA/sC+K2wHq6qEbcagT/fg== + dependencies: + timsort "^0.3.0" + +css-select@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" + integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== + dependencies: + boolbase "^1.0.0" + css-what "^4.0.0" + domhandler "^4.0.0" + domutils "^2.4.3" + nth-check "^2.0.0" + +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-unit-converter@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.2.tgz#4c77f5a1954e6dbff60695ecb214e3270436ab21" + integrity sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA== + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css-what@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" + integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.0.0.tgz#94c03ecc1cb47ecdc23c0aea3ca05170ebbb7e33" + integrity sha512-zsLppqF7PxY6Tk+ghVx8djf4o1jIOu2GNufqy9lMxldt7gGpSy3FQ6jn7FCd5DZWCaBa7A/1/HVh8CK3BdFSJg== + dependencies: + css-declaration-sorter "6.0.0" + cssnano-utils "^2.0.0" + postcss-calc "^8.0.0" + postcss-colormin "^5.0.0" + postcss-convert-values "^5.0.0" + postcss-discard-comments "^5.0.0" + postcss-discard-duplicates "^5.0.0" + postcss-discard-empty "^5.0.0" + postcss-discard-overridden "^5.0.0" + postcss-merge-longhand "^5.0.0" + postcss-merge-rules "^5.0.0" + postcss-minify-font-values "^5.0.0" + postcss-minify-gradients "^5.0.0" + postcss-minify-params "^5.0.0" + postcss-minify-selectors "^5.0.0" + postcss-normalize-charset "^5.0.0" + postcss-normalize-display-values "^5.0.0" + postcss-normalize-positions "^5.0.0" + postcss-normalize-repeat-style "^5.0.0" + postcss-normalize-string "^5.0.0" + postcss-normalize-timing-functions "^5.0.0" + postcss-normalize-unicode "^5.0.0" + postcss-normalize-url "^5.0.0" + postcss-normalize-whitespace "^5.0.0" + postcss-ordered-values "^5.0.0" + postcss-reduce-initial "^5.0.0" + postcss-reduce-transforms "^5.0.0" + postcss-svgo "^5.0.0" + postcss-unique-selectors "^5.0.0" + +cssnano-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.0.tgz#b04baaa312aa3dd5a854b7f61d76b9d94be07f74" + integrity sha512-xvxmTszdrvSyTACdPe8VU5J6p4sm3egpgw54dILvNqt5eBUv6TFjACLhSxtRuEsxYrgy8uDy269YjScO5aKbGA== + +cssnano@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.1.tgz#ed4822c4a9212f22f6820717859c52a6b7f9cf5c" + integrity sha512-5WubEmKcK2cqw43DUAayRBiIlTdX7iX3ZowrWDVxSVcW3hyohVnbJ4K4mbnWtJp5rfJnUwHg5H4mDAGzmuCM3g== + dependencies: + cosmiconfig "^7.0.0" + cssnano-preset-default "^5.0.0" + is-resolvable "^1.1.0" + +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +date-fns@^2.21.0: + version "2.21.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.21.0.tgz#4672b8e926d1b37d5353dc14da44b883481ac927" + integrity sha512-lbAFpaKz7QuVxm6m1rmioh4BB2gmLx1r1JMYXU2A/ufT5ly4zEG7HYH4fvS/QfbdyC5rkYyiS30mYz4Q7XCO+w== + +date-time@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/date-time/-/date-time-0.1.1.tgz#ed2f6d93d9790ce2fd66d5b5ff3edd5bbcbf3b07" + integrity sha1-7S9tk9l5DOL9ZtW1/z7dW7y/Owc= + +debug@2.6.9, debug@^2.2.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4.3.1, debug@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + +del@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag= + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +dependency-graph@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" + integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== + +dependency-graph@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.9.0.tgz#11aed7e203bc8b00f48356d92db27b265c445318" + integrity sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w== + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detective@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" + integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== + dependencies: + acorn-node "^1.6.1" + defined "^1.0.0" + minimist "^1.1.1" + +dev-ip@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0" + integrity sha1-p2o+0YVb56ASu4rBbLgPPADcKPA= + +didyoumean@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.1.tgz#e92edfdada6537d484d73c0172fd1eba0c4976ff" + integrity sha1-6S7f2tplN9SE1zwBcv0eugxJdv8= + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +doctypes@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" + integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk= + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@^1.0.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" + integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + entities "^2.0.0" + +dom-serializer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domhandler@^4.0.0, domhandler@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.1.0.tgz#c1d8d494d5ec6db22de99e46a149c2a4d23ddd43" + integrity sha512-/6/kmsGlMY4Tup/nGVutdrK9yQi4YjWVcVeoQmixpzjOUK1U7pQkvAPHBJeUxOgxF0J8f8lwCJSlCfD0V4CMGQ== + dependencies: + domelementtype "^2.2.0" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^2.4.3: + version "2.5.2" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.5.2.tgz#37ef8ba087dff1a17175e7092e8a042e4b050e6c" + integrity sha512-MHTthCb1zj8f1GVfRpeZUbohQf/HdBos0oX5gZcQFepOZPLLRyj6Wn7XS7EMnY7CVpwv8863u2vyE83Hfu28HQ== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.1.0" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +easy-extender@^2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/easy-extender/-/easy-extender-2.3.4.tgz#298789b64f9aaba62169c77a2b3b64b4c9589b8f" + integrity sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q== + dependencies: + lodash "^4.17.10" + +eazy-logger@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eazy-logger/-/eazy-logger-3.1.0.tgz#b169eb56df714608fa114f164c8a2956bec9f0f3" + integrity sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ== + dependencies: + tfunk "^4.0.0" + +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.7.4: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-to-chromium@^1.3.712: + version "1.3.715" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.715.tgz#8fd002e79c13d711133565600f40cd80abfe5d55" + integrity sha512-VCWxo9RqTYhcCsHtG+l0TEOS6H5QmO1JyVCQB9nv8fllmAzj1VcCYH3qBCXP75/En6FeoepefnogLPE+5W7OiQ== + +emitter-mixin@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/emitter-mixin/-/emitter-mixin-0.0.3.tgz#5948cb286f2e48edc3b251a7cfc1f7883396d65c" + integrity sha1-WUjLKG8uSO3DslGnz8H3iDOW1lw= + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.1, encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +engine.io-client@~3.5.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.1.tgz#b500458a39c0cd197a921e0e759721a746d0bdb9" + integrity sha512-oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ== + dependencies: + component-emitter "~1.3.0" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.2.0" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.6" + parseuri "0.0.6" + ws "~7.4.2" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" + integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.4" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.5.0.tgz#9d6b985c8a39b1fe87cd91eb014de0552259821b" + integrity sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA== + dependencies: + accepts "~1.3.4" + base64id "2.0.0" + cookie "~0.4.1" + debug "~4.1.0" + engine.io-parser "~2.2.0" + ws "~7.4.2" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + +entities@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== + +errno@^0.1.2: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.18.0-next.2: + version "1.18.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" + integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.2" + is-string "^1.0.5" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +etag@1.8.1, etag@^1.8.1, etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +fast-glob@^3.1.1, fast-glob@^3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" + integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fastq@^1.6.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" + integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== + dependencies: + reusify "^1.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" + integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +follow-redirects@^1.0.0, follow-redirects@^1.10.0: + version "1.13.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" + integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== + +fraction.js@^4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.0.13.tgz#3c1c315fa16b35c85fffa95725a36fa729c69dfe" + integrity sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA== + +fresh@0.5.2, fresh@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-extra@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" + integrity sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.0, fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-stdin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + +glob-parent@^5.1.0, glob-parent@~5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globby@^11.0.0: + version "11.0.3" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" + integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0= + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +gray-matter@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.2.tgz#9aa379e3acaf421193fce7d2a28cebd4518ac454" + integrity sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw== + dependencies: + js-yaml "^3.11.0" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + +hamljs@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/hamljs/-/hamljs-0.6.2.tgz#7b7116cf6dbe7278e42b3f6ef8725a33e177c8e3" + integrity sha1-e3EWz22+cnjkKz9u+HJaM+F3yOM= + +handlebars@^4.7.7: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-color@~0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8= + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-minifier@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56" + integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig== + dependencies: + camel-case "^3.0.0" + clean-css "^4.2.1" + commander "^2.19.0" + he "^1.2.0" + param-case "^2.1.1" + relateurl "^0.2.7" + uglify-js "^3.5.1" + +html-tags@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" + integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== + +htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-errors@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +immutable@^3: + version "3.8.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" + integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= + +import-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" + integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== + dependencies: + import-from "^3.0.0" + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" + integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== + dependencies: + resolve-from "^5.0.0" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" + integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" + integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + dependencies: + call-bind "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +is-color-stop@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + +is-expression@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-4.0.0.tgz#c33155962abf21d0afd2552514d67d2ec16fd2ab" + integrity sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A== + dependencies: + acorn "^7.1.1" + object-assign "^4.1.1" + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-like@^1.0.3: + version "1.0.8" + resolved "https://registry.yarnpkg.com/is-number-like/-/is-number-like-1.0.8.tgz#2e129620b50891042e44e9bbbb30593e75cfbbe3" + integrity sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA== + dependencies: + lodash.isfinite "^3.3.2" + +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= + +is-path-in-cwd@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + dependencies: + path-is-inside "^1.0.1" + +is-promise@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.0.3, is-regex@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" + integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.1" + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-resolvable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= + +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +javascript-stringify@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79" + integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg== + +js-beautify@^1.6.12: + version "1.13.11" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.13.11.tgz#3fc59d74d4fcb03268a559220da26f5d8a2d5246" + integrity sha512-+3CW1fQqkV7aXIvprevNYfSrKrASQf02IstAZCVSNh+/IS5ciaOtE7erfjyowdMYZZmP2A7SMFkcJ28qCl84+A== + dependencies: + config-chain "^1.1.12" + editorconfig "^0.15.3" + glob "^7.1.3" + mkdirp "^1.0.4" + nopt "^5.0.0" + +js-stringify@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" + integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.11.0: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +jsonfile@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" + integrity sha1-pezG9l9T9mLEQVx2daAzHQmS7GY= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jstransformer@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" + integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM= + dependencies: + is-promise "^2.0.0" + promise "^7.0.1" + +junk@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/junk/-/junk-1.0.3.tgz#87be63488649cbdca6f53ab39bec9ccd2347f592" + integrity sha1-h75jSIZJy9ym9Tqzm+yczSNH9ZI= + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +limiter@^1.0.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2" + integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +linkify-it@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== + dependencies: + uc.micro "^1.0.1" + +linkify-it@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8" + integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ== + dependencies: + uc.micro "^1.0.1" + +liquidjs@^6.4.3: + version "6.4.3" + resolved "https://registry.yarnpkg.com/liquidjs/-/liquidjs-6.4.3.tgz#c7caf7a3f6c87dc6a22a5a351328cf8f7298c243" + integrity sha512-m1xSB10Ncu22NR3X0xdaqu/GvP1xadDCFYGqGgd6me8DAWjyA68BKE5DHJmSxw1CGsWPsX+Hj2v/87J2w/LvMQ== + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +localtunnel@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-2.0.1.tgz#8f7c593f3005647f7675e6e69af9bf746571a631" + integrity sha512-LiaI5wZdz0xFkIQpXbNI62ZnNn8IMsVhwxHmhA+h4vj8R9JG/07bQHWwQlyy7b95/5fVOCHJfIHv+a5XnkvaJA== + dependencies: + axios "0.21.1" + debug "4.3.1" + openurl "1.1.1" + yargs "16.2.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.castarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" + integrity sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU= + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + +lodash.forown@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.forown/-/lodash.forown-4.4.0.tgz#85115cf04f73ef966eced52511d3893cc46683af" + integrity sha1-hRFc8E9z75ZuztUlEdOJPMRmg68= + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.groupby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" + integrity sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E= + +lodash.isfinite@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz#fb89b65a9a80281833f0b7478b3a5104f898ebb3" + integrity sha1-+4m2WpqAKBgz8LdHizpRBPiY67M= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= + +lodash.topath@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.topath/-/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009" + integrity sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.19, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +luxon@^1.26.0: + version "1.26.0" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.26.0.tgz#d3692361fda51473948252061d0f8561df02b578" + integrity sha512-+V5QIQ5f6CDXQpWNICELwjwuHdqeJM1UenlZWx5ujcRMc9venvluCjFb4t5NYLhb6IhkbMVOxzVuOqkgMxee2A== + +map-cache@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +markdown-it-anchor@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-7.1.0.tgz#30fb21497bf59e83ff4d1ddc052d821962e2489e" + integrity sha512-loQggrwsIkkP7TOrESvmYkV2ikbQNNKhHcWyqC7/C2CmfHl1tkUizJJU8C5aGgg7J6oXVQJx17gk7i47tNn/lQ== + +markdown-it-link-attributes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/markdown-it-link-attributes/-/markdown-it-link-attributes-3.0.0.tgz#12d6f403102ac22695ee2617bec109ee79426e45" + integrity sha512-B34ySxVeo6MuEGSPCWyIYryuXINOvngNZL87Mp7YYfKIf6DcD837+lXA8mo6EBbauKsnGz22ZH0zsbOiQRWTNg== + +markdown-it@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc" + integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg== + dependencies: + argparse "^1.0.7" + entities "~2.0.0" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +markdown-it@^12.0.4: + version "12.0.4" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.0.4.tgz#eec8247d296327eac3ba9746bdeec9cfcc751e33" + integrity sha512-34RwOXZT8kyuOJy25oJNJoulO8L0bTHYWXcdZBYZqFnjIy3NgjeoM3FmPXIOFQ26/lSHYMr8oc62B6adxXcb3Q== + dependencies: + argparse "^2.0.1" + entities "~2.1.0" + linkify-it "^3.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + +maximatch@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/maximatch/-/maximatch-0.1.0.tgz#86cd8d6b04c9f307c05a6b9419906d0360fb13a2" + integrity sha1-hs2NawTJ8wfAWmuUGZBtA2D7E6I= + dependencies: + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.2: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +mime-db@1.47.0: + version "1.47.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" + integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + +mime-types@~2.1.17, mime-types@~2.1.24: + version "2.1.30" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" + integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== + dependencies: + mime-db "1.47.0" + +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.1, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mitt@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.2.0.tgz#cb24e6569c806e31bd4e3995787fe38a04fdf90d" + integrity sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw== + +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +modern-normalize@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/modern-normalize/-/modern-normalize-1.0.0.tgz#539d84a1e141338b01b346f3e27396d0ed17601e" + integrity sha512-1lM+BMLGuDfsdwf3rsgBSrxJwAZHFIrQ8YR61xIqdHo0uNKI9M52wNpHSrliZATJp51On6JD0AfRxd4YGSU0lw== + +moo@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" + integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multimatch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" + integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + +mustache@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5" + integrity sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ== + +nanoid@^3.1.22: + version "3.1.22" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" + integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ== + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +node-emoji@^1.8.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" + integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== + dependencies: + lodash.toarray "^4.4.0" + +node-releases@^1.1.71: + version "1.1.71" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" + integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +npm-run-all@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== + dependencies: + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" + memorystream "^0.3.1" + minimatch "^3.0.4" + pidtree "^0.3.0" + read-pkg "^3.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + +nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +nunjucks@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.3.tgz#1b33615247290e94e28263b5d855ece765648a31" + integrity sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ== + dependencies: + a-sync-waterfall "^1.0.0" + asap "^2.0.3" + commander "^5.1.0" + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-hash@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.1.1.tgz#9447d0279b4fcf80cff3259bf66a1dc73afabe09" + integrity sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ== + +object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +openurl@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/openurl/-/openurl-1.1.1.tgz#3875b4b0ef7a52c156f0db41d4609dbb0f94b387" + integrity sha1-OHW0sO96UsFW8NtB1GCduw+Us4c= + +opn@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" + integrity sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g== + dependencies: + is-wsl "^1.1.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +param-case@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-filepath@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-ms@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-0.1.2.tgz#dd3fa25ed6c2efc7bdde12ad9b46c163aa29224e" + integrity sha1-3T+iXtbC78e93hKtm0bBY6opIk4= + +parse5@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== + dependencies: + "@types/node" "*" + +parseqs@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" + integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== + +parseuri@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" + integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== + +parseurl@~1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= + dependencies: + path-root-regex "^0.1.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" + integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== + +pidtree@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" + integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +please-upgrade-node@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== + dependencies: + semver-compare "^1.0.0" + +portscanner@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-2.1.1.tgz#eabb409e4de24950f5a2a516d35ae769343fbb96" + integrity sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y= + dependencies: + async "1.5.2" + is-number-like "^1.0.3" + +postcss-calc@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.0.0.tgz#a05b87aacd132740a5db09462a3612453e5df90a" + integrity sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g== + dependencies: + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-cli@^8.3.1: + version "8.3.1" + resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-8.3.1.tgz#865dad08300ac59ae9cecb7066780aa81c767a77" + integrity sha512-leHXsQRq89S3JC9zw/tKyiVV2jAhnfQe0J8VI4eQQbUjwIe0XxVqLrR+7UsahF1s9wi4GlqP6SJ8ydf44cgF2Q== + dependencies: + chalk "^4.0.0" + chokidar "^3.3.0" + dependency-graph "^0.9.0" + fs-extra "^9.0.0" + get-stdin "^8.0.0" + globby "^11.0.0" + postcss-load-config "^3.0.0" + postcss-reporter "^7.0.0" + pretty-hrtime "^1.0.3" + read-cache "^1.0.0" + slash "^3.0.0" + yargs "^16.0.0" + +postcss-colormin@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.0.0.tgz#283b8934c8bdbc531e7648aeb0970107f6d06d0e" + integrity sha512-Yt84+5V6CgS/AhK7d7MA58vG8dSZ7+ytlRtWLaQhag3HXOncTfmYpuUOX4cDoXjvLfw1sHRCHMiBjYhc35CymQ== + dependencies: + browserslist "^4.16.0" + color "^3.1.1" + postcss-value-parser "^4.1.0" + +postcss-convert-values@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.0.tgz#cd77e1d23ebe8fcf508640551eed08e232784cba" + integrity sha512-V5kmYm4xoBAjNs+eHY/6XzXJkkGeg4kwNf2ocfqhLb1WBPEa4oaSmoi1fnVO7Dkblqvus9h+AenDvhCKUCK7uQ== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-discard-comments@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.0.tgz#6c27310e0657c0b9e38a6175ad001b5aa28964bc" + integrity sha512-Umig6Gxs8m20RihiXY6QkePd6mp4FxkA1Dg+f/Kd6uw0gEMfKRjDeQOyFkLibexbJJGHpE3lrN/Q0R9SMrUMbQ== + +postcss-discard-duplicates@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.0.tgz#6a2c4f779e8d20da6781e90730f234f9e650c51c" + integrity sha512-vEJJ+Y3pFUnO1FyCBA6PSisGjHtnphL3V6GsNvkASq/VkP3OX5/No5RYXXLxHa2QegStNzg6HYrYdo71uR4caQ== + +postcss-discard-empty@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.0.tgz#0f0a9baee415f5f7be4ae046ba235e98626ba821" + integrity sha512-+wigy099Y1xZxG36WG5L1f2zeH1oicntkJEW4TDIqKKDO2g9XVB3OhoiHTu08rDEjLnbcab4rw0BAccwi2VjiQ== + +postcss-discard-overridden@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.0.tgz#ac00f695a60001eda52135a11fac87376b8da9ee" + integrity sha512-hybnScTaZM2iEA6kzVQ6Spozy7kVdLw+lGw8hftLlBEzt93uzXoltkYp9u0tI8xbfhxDLTOOzHsHQCkYdmzRUg== + +postcss-functions@^3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-3.0.0.tgz#0e94d01444700a481de20de4d55fb2640564250e" + integrity sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4= + dependencies: + glob "^7.1.2" + object-assign "^4.1.1" + postcss "^6.0.9" + postcss-value-parser "^3.3.0" + +postcss-js@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-3.0.3.tgz#2f0bd370a2e8599d45439f6970403b5873abda33" + integrity sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw== + dependencies: + camelcase-css "^2.0.1" + postcss "^8.1.6" + +postcss-load-config@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.0.1.tgz#d214bf9cfec1608ffaf0f4161b3ba20664ab64b9" + integrity sha512-/pDHe30UYZUD11IeG8GWx9lNtu1ToyTsZHnyy45B4Mrwr/Kb6NgYl7k753+05CJNKnjbwh4975amoPJ+TEjHNQ== + dependencies: + cosmiconfig "^7.0.0" + import-cwd "^3.0.0" + +postcss-merge-longhand@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.0.tgz#103dee28c55491df727f17d7b8e91e93e7a472ee" + integrity sha512-VZNFA40K8BYHzJNA6jHPdg1Nofsz/nK5Dkszrcb5IgWcLroSBZOD6I/iNQzpejSU/3XwpOiZNaYAdBV4KcvxWA== + dependencies: + css-color-names "^1.0.1" + postcss-value-parser "^4.1.0" + stylehacks "^5.0.0" + +postcss-merge-rules@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.0.tgz#e0d0c0d45c98376f4adb49eb1f1dfe2aebfd7048" + integrity sha512-TfsXbKjNYCGfUPEXGIGPySnMiJbdS+3gcVeV8gwmJP4RajyKZHW8E0FYDL1WmggTj3hi+m+WUCAvqRpX2ut4Kg== + dependencies: + browserslist "^4.16.0" + caniuse-api "^3.0.0" + cssnano-utils "^2.0.0" + postcss-selector-parser "^6.0.4" + vendors "^1.0.3" + +postcss-minify-font-values@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.0.tgz#fee5d0fa192fae8757cb744870a0ad02be5f402e" + integrity sha512-zi2JhFaMOcIaNxhndX5uhsqSY1rexKDp23wV8EOmC9XERqzLbHsoRye3aYF716Zm+hkcR4loqKDt8LZlmihwAg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-minify-gradients@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.0.tgz#95dbe61567a45c0cd7ab897d78fb65d5096844ed" + integrity sha512-/jPtNgs6JySMwgsE5dPOq8a2xEopWTW3RyqoB9fLqxgR+mDUNLSi7joKd+N1z7FXWgVkc4l/dEBMXHgNAaUbvg== + dependencies: + cssnano-utils "^2.0.0" + is-color-stop "^1.1.0" + postcss-value-parser "^4.1.0" + +postcss-minify-params@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.0.tgz#12c7f75d69b0b4827fafbd6649970a53784a9c24" + integrity sha512-KvZYIxTPBVKjdd+XgObq9A+Sfv8lMkXTpbZTsjhr42XbfWIeLaTItMlygsDWfjArEc3muUfDaUFgNSeDiJ5jug== + dependencies: + alphanum-sort "^1.0.2" + browserslist "^4.16.0" + cssnano-utils "^2.0.0" + postcss-value-parser "^4.1.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.0.0.tgz#d3e43d97fd0ba83ba0010950fc5acfa420f7caa9" + integrity sha512-cEM0O0eWwFIvmo6nfB0lH0vO/XFwgqIvymODbfPXZ1gTA3i76FKnb7TGUrEpiTxaXH6tgYQ6DcTHwRiRS+YQLQ== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^3.1.2" + +postcss-nested@5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.5.tgz#f0a107d33a9fab11d7637205f5321e27223e3603" + integrity sha512-GSRXYz5bccobpTzLQZXOnSOfKl6TwVr5CyAQJUPub4nuRJSOECK5AqurxVgmtxP48p0Kc/ndY/YyS1yqldX0Ew== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-normalize-charset@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.0.tgz#59e1fe2094fb2e3371cc5b054cbc39828a41a710" + integrity sha512-pqsCkgo9KmQP0ew6DqSA+uP9YN6EfsW20pQ3JU5JoQge09Z6Too4qU0TNDsTNWuEaP8SWsMp+19l15210MsDZQ== + +postcss-normalize-display-values@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.0.tgz#4ff2d3b3b5146a366de28ec9e24131a1868f1933" + integrity sha512-t4f2d//gH1f7Ns0Jq3eNdnWuPT7TeLuISZ6RQx4j8gpl5XrhkdshdNcOnlrEK48YU6Tcb6jqK7dorME3N4oOGA== + dependencies: + cssnano-utils "^2.0.0" + postcss-value-parser "^4.1.0" + +postcss-normalize-positions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.0.tgz#fe1d9a8122dd385b9c6908bd2008140dea17750d" + integrity sha512-0o6/qU5ky74X/eWYj/tv4iiKCm3YqJnrhmVADpIMNXxzFZywsSQxl8F7cKs8jQEtF3VrJBgcDHTexZy1zgDoYg== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-repeat-style@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.0.tgz#e11d88fbf63f89179c6a7391853b2fe7f46e589d" + integrity sha512-KRT14JbrXKcFMYuc4q7lh8lvv8u22wLyMrq+UpHKLtbx2H/LOjvWXYdoDxmNrrrJzomAWL+ViEXr48/IhSUJnQ== + dependencies: + cssnano-utils "^2.0.0" + postcss-value-parser "^4.1.0" + +postcss-normalize-string@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.0.tgz#2ea08ff4cb8817ce160755e9fdc7e6ef6d495002" + integrity sha512-wSO4pf7GNcDZpmelREWYADF1+XZWrAcbFLQCOqoE92ZwYgaP/RLumkUTaamEzdT2YKRZAH8eLLKGWotU/7FNPw== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-normalize-timing-functions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.0.tgz#380eb1c9b179f96efc307c659a8049116f16f381" + integrity sha512-TwPaDX+wl9wO3MUm23lzGmOzGCGKnpk+rSDgzB2INpakD5dgWR3L6bJq1P1LQYzBAvz8fRIj2NWdnZdV4EV98Q== + dependencies: + cssnano-utils "^2.0.0" + postcss-value-parser "^4.1.0" + +postcss-normalize-unicode@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.0.tgz#aa46a89c86ae51a01cbca13e73c1ed7b0b38807e" + integrity sha512-2CpVoz/67rXU5s9tsPZDxG1YGS9OFHwoY9gsLAzrURrCxTAb0H7Vp87/62LvVPgRWTa5ZmvgmqTp2rL8tlm72A== + dependencies: + browserslist "^4.16.0" + postcss-value-parser "^4.1.0" + +postcss-normalize-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.0.tgz#626a4c7d30007f94466cdf245e7ed9f253f1dbd9" + integrity sha512-ICDaGFBqLgA3dlrCIRuhblLl80D13YtgEV9NJPTYJtgR72vu61KgxAHv+z/lKMs1EbwfSQa3ALjOFLSmXiE34A== + dependencies: + is-absolute-url "^3.0.3" + normalize-url "^4.5.0" + postcss-value-parser "^4.1.0" + +postcss-normalize-whitespace@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.0.tgz#1faf147a4f8d3d93a3c75109d120b4eefa00589b" + integrity sha512-KRnxQvQAVkJfaeXSz7JlnD9nBN9sFZF9lrk9452Q2uRoqrRSkinqifF8Iex7wZGei2DZVG/qpmDFDmRvbNAOGA== + dependencies: + postcss-value-parser "^4.1.0" + +postcss-ordered-values@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.0.tgz#a50f224c5f40c566b338b0663655478737dcebee" + integrity sha512-dPr+SRObiHueCIc4IUaG0aOGQmYkuNu50wQvdXTGKy+rzi2mjmPsbeDsheLk5WPb9Zyf2tp8E+I+h40cnivm6g== + dependencies: + cssnano-utils "^2.0.0" + postcss-value-parser "^4.1.0" + +postcss-reduce-initial@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.0.tgz#c724e5513b0ae7f3d7bff16f0fc82133fb2f820a" + integrity sha512-wR6pXUaFbSMG1oCKx8pKVA+rnSXCHlca5jMrlmkmif+uig0HNUTV9oGN5kjKsM3mATQAldv2PF9Tbl2vqLFjnA== + dependencies: + browserslist "^4.16.0" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.0.tgz#5c820f71fbd4eec82b323523642b7b2d1c7d29ef" + integrity sha512-iHdGODW4YzM3WjVecBhPQt6fpJC4lGQZxJKjkBNHpp2b8dzmvj0ogKThqya+IRodQEFzjfXgYeESkf172FH5Lw== + dependencies: + cssnano-utils "^2.0.0" + postcss-value-parser "^4.1.0" + +postcss-reporter@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-7.0.2.tgz#03e9e7381c1afe40646f9c22e7aeeb860e051065" + integrity sha512-JyQ96NTQQsso42y6L1H1RqHfWH1C3Jr0pt91mVv5IdYddZAE9DUZxuferNgk6q0o6vBVOrfVJb10X1FgDzjmDw== + dependencies: + colorette "^1.2.1" + lodash.difference "^4.5.0" + lodash.forown "^4.4.0" + lodash.get "^4.4.2" + lodash.groupby "^4.6.0" + lodash.sortby "^4.7.0" + +postcss-selector-parser@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + util-deprecate "^1.0.2" + +postcss-svgo@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.0.tgz#c8d806e573394ab24f1e233cac5be4c199e9f1b2" + integrity sha512-M3/VS4sFI1Yp9g0bPL+xzzCNz5iLdRUztoFaugMit5a8sMfkVzzhwqbsOlD8IFFymCdJDmXmh31waYHWw1K4BA== + dependencies: + postcss-value-parser "^4.1.0" + svgo "^2.3.0" + +postcss-unique-selectors@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.0.tgz#17856278f6c38d024defc9694d568bb09dd7f771" + integrity sha512-o9l4pF8SRn7aCMTmzb/kNv/kjV7wPZpZ8Nlb1Gq8v/Qvw969K1wanz1RVA0ehHzWe9+wHXaC2DvZlak/gdMJ5w== + dependencies: + alphanum-sort "^1.0.2" + postcss-selector-parser "^6.0.2" + uniqs "^2.0.0" + +postcss-value-parser@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss@^6.0.9: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^8.1.6, postcss@^8.2.1, postcss@^8.2.10: + version "8.2.10" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.10.tgz#ca7a042aa8aff494b334d0ff3e9e77079f6f702b" + integrity sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw== + dependencies: + colorette "^1.2.2" + nanoid "^3.1.22" + source-map "^0.6.1" + +prettier@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== + +pretty-hrtime@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= + +pretty-ms@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-0.2.2.tgz#da879a682ff33a37011046f13d627f67c73b84f6" + integrity sha1-2oeaaC/zOjcBEEbxPWJ/Z8c7hPY= + dependencies: + parse-ms "^0.1.0" + +pretty@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU= + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + +promise@^7.0.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +pug-attrs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-3.0.0.tgz#b10451e0348165e31fad1cc23ebddd9dc7347c41" + integrity sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA== + dependencies: + constantinople "^4.0.1" + js-stringify "^1.0.2" + pug-runtime "^3.0.0" + +pug-code-gen@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-3.0.2.tgz#ad190f4943133bf186b60b80de483100e132e2ce" + integrity sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg== + dependencies: + constantinople "^4.0.1" + doctypes "^1.1.0" + js-stringify "^1.0.2" + pug-attrs "^3.0.0" + pug-error "^2.0.0" + pug-runtime "^3.0.0" + void-elements "^3.1.0" + with "^7.0.0" + +pug-error@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-2.0.0.tgz#5c62173cb09c34de2a2ce04f17b8adfec74d8ca5" + integrity sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ== + +pug-filters@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-4.0.0.tgz#d3e49af5ba8472e9b7a66d980e707ce9d2cc9b5e" + integrity sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A== + dependencies: + constantinople "^4.0.1" + jstransformer "1.0.0" + pug-error "^2.0.0" + pug-walk "^2.0.0" + resolve "^1.15.1" + +pug-lexer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-5.0.1.tgz#ae44628c5bef9b190b665683b288ca9024b8b0d5" + integrity sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w== + dependencies: + character-parser "^2.2.0" + is-expression "^4.0.0" + pug-error "^2.0.0" + +pug-linker@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-4.0.0.tgz#12cbc0594fc5a3e06b9fc59e6f93c146962a7708" + integrity sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw== + dependencies: + pug-error "^2.0.0" + pug-walk "^2.0.0" + +pug-load@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-3.0.0.tgz#9fd9cda52202b08adb11d25681fb9f34bd41b662" + integrity sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ== + dependencies: + object-assign "^4.1.1" + pug-walk "^2.0.0" + +pug-parser@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-6.0.0.tgz#a8fdc035863a95b2c1dc5ebf4ecf80b4e76a1260" + integrity sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw== + dependencies: + pug-error "^2.0.0" + token-stream "1.0.0" + +pug-runtime@^3.0.0, pug-runtime@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-3.0.1.tgz#f636976204723f35a8c5f6fad6acda2a191b83d7" + integrity sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg== + +pug-strip-comments@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz#f94b07fd6b495523330f490a7f554b4ff876303e" + integrity sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ== + dependencies: + pug-error "^2.0.0" + +pug-walk@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-2.0.0.tgz#417aabc29232bb4499b5b5069a2b2d2a24d5f5fe" + integrity sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ== + +pug@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/pug/-/pug-3.0.2.tgz#f35c7107343454e43bc27ae0ff76c731b78ea535" + integrity sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw== + dependencies: + pug-code-gen "^3.0.2" + pug-filters "^4.0.0" + pug-lexer "^5.0.1" + pug-linker "^4.0.0" + pug-load "^3.0.0" + pug-parser "^6.0.0" + pug-runtime "^3.0.1" + pug-strip-comments "^2.0.0" + +purgecss@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-3.1.3.tgz#26987ec09d12eeadc318e22f6e5a9eb0be094f41" + integrity sha512-hRSLN9mguJ2lzlIQtW4qmPS2kh6oMnA9RxdIYK8sz18QYqd6ePp4GNDl18oWHA1f2v2NEQIh51CO8s/E3YGckQ== + dependencies: + commander "^6.0.0" + glob "^7.0.0" + postcss "^8.2.1" + postcss-selector-parser "^6.0.2" + +qs@6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" + integrity sha1-HPyyXBCpsrSDBT/zn138kjOQjP4= + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +range-parser@~1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@^2.3.2: + version "2.4.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= + dependencies: + pify "^2.3.0" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +readable-stream@^3.1.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +recursive-copy@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/recursive-copy/-/recursive-copy-2.0.11.tgz#7ed3c0f4b6bb0ffda7cab62bf865a82f5a391c39" + integrity sha512-DqL2kO10mUne7XK5BPcwRtOJJZKhddD7IrW4UmHmKrwdV3HLPWcw6Jr4Jh12ooddfJOVz7ynFoFYYnPM7De0Og== + dependencies: + del "^2.2.0" + emitter-mixin "0.0.3" + errno "^0.1.2" + graceful-fs "^4.1.4" + junk "^1.0.1" + maximatch "^0.1.0" + mkdirp "^0.5.1" + pify "^2.3.0" + promise "^7.0.1" + slash "^1.0.0" + +reduce-css-calc@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz#7ef8761a28d614980dc0c982f772c93f7a99de03" + integrity sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg== + dependencies: + css-unit-converter "^1.1.1" + postcss-value-parser "^3.3.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve@^1.10.0, resolve@^1.15.1, resolve@^1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +resp-modifier@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/resp-modifier/-/resp-modifier-6.0.2.tgz#b124de5c4fbafcba541f48ffa73970f4aa456b4f" + integrity sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08= + dependencies: + debug "^2.2.0" + minimatch "^3.0.2" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@^2.2.8: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rx@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= + +rxjs@^5.5.6: + version "5.5.12" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" + integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw== + dependencies: + symbol-observable "1.0.1" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.3.4: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + +serve-index@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + +server-destroy@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" + integrity sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0= + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.6.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slugify@^1.4.7: + version "1.5.0" + resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.5.0.tgz#5f3c8e2a84105b54eb51486db1b468a599b3c9b8" + integrity sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA== + +socket.io-adapter@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== + +socket.io-client@2.4.0, socket.io-client@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" + integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "~1.3.0" + debug "~3.1.0" + engine.io-client "~3.5.0" + has-binary2 "~1.0.2" + indexof "0.0.1" + parseqs "0.0.6" + parseuri "0.0.6" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" + integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== + dependencies: + component-emitter "~1.3.0" + debug "~3.1.0" + isarray "2.0.1" + +socket.io-parser@~3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" + integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== + dependencies: + component-emitter "1.2.1" + debug "~4.1.0" + isarray "2.0.1" + +socket.io@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.4.0.tgz#01030a2727bd8eb2e85ea96d69f03692ee53d47e" + integrity sha512-9UPJ1UTvKayuQfVv2IQ3k7tCQC/fboDyIK62i99dAQIyHKaBsNdTpwHLgKJ6guRWxRtC9H+138UwpaGuQO9uWQ== + dependencies: + debug "~4.1.0" + engine.io "~3.5.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.4.0" + socket.io-parser "~3.4.0" + +source-map@^0.6.1, source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= + +statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== + +stream-throttle@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/stream-throttle/-/stream-throttle-0.1.3.tgz#add57c8d7cc73a81630d31cd55d3961cfafba9c3" + integrity sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM= + dependencies: + commander "^2.2.0" + limiter "^1.0.5" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.padend@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz#6858ca4f35c5268ebd5e8615e1327d55f59ee311" + integrity sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +stylehacks@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.0.tgz#c49b0b2cf9917fe37dc030b96a4c34698b932933" + integrity sha512-QOWm6XivDLb+fqffTZP8jrmPmPITVChl2KCY2R05nsCWwLi3VGhCdVc3IVGNwd1zzTt1jPd67zIKjpQfxzQZeA== + dependencies: + browserslist "^4.16.0" + postcss-selector-parser "^6.0.4" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0, supports-color@^5.4.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +svgo@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.3.0.tgz#6b3af81d0cbd1e19c83f5f63cec2cb98c70b5373" + integrity sha512-fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q== + dependencies: + "@trysound/sax" "0.1.1" + chalk "^4.1.0" + commander "^7.1.0" + css-select "^3.1.2" + css-tree "^1.1.2" + csso "^4.2.0" + stable "^0.1.8" + +symbol-observable@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" + integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= + +tailwindcss@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-2.1.1.tgz#642f6038c9283a8e1454da34585b8b7c1a1e8877" + integrity sha512-zZ6axGqpSZOCBS7wITm/WNHkBzDt5CIZlDlx0eCVldwTxFPELCVGbgh7Xpb3/kZp3cUxOmK7bZUjqhuMrbN6xQ== + dependencies: + "@fullhuman/postcss-purgecss" "^3.1.3" + bytes "^3.0.0" + chalk "^4.1.0" + chokidar "^3.5.1" + color "^3.1.3" + detective "^5.2.0" + didyoumean "^1.2.1" + dlv "^1.1.3" + fast-glob "^3.2.5" + fs-extra "^9.1.0" + html-tags "^3.1.0" + lodash "^4.17.21" + lodash.topath "^4.5.2" + modern-normalize "^1.0.0" + node-emoji "^1.8.1" + normalize-path "^3.0.0" + object-hash "^2.1.1" + parse-glob "^3.0.4" + postcss-functions "^3" + postcss-js "^3.0.3" + postcss-nested "5.0.5" + postcss-selector-parser "^6.0.4" + postcss-value-parser "^4.1.0" + pretty-hrtime "^1.0.3" + quick-lru "^5.1.1" + reduce-css-calc "^2.1.8" + resolve "^1.20.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +tfunk@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tfunk/-/tfunk-4.0.0.tgz#de9399feaf2060901d590b7faad80fcd5443077e" + integrity sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ== + dependencies: + chalk "^1.1.3" + dlv "^1.1.3" + +time-require@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/time-require/-/time-require-0.1.2.tgz#f9e12cb370fc2605e11404582ba54ef5ca2b2d98" + integrity sha1-+eEss3D8JgXhFARYK6VO9corLZg= + dependencies: + chalk "^0.4.0" + date-time "^0.1.1" + pretty-ms "^0.2.1" + text-table "^0.2.0" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +token-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" + integrity sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ= + +ua-parser-js@^0.7.18: + version "0.7.28" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== + +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +uglify-js@^3.1.4, uglify-js@^3.5.1: + version "3.13.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.4.tgz#592588bb9f47ae03b24916e2471218d914955574" + integrity sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw== + +unbox-primitive@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +util-deprecate@^1.0.1, util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +valid-url@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" + integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vendors@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +void-elements@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" + integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +with@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/with/-/with-7.0.2.tgz#ccee3ad542d25538a7a7a80aad212b9828495bac" + integrity sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w== + dependencies: + "@babel/parser" "^7.9.6" + "@babel/types" "^7.9.6" + assert-never "^1.2.1" + babel-walk "3.0.0-canary-5" + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +ws@~7.4.2: + version "7.4.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" + integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= + +xtend@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.2.2: + version "20.2.7" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" + integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== + +yargs@16.2.0, yargs@^16.0.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk=