From a989125e6e762e8b05c1b7e373ca1a1d51d27ff3 Mon Sep 17 00:00:00 2001 From: m5r Date: Sun, 18 Jul 2021 23:32:45 +0800 Subject: [PATCH] move to webapp --- .babelrc | 8 + .gitignore | 15 +- .travis.yml | 11 + api/.dockerignore | 8 - api/.example.env | 5 - api/.github/workflows/ci.yml | 25 - api/.gitignore | 21 - api/Dockerfile | 13 - api/README.md | 560 - api/package-lock.json | 6852 ------- api/package.json | 61 - api/src/__tests__/controller/sms.test.ts | 60 - api/src/__tests__/entity/user.test.ts | 9 - api/src/config.ts | 20 - api/src/controller/_encryption.ts | 31 - api/src/controller/call.ts | 15 - api/src/controller/sms.ts | 106 - api/src/entity/sms.ts | 36 - api/src/logger.ts | 48 - api/src/router.ts | 15 - api/src/server.ts | 46 - api/tsconfig.json | 29 - app/.expo-shared/assets.json | 6 - app/.gitignore | 13 - app/App.tsx | 24 - app/app.json | 34 - app/assets/fonts/SpaceMono-Regular.ttf | Bin 93252 -> 0 bytes app/assets/images/adaptive-icon.png | Bin 17547 -> 0 bytes app/assets/images/favicon.png | Bin 1466 -> 0 bytes app/assets/images/icon.png | Bin 22380 -> 0 bytes app/assets/images/splash.png | Bin 48478 -> 0 bytes app/babel.config.js | 7 - app/components/EditScreenInfo.tsx | 80 - app/components/StyledText.tsx | 7 - app/components/Themed.tsx | 46 - app/components/__tests__/StyledText-test.js | 10 - app/constants/Colors.ts | 19 - app/constants/Layout.ts | 12 - app/hooks/useCachedResources.ts | 33 - app/hooks/useColorScheme.ts | 8 - app/navigation/BottomTabNavigator.tsx | 78 - app/navigation/LinkingConfiguration.ts | 30 - app/navigation/index.tsx | 37 - app/package-lock.json | 15458 ---------------- app/package.json | 45 - app/screens/NotFoundScreen.tsx | 40 - app/screens/TabOneScreen.tsx | 32 - app/screens/TabTwoScreen.tsx | 57 - app/tsconfig.json | 6 - app/types.tsx | 22 - jest.config.js | 15 + jest/helpers.ts | 109 + jest/setup.ts | 24 + jest/testing-library.ts | 1 + lib/__tests__/session-helpers.ts | 30 + lib/logger.ts | 12 + lib/session-helpers.ts | 184 + lib/utils/cookies.ts | 79 + lib/utils/hkdf.ts | 7 + next-env.d.ts | 3 + next.config.js | 104 + package-lock.json | 11912 ++++++++++++ package.json | 87 + postcss.config.js | 6 + public/robots.txt | 2 + public/static/favicon.ico | Bin 0 -> 15086 bytes .../static/fonts/inter/Inter-italic.var.woff2 | Bin 0 -> 241052 bytes .../static/fonts/inter/Inter-roman.var.woff2 | Bin 0 -> 226100 bytes .../static/illustrations/data-analytics.svg | 5714 ++++++ public/static/illustrations/learn-coding.svg | 386 + public/static/illustrations/support-team.svg | 463 + public/static/logo.svg | 31 + .../pages/__snapshots__/index.tsx.snap | 330 + .../pages/account/settings/index.tsx | 171 + src/__tests__/pages/account/settings/team.tsx | 323 + src/__tests__/pages/api/auth/sign-in.ts | 221 + src/__tests__/pages/api/auth/sign-up.ts | 95 + .../api/subscription/_subscription-created.ts | 164 + .../pages/api/subscription/webhook.ts | 111 + src/__tests__/pages/api/team/invite-member.ts | 90 + src/__tests__/pages/api/user/session.ts | 21 + src/__tests__/pages/api/user/update-user.ts | 112 + src/__tests__/pages/auth/sign-in.tsx | 51 + src/__tests__/pages/index.tsx | 46 + src/__tests__/pages/team/invitation.tsx | 131 + src/components/alert.tsx | 115 + src/components/auth/auth-page.tsx | 224 + src/components/avatar.tsx | 15 + src/components/billing/billing-plans.tsx | 261 + src/components/button.tsx | 58 + src/components/divider.tsx | 9 + src/components/icons.tsx | 5 + src/components/layout/footer.tsx | 84 + src/components/layout/header.tsx | 90 + src/components/layout/index.tsx | 99 + src/components/loading.tsx | 23 + src/components/logo.tsx | 15 + src/components/long-press-handler.tsx | 15 + src/components/modal.tsx | 71 + src/components/outside-alerter.tsx | 33 + src/components/settings/danger-zone.tsx | 110 + src/components/settings/pricing-plans.old.tsx | 215 + .../settings/profile-informations.tsx | 138 + src/components/settings/settings-layout.tsx | 52 + src/components/settings/settings-section.tsx | 26 + src/components/settings/update-password.tsx | 141 + src/components/toggle.tsx | 41 + src/components/welcome/onboarding-layout.tsx | 111 + src/database/_encryption.ts | 33 + src/database/_types.ts | 14 + src/database/customer.ts | 55 + src/database/phone-number.ts | 55 + src/database/sms.ts | 46 + src/database/subscriptions.ts | 151 + src/fonts.css | 17 + src/hooks/use-auth.ts | 66 + src/hooks/use-paddle.ts | 49 + src/hooks/use-request.ts | 22 + src/hooks/use-subscription.ts | 92 + src/hooks/use-user.ts | 52 + src/pages/_app.tsx | 39 + src/pages/_document.tsx | 60 + src/pages/api/_redirect.ts | 6 + src/pages/api/_send-email.ts | 45 + src/pages/api/_types.ts | 4 + src/pages/api/auth/session.ts | 10 + src/pages/api/auth/sign-in.ts | 71 + src/pages/api/auth/sign-up.ts | 94 + src/pages/api/ddd.ts | 21 + src/pages/api/newsletter/_mailchimp.ts | 21 + src/pages/api/newsletter/subscribe.ts | 65 + src/pages/api/queue/fetch-messages.ts | 36 + src/pages/api/queue/insert-messages.ts | 33 + .../subscription/_subscription-cancelled.ts | 93 + .../api/subscription/_subscription-created.ts | 131 + .../_subscription-payment-succeeded.ts | 90 + .../api/subscription/_subscription-updated.ts | 122 + src/pages/api/subscription/update.ts | 88 + src/pages/api/subscription/webhook.ts | 78 + src/pages/api/user/add-phone-number.ts | 52 + src/pages/api/user/delete-user.ts | 71 + src/pages/api/user/list-twilio-numbers.ts | 21 + src/pages/api/user/session.ts | 30 + src/pages/api/user/update-user.ts | 115 + src/pages/auth/forgot-password.tsx | 127 + src/pages/auth/sign-in.tsx | 12 + src/pages/auth/sign-out.tsx | 34 + src/pages/auth/sign-up.tsx | 12 + src/pages/calls.tsx | 37 + src/pages/index.tsx | 268 + src/pages/keypad.tsx | 129 + src/pages/messages.tsx | 83 + src/pages/messages/[recipient].tsx | 83 + src/pages/settings/account.tsx | 57 + src/pages/settings/billing.tsx | 106 + src/pages/settings/index.tsx | 52 + src/pages/welcome/step-one.tsx | 22 + src/pages/welcome/step-three.tsx | 107 + src/pages/welcome/step-two.tsx | 104 + src/session-context.tsx | 105 + src/subscription/_paddle-api.ts | 51 + src/subscription/plans.ts | 61 + src/supabase/client.ts | 10 + src/supabase/server.ts | 11 + src/tailwind.css | 3 + tailwind.config.js | 38 + tsconfig.json | 29 + 167 files changed, 26607 insertions(+), 24066 deletions(-) create mode 100644 .babelrc create mode 100644 .travis.yml delete mode 100644 api/.dockerignore delete mode 100644 api/.example.env delete mode 100644 api/.github/workflows/ci.yml delete mode 100644 api/.gitignore delete mode 100644 api/Dockerfile delete mode 100644 api/README.md delete mode 100644 api/package-lock.json delete mode 100644 api/package.json delete mode 100644 api/src/__tests__/controller/sms.test.ts delete mode 100644 api/src/__tests__/entity/user.test.ts delete mode 100644 api/src/config.ts delete mode 100644 api/src/controller/_encryption.ts delete mode 100644 api/src/controller/call.ts delete mode 100644 api/src/controller/sms.ts delete mode 100644 api/src/entity/sms.ts delete mode 100644 api/src/logger.ts delete mode 100644 api/src/router.ts delete mode 100644 api/src/server.ts delete mode 100644 api/tsconfig.json delete mode 100644 app/.expo-shared/assets.json delete mode 100644 app/.gitignore delete mode 100644 app/App.tsx delete mode 100644 app/app.json delete mode 100755 app/assets/fonts/SpaceMono-Regular.ttf delete mode 100644 app/assets/images/adaptive-icon.png delete mode 100644 app/assets/images/favicon.png delete mode 100644 app/assets/images/icon.png delete mode 100644 app/assets/images/splash.png delete mode 100644 app/babel.config.js delete mode 100644 app/components/EditScreenInfo.tsx delete mode 100644 app/components/StyledText.tsx delete mode 100644 app/components/Themed.tsx delete mode 100644 app/components/__tests__/StyledText-test.js delete mode 100644 app/constants/Colors.ts delete mode 100644 app/constants/Layout.ts delete mode 100644 app/hooks/useCachedResources.ts delete mode 100644 app/hooks/useColorScheme.ts delete mode 100644 app/navigation/BottomTabNavigator.tsx delete mode 100644 app/navigation/LinkingConfiguration.ts delete mode 100644 app/navigation/index.tsx delete mode 100644 app/package-lock.json delete mode 100644 app/package.json delete mode 100644 app/screens/NotFoundScreen.tsx delete mode 100644 app/screens/TabOneScreen.tsx delete mode 100644 app/screens/TabTwoScreen.tsx delete mode 100644 app/tsconfig.json delete mode 100644 app/types.tsx create mode 100644 jest.config.js create mode 100644 jest/helpers.ts create mode 100644 jest/setup.ts create mode 100644 jest/testing-library.ts create mode 100644 lib/__tests__/session-helpers.ts create mode 100644 lib/logger.ts create mode 100644 lib/session-helpers.ts create mode 100644 lib/utils/cookies.ts create mode 100644 lib/utils/hkdf.ts create mode 100644 next-env.d.ts create mode 100644 next.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/robots.txt create mode 100644 public/static/favicon.ico create mode 100644 public/static/fonts/inter/Inter-italic.var.woff2 create mode 100644 public/static/fonts/inter/Inter-roman.var.woff2 create mode 100644 public/static/illustrations/data-analytics.svg create mode 100644 public/static/illustrations/learn-coding.svg create mode 100644 public/static/illustrations/support-team.svg create mode 100644 public/static/logo.svg create mode 100644 src/__tests__/pages/__snapshots__/index.tsx.snap create mode 100644 src/__tests__/pages/account/settings/index.tsx create mode 100644 src/__tests__/pages/account/settings/team.tsx create mode 100644 src/__tests__/pages/api/auth/sign-in.ts create mode 100644 src/__tests__/pages/api/auth/sign-up.ts create mode 100644 src/__tests__/pages/api/subscription/_subscription-created.ts create mode 100644 src/__tests__/pages/api/subscription/webhook.ts create mode 100644 src/__tests__/pages/api/team/invite-member.ts create mode 100644 src/__tests__/pages/api/user/session.ts create mode 100644 src/__tests__/pages/api/user/update-user.ts create mode 100644 src/__tests__/pages/auth/sign-in.tsx create mode 100644 src/__tests__/pages/index.tsx create mode 100644 src/__tests__/pages/team/invitation.tsx create mode 100644 src/components/alert.tsx create mode 100644 src/components/auth/auth-page.tsx create mode 100644 src/components/avatar.tsx create mode 100644 src/components/billing/billing-plans.tsx create mode 100644 src/components/button.tsx create mode 100644 src/components/divider.tsx create mode 100644 src/components/icons.tsx create mode 100644 src/components/layout/footer.tsx create mode 100644 src/components/layout/header.tsx create mode 100644 src/components/layout/index.tsx create mode 100644 src/components/loading.tsx create mode 100644 src/components/logo.tsx create mode 100644 src/components/long-press-handler.tsx create mode 100644 src/components/modal.tsx create mode 100644 src/components/outside-alerter.tsx create mode 100644 src/components/settings/danger-zone.tsx create mode 100644 src/components/settings/pricing-plans.old.tsx create mode 100644 src/components/settings/profile-informations.tsx create mode 100644 src/components/settings/settings-layout.tsx create mode 100644 src/components/settings/settings-section.tsx create mode 100644 src/components/settings/update-password.tsx create mode 100644 src/components/toggle.tsx create mode 100644 src/components/welcome/onboarding-layout.tsx create mode 100644 src/database/_encryption.ts create mode 100644 src/database/_types.ts create mode 100644 src/database/customer.ts create mode 100644 src/database/phone-number.ts create mode 100644 src/database/sms.ts create mode 100644 src/database/subscriptions.ts create mode 100644 src/fonts.css create mode 100644 src/hooks/use-auth.ts create mode 100644 src/hooks/use-paddle.ts create mode 100644 src/hooks/use-request.ts create mode 100644 src/hooks/use-subscription.ts create mode 100644 src/hooks/use-user.ts create mode 100644 src/pages/_app.tsx create mode 100644 src/pages/_document.tsx create mode 100644 src/pages/api/_redirect.ts create mode 100644 src/pages/api/_send-email.ts create mode 100644 src/pages/api/_types.ts create mode 100644 src/pages/api/auth/session.ts create mode 100644 src/pages/api/auth/sign-in.ts create mode 100644 src/pages/api/auth/sign-up.ts create mode 100644 src/pages/api/ddd.ts create mode 100644 src/pages/api/newsletter/_mailchimp.ts create mode 100644 src/pages/api/newsletter/subscribe.ts create mode 100644 src/pages/api/queue/fetch-messages.ts create mode 100644 src/pages/api/queue/insert-messages.ts create mode 100644 src/pages/api/subscription/_subscription-cancelled.ts create mode 100644 src/pages/api/subscription/_subscription-created.ts create mode 100644 src/pages/api/subscription/_subscription-payment-succeeded.ts create mode 100644 src/pages/api/subscription/_subscription-updated.ts create mode 100644 src/pages/api/subscription/update.ts create mode 100644 src/pages/api/subscription/webhook.ts create mode 100644 src/pages/api/user/add-phone-number.ts create mode 100644 src/pages/api/user/delete-user.ts create mode 100644 src/pages/api/user/list-twilio-numbers.ts create mode 100644 src/pages/api/user/session.ts create mode 100644 src/pages/api/user/update-user.ts create mode 100644 src/pages/auth/forgot-password.tsx create mode 100644 src/pages/auth/sign-in.tsx create mode 100644 src/pages/auth/sign-out.tsx create mode 100644 src/pages/auth/sign-up.tsx create mode 100644 src/pages/calls.tsx create mode 100644 src/pages/index.tsx create mode 100644 src/pages/keypad.tsx create mode 100644 src/pages/messages.tsx create mode 100644 src/pages/messages/[recipient].tsx create mode 100644 src/pages/settings/account.tsx create mode 100644 src/pages/settings/billing.tsx create mode 100644 src/pages/settings/index.tsx create mode 100644 src/pages/welcome/step-one.tsx create mode 100644 src/pages/welcome/step-three.tsx create mode 100644 src/pages/welcome/step-two.tsx create mode 100644 src/session-context.tsx create mode 100644 src/subscription/_paddle-api.ts create mode 100644 src/subscription/plans.ts create mode 100644 src/supabase/client.ts create mode 100644 src/supabase/server.ts create mode 100644 src/tailwind.css create mode 100644 tailwind.config.js create mode 100644 tsconfig.json diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..7fa337a --- /dev/null +++ b/.babelrc @@ -0,0 +1,8 @@ +{ + "presets": [ + "next/babel" + ], + "plugins": [ + "superjson-next" + ] +} diff --git a/.gitignore b/.gitignore index 78f2710..ef3cf33 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,13 @@ -node_modules/ -.idea/ +.next/* +node_modules/* +.idea/* +build/* +.env +coverage/ + + +mosaic +*.tgz +*.zip +aOf719eN +old diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..58e00e9 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,11 @@ +language: node_js + +node_js: + - node + - 'lts/*' + +cache: npm + +script: + - npm run build + - npm run test diff --git a/api/.dockerignore b/api/.dockerignore deleted file mode 100644 index e3754c8..0000000 --- a/api/.dockerignore +++ /dev/null @@ -1,8 +0,0 @@ -node_modules -Dockerfile -.dockerignore -.github -dist -.example.env -docker-compose.yml -README.md \ No newline at end of file diff --git a/api/.example.env b/api/.example.env deleted file mode 100644 index c8febf9..0000000 --- a/api/.example.env +++ /dev/null @@ -1,5 +0,0 @@ -PORT=3000 -NODE_ENV=development -DATABASE_URL=postgres://user:pass@localhost:5432/apidb -TWILIO_ACCOUNT_SID=ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -TWILIO_AUTH_TOKEN=your_auth_token diff --git a/api/.github/workflows/ci.yml b/api/.github/workflows/ci.yml deleted file mode 100644 index 2f649e6..0000000 --- a/api/.github/workflows/ci.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: CI - -on: - pull_request: - branches: - - master - push: - branches: - - master - -jobs: - build: - name: Build the project - runs-on: ubuntu-16.04 - steps: - - uses: actions/checkout@master - - uses: actions/setup-node@v1 - with: - node-version: '12.x' - - name: Install dependencies - run: npm ci - - name: Building the project - run: npm run build - - name: Unit tests - run: npm run test \ No newline at end of file diff --git a/api/.gitignore b/api/.gitignore deleted file mode 100644 index c9fc213..0000000 --- a/api/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# API keys and secrets -.env - -# Dependency directory -node_modules -bower_components - -# Editors -.idea -*.iml - -# OS metadata -.DS_Store -Thumbs.db - -# Ignore built ts files -dist/**/* - -# Logging files -*.log -*.pyc diff --git a/api/Dockerfile b/api/Dockerfile deleted file mode 100644 index 0785cd5..0000000 --- a/api/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM node:14-alpine - -RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app -WORKDIR /home/node/app -COPY package*.json ./ -USER node -RUN npm install -COPY --chown=node:node . . -RUN npm run build - -EXPOSE 3000 - -CMD [ "npm", "run", "start" ] \ No newline at end of file diff --git a/api/README.md b/api/README.md deleted file mode 100644 index 86921f8..0000000 --- a/api/README.md +++ /dev/null @@ -1,560 +0,0 @@ -# Node - Koa - Typescript Project - - -[![NPM version](https://img.shields.io/npm/v/node-typescript-koa-rest.svg)](https://www.npmjs.com/package/node-typescript-koa-rest) -[![Dependency Status](https://david-dm.org/javieraviles/node-typescript-koa-rest.svg)](https://david-dm.org/javieraviles/node-typescript-koa-rest) - - -The main purpose of this repository is to build a good project setup and workflow for writing a Node api rest in TypeScript using KOA and an SQL DB. - -Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs. Through leveraging generators Koa allows you to ditch callbacks and greatly increase error-handling. Koa does not bundle any middleware within core, and provides an elegant suite of methods that make writing servers fast and enjoyable. - -Through Github Actions CI, this boilerplate is deployed [here](https://node-typescript-koa-rest.herokuapp.com/)! You can try to make requests to the different defined endpoints and see how it works. The following Authorization header will have to be set (already signed with the boilerplate's secret) to pass the JWT middleware: - -HEADER (DEMO) -``` -Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEiLCJuYW1lIjoiSmF2aWVyIEF2aWxlcyIsImVtYWlsIjoiYXZpbGVzbG9wZXouamF2aWVyQGdtYWlsLmNvbSJ9.7oxEVGy4VEtaDQyLiuoDvzdO0AyrNrJ_s9NU3vko5-k -``` - -AVAILABLE ENDPOINTS DEMO [SWAGGER DOCS DEMO](https://node-typescript-koa-rest.herokuapp.com/swagger-html) - -When running the project locally with `watch-server`, being `.env` file config the very same as `.example.env` file, the swagger docs will be deployed at: `http:localhost:3000/swagger-html`, and the bearer token for authorization should be as follows: - -HEADER (LOCALHOST BASED ON DEFAULT SECRET KEY 'your-secret-whatever') -``` -Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEiLCJuYW1lIjoiSmF2aWVyIEF2aWxlcyIsImVtYWlsIjoiYXZpbGVzbG9wZXouamF2aWVyQGdtYWlsLmNvbSJ9.rgOobROftUYSWphkdNfxoN2cgKiqNXd4Km4oz6Ex4ng -``` - -| method | resource | description | -|:-------------------|:-----------------|:-----------------------------------------------------------------------------------------------| -| `GET` | `/` | Simple hello world response | -| `GET` | `/users` | returns the collection of users present in the DB | -| `GET` | `/users/:id` | returns the specified id user | -| `POST` | `/users` | creates a user in the DB (object user to be includued in request's body) | -| `PUT` | `/users/:id` | updates an already created user in the DB (object user to be includued in request's body) | -| `DELETE` | `/users/:id` | deletes a user from the DB (JWT token user ID must be the same as the user you want to delete) | - -- [Node - Koa - Typescript Project](#node---koa---typescript-project) - - [Pre-reqs](#pre-reqs) - - [Features:](#features) - - [Included middleware:](#included-middleware) -- [Getting Started](#getting-started) - - [Docker (optional)](#docker-optional) - - [Setting up the Database - ORM](#setting-up-the-database---orm) - - [Entities validation](#entities-validation) - - [Environment variables](#environment-variables) - - [Getting TypeScript](#getting-typescript) - - [Project Structure](#project-structure) - - [Configuring TypeScript compilation](#configuring-typescript-compilation) - - [Running the build](#running-the-build) -- [CI: Github Actions](#ci-github-actions) -- [ESLint](#eslint) - - [ESLint rules](#eslint-rules) - - [Running ESLint](#running-eslint) -- [Register cron jobs](#register-cron-jobs) -- [Integrations and load tests](#integrations-and-load-tests) -- [Logging](#logging) -- [Authentication - Security](#authentication---security) - - [CORS](#cors) - - [Helmet](#helmet) -- [Dependencies](#dependencies) - - [dependencies](#dependencies-1) - - [devDependencies](#devdependencies) - - [Changelog](#changelog) - - [1.7.1](#171) - - [1.7.0](#170) - - [1.6.1](#161) - - [1.6.0](#160) - - [1.5.0](#150) - - [1.4.2](#142) - - [1.4.1](#141) - - [1.4.0](#140) - - [1.3.0](#130) - - [1.2.0](#120) - - [1.1.0](#110) - - -## Pre-reqs -To build and run this app locally you will need: -- Install [Node.js](https://nodejs.org/en/) - -## Features: - * Nodemon - server auto-restarts when code changes - * Koa v2 - * TypeORM (SQL DB) with basic CRUD included - * Swagger decorator (auto generated swagger docs) - * Class-validator - Decorator based entities validation - * Docker-compose ready to go - * Postman (newman) integration tests - * Locust load tests - * Jest unit tests - * Github actions - CI for building and testing the project - * Cron jobs prepared - -## Included middleware: - * @koa/router - * koa-bodyparser - * Winston Logger - * JWT auth koa-jwt - * Helmet (security headers) - * CORS - -# Getting Started -- Clone the repository -``` -git clone --depth=1 https://github.com/javieraviles/node-typescript-koa-rest.git -``` -- Install dependencies -``` -cd -npm install -``` -- Run the project directly in TS -``` -npm run watch-server -``` - -- Build and run the project in JS -``` -npm run build -npm run start -``` - -- Run integration or load tests -``` -npm run test:integration:local (newman needed) -npm run test:load (locust needed) -``` - -- Run unit tests -``` -npm run test -``` - -- Run unit tests with coverage -``` -npm run test:coverage -``` - -- Run unit tests on Jest watch mode -``` -npm run test:watch -``` - -## Docker (optional) -A docker-compose file has been added to the project with a postgreSQL (already setting user, pass and dbname as the ORM config is expecting) and an ADMINER image (easy web db client). - -It is as easy as go to the project folder and execute the command 'docker-compose up' once you have Docker installed, and both the postgreSQL server and the Adminer client will be running in ports 5432 and 8080 respectively with all the config you need to start playing around. - -If you use Docker natively, the host for the server which you will need to include in the ORM configuration file will be localhost, but if you were to run Docker in older Windows versions, you will be using Boot2Docker and probably your virtual machine will use your ip 192.168.99.100 as network adapter (if not, command `docker-machine ip` will tell you). This mean your database host will be the aforementioned ip and in case you want to access the web db client you will also need to go to http://192.168.99.100/8080 - -## Setting up the Database - ORM -This API is prepared to work with an SQL database, using [TypeORM](https://github.com/typeorm/typeorm). In this case we are using postgreSQL, and that is why in the package.json 'pg' has been included. If you where to use a different SQL database remember to install the correspondent driver. - -The ORM configuration and connection to the database can be specified in the file 'ormconfig.json'. Here is directly in the connection to the database in 'server.ts' file because a environment variable containing databaseUrl is being used to set the connection data. This is prepared for Heroku, which provides a postgres-string-connection as env variable. In local is being mocked with the docker local postgres as can be seen in ".example.env" - -It is importante to notice that, when serving the project directly with *.ts files using ts-node,the configuration for the ORM should specify the *.ts files path, but once the project is built (transpiled) and run as plain js, it will be needed to change it accordingly to find the built js files: - -``` -"entities": [ - "dist/entity/**/*.js" - ], - "migrations": [ - "dist/migration/**/*.js" - ], - "subscribers": [ - "dist/subscriber/**/*.js" - ] -``` - -**NOTE: this is now automatically handled by the NODE_ENV variable too. - -Notice that if NODE_ENV is set to development, the ORM config won't be using SSL to connect to the DB. Otherwise it will. - -And because Heroku uses self-signed certificates, this bit has been added, **please take it out if connecting to a local DB without SSL**. - -``` -createConnection({ - ... - extra: { - ssl: { - rejectUnauthorized: false // Heroku uses self signed certificates - } - } - }) -``` - -You can find an implemented **CRUD of the entity user** in the correspondent controller controller/user.ts and its routes in routes.ts file. - -## Entities validation -This project uses the library class-validator, a decorator-based entity validation, which is used directly in the entities files as follows: -``` -export class User { - @Length(10, 100) // length of string email must be between 10 and 100 characters - @IsEmail() // the string must comply with an standard email format - @IsNotEmpty() // the string can't be empty - email: string; -} -``` -Once the decorators have been set in the entity, you can validate from anywhere as follows: -``` -const user = new User(); -user.email = "avileslopez.javier@gmail"; // should not pass, needs the ending .com to be a valid email - -validate(user).then(errors => { // errors is an array of validation errors - if (errors.length > 0) { - console.log("validation failed. errors: ", errors); // code will get here, printing an "IsEmail" error - } else { - console.log("validation succeed"); - } -}); -``` - -For further documentation regarding validations see [class-validator docs](https://github.com/typestack/class-validator). - - -## Environment variables -Create a .env file (or just rename the .example.env) containing all the env variables you want to set, dotenv library will take care of setting them. This project is using three variables at the moment: - - * PORT -> port where the server will be started on, Heroku will set this env variable automatically - * NODE_ENV -> environment, development value will set the logger as debug level, also important for CI. In addition will determine if the ORM connects to the DB through SSL or not. - * JWT_SECRET -> secret value, JWT tokens should be signed with this value - * DATABASE_URL -> DB connection data in connection-string format. - -## Getting TypeScript -TypeScript itself is simple to add to any project with `npm`. -``` -npm install -D typescript -``` -If you're using VS Code then you're good to go! -VS Code will detect and use the TypeScript version you have installed in your `node_modules` folder. -For other editors, make sure you have the corresponding [TypeScript plugin](http://www.typescriptlang.org/index.html#download-links). - -## Project Structure -The most obvious difference in a TypeScript + Node project is the folder structure. -TypeScript (`.ts`) files live in your `src` folder and after compilation are output as JavaScript (`.js`) in the `dist` folder. - -The full folder structure of this app is explained below: - -> **Note!** Make sure you have already built the app using `npm run build` - -| Name | Description | -| ----------------------------------- | --------------------------------------------------------------------------------------------- | -| **dist** | Contains the distributable (or output) from your TypeScript build. This is the code you ship | -| **node_modules** | Contains all your npm dependencies | -| **src** | Contains your source code that will be compiled to the dist dir | -| **src**/server.ts | Entry point to your KOA app | -| **.github**/**workflows**/ci.yml | Github actions CI configuration | -| **loadtests**/locustfile.py | Locust load tests | -| **integrationtests**/node-koa-typescript.postman_collection.json | Postman integration test collection | -| .copyStaticAssets.ts | Build script that copies images, fonts, and JS libs to the dist folder | -| package.json | File that contains npm dependencies as well as [build scripts](#what-if-a-library-isnt-on-definitelytyped) | -| docker-compose.yml | Docker PostgreSQL and Adminer images in case you want to load the db from Docker | -| tsconfig.json | Config settings for compiling server code written in TypeScript | -| .eslintrc and .eslintignore | Config settings for ESLint code style checking | -| .example.env | Env variables file example to be renamed to .env | -| Dockerfile and dockerignore | The app is dockerized to be deployed from CI in a more standard way, not needed for dev | - -## Configuring TypeScript compilation -TypeScript uses the file `tsconfig.json` to adjust project compile options. -Let's dissect this project's `tsconfig.json`, starting with the `compilerOptions` which details how your project is compiled. - -```json - "compilerOptions": { - "module": "commonjs", - "target": "es2017", - "lib": ["es6"], - "noImplicitAny": true, - "strictPropertyInitialization": false, - "moduleResolution": "node", - "sourceMap": true, - "outDir": "dist", - "baseUrl": ".", - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - } - }, -``` - -| `compilerOptions` | Description | -| --------------------------------------- | ------------------------------------------------------------------------------------------------------ | -| `"module": "commonjs"` | The **output** module type (in your `.js` files). Node uses commonjs, so that is what we use | -| `"target": "es2017"` | The output language level. Node supports ES2017, so we can target that here | -| `"lib": ["es6"]` | Needed for TypeORM. | -| `"noImplicitAny": true` | Enables a stricter setting which throws errors when something has a default `any` value | -| `"moduleResolution": "node"` | TypeScript attempts to mimic Node's module resolution strategy. Read more [here](https://www.typescriptlang.org/docs/handbook/module-resolution.html#node) | -| `"sourceMap": true` | We want source maps to be output along side our JavaScript. | -| `"outDir": "dist"` | Location to output `.js` files after compilation | -| `"baseUrl": "."` | Part of configuring module resolution. | -| `paths: {...}` | Part of configuring module resolution. | -| `"experimentalDecorators": true` | Needed for TypeORM. Allows use of @Decorators | -| `"emitDecoratorMetadata": true` | Needed for TypeORM. Allows use of @Decorators | - - - -The rest of the file define the TypeScript project context. -The project context is basically a set of options that determine which files are compiled when the compiler is invoked with a specific `tsconfig.json`. -In this case, we use the following to define our project context: -```json - "include": [ - "src/**/*" - ] -``` -`include` takes an array of glob patterns of files to include in the compilation. -This project is fairly simple and all of our .ts files are under the `src` folder. -For more complex setups, you can include an `exclude` array of glob patterns that removes specific files from the set defined with `include`. -There is also a `files` option which takes an array of individual file names which overrides both `include` and `exclude`. - - -## Running the build -All the different build steps are orchestrated via [npm scripts](https://docs.npmjs.com/misc/scripts). -Npm scripts basically allow us to call (and chain) terminal commands via npm. -This is nice because most JavaScript tools have easy to use command line utilities allowing us to not need grunt or gulp to manage our builds. -If you open `package.json`, you will see a `scripts` section with all the different scripts you can call. -To call a script, simply run `npm run ` from the command line. -You'll notice that npm scripts can call each other which makes it easy to compose complex builds out of simple individual build scripts. -Below is a list of all the scripts this template has available: - - -| Npm Script | Description | -| ------------------------- | ------------------------------------------------------------------------------------------------- | -| `start` | Does the same as 'npm run serve'. Can be invoked with `npm start` | -| `build` | Full build. Runs ALL build tasks (`build-ts`, `lint`, `copy-static-assets`) | -| `serve` | Runs node on `dist/server/server.js` which is the apps entry point | -| `watch-server` | Nodemon, process restarts if crashes. Continuously watches `.ts` files and re-compiles to `.js` | -| `build-ts` | Compiles all source `.ts` files to `.js` files in the `dist` folder | -| `lint` | Runs ESLint check and fix on project files | -| `copy-static-assets` | Calls script that copies JS libs, fonts, and images to dist directory | -| `test:integration:` | Execute Postman integration tests collection using newman on any env (`local` or `heroku`) | -| `test:load` | Execute Locust load tests using a specific configuration | - -# CI: Github Actions -Using Github Actions a pipeline is deploying the application in Heroku and running tests against it, checking the application is healthy deployed. The pipeline can be found at `/.github/workflows/test.yml`. This performs the following: - - Build the project - - Install Node - - Install dependencies - - Build the project (transpile to JS) - - Run unit tests - - Deploy to Heroku - - Install Docker cli - - Build the application container - - Install Heroku cli - - Login into Heroku - - Push Docker image to Heroku - - Trigger release in Heroku - - Run integration tests - - Install Node - - Install Newman - - Run Postman collection using Newman against deployed app in Heroku - - Run load tests - - Install Python - - Install Locust - - Run Locust load tests against deployed app in Heroku - -# ESLint -Since TSLint is deprecated now, ESLint feels like the way to go as also supports typescript. -ESLint is a static code analysis tool for identifying problematic patterns found in JavaScript/typescript code. - -## ESLint rules -Like most linters, ESLint has a wide set of configurable rules as well as support for custom rule sets. -All rules are configured through `.eslintrc`. -In this project, we are using a fairly basic set of rules with no additional custom rules. - -## Running ESLint -Like the rest of our build steps, we use npm scripts to invoke ESLint. -To run ESLint you can call the main build script or just the ESLint task. -``` -npm run build // runs full build including ESLint format check -npm run lint // runs ESLint check + fix -``` -Notice that ESLint is not a part of the main watch task. -It can be annoying for ESLint to clutter the output window while in the middle of writing a function, so I elected to only run it only during the full build. -If you are interested in seeing ESLint feedback as soon as possible, I strongly recommend the [ESLint extension in VS Code](https://github.com/Microsoft/vscode-eslint.git). - -# Register cron jobs -[Cron](https://github.com/node-cron/node-cron) dependency has been added to the project together with types. A `cron.ts` file has been created where a cron job is created using a cron expression configured in `config.ts` file. - -``` -import { CronJob } from 'cron'; -import { config } from './config'; - -const cron = new CronJob(config.cronJobExpression, () => { - console.log('Executing cron job once every hour'); -}); - -export { cron }; -``` - -From the `server.ts`, the cron job gets started: - -``` -import { cron } from './cron'; -// Register cron job to do any action needed -cron.start(); -``` - -# Integrations and load tests -Integrations tests are a Postman collection with assertions, which gets executed using Newman from the CI (Github Actions). It can be found at `/integrationtests/node-koa-typescript.postman_collection.json`; it can be opened in Postman and get modified very easily. Feel free to install Newman in your local environment and trigger `npm run test:integration:local` command which will use local environment file (instead of heroku dev one) to trigger your postman collection faster than using postman. - -Load tests are a locust file with assertions, which gets executed from the CI (Github Actions). It can be found at `/loadtests/locustfile.py`; It is written in python and can be executed locally against any host once python and locust are installed on your dev machine. - -**NOTE: at the end of load tests, an endpoint to remove all created test users is called. - -# Logging -Winston is designed to be a simple and universal logging library with support for multiple transports. - -A "logger" middleware passing a winstonInstance has been created. Current configuration of the logger can be found in the file "logger.ts". It will log 'error' level to an error.log file and 'debug' or 'info' level (depending on NODE_ENV environment variable, debug if == development) to the console. - -``` -// Logger middleware -> use winston as logger (logger.ts with config) -app.use(logger(winston)); -``` - -# Authentication - Security -The idea is to keep the API as clean as possible, therefore the auth will be done from the client using an auth provider such as Auth0. The client making requests to the API should include the JWT in the Authorization header as "Authorization: Bearer ". HS256 will be used as the secret will be known by both your api and your client and will be used to sign the token, so make sure you keep it hidden. - -As can be found in the server.ts file, a JWT middleware has been added, passing the secret from an environment variable. The middleware will validate that every request to the routes below, MUST include a valid JWT signed with the same secret. The middleware will set automatically the payload information in ctx.state.user. - -``` -// JWT middleware -> below this line, routes are only reached if JWT token is valid, secret as env variable -app.use(jwt({ secret: config.jwtSecret })); -``` -Go to the website [https://jwt.io/](https://jwt.io/) to create JWT tokens for testing/debugging purposes. Select algorithm HS256 and include the generated token in the Authorization header to pass through the jwt middleware. - -Custom 401 handling -> if you don't want to expose koa-jwt errors to users: -``` -app.use(function(ctx, next){ - return next().catch((err) => { - if (401 == err.status) { - ctx.status = 401; - ctx.body = 'Protected resource, use Authorization header to get access\n'; - } else { - throw err; - } - }); -}); -``` - -If you want to authenticate from the API, and you fancy the idea of an auth provider like Auth0, have a look at [jsonwebtoken โ€” JSON Web Token signing and verification](https://github.com/auth0/node-jsonwebtoken) - - -## CORS -This boilerplate uses @koa/cors, a simple CORS middleware for koa. If you are not sure what this is about, click [here](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). - -``` -// Enable CORS with default options -app.use(cors()); -``` -Have a look at [Official @koa/cors docs](https://github.com/koajs/cors) in case you want to specify 'origin' or 'allowMethods' properties. - - -## Helmet -This boilerplate uses koa-helmet, a wrapper for helmet to work with koa. It provides important security headers to make your app more secure by default. - -Usage is the same as [helmet](https://github.com/helmetjs/helmet). Helmet offers 11 security middleware functions (clickjacking, DNS prefetching, Security Policy...), everything is set by default here. - -``` -// Enable helmet with default options -app.use(helmet()); -``` - -Have a look at [Official koa-helmet docs](https://github.com/venables/koa-helmet) in case you want to customize which security middlewares are enabled. - - -# Dependencies -Dependencies are managed through `package.json`. -In that file you'll find two sections: -## dependencies - -| Package | Description | -| ------------------------------- | --------------------------------------------------------------------- | -| dotenv | Loads environment variables from .env file. | -| koa | Node web framework. | -| koa-bodyparser | A bodyparser for koa. | -| koa-jwt | Middleware to validate JWT tokens. | -| @koa/router | Router middleware for koa. | -| koa-helmet | Wrapper for helmet, important security headers to make app more secure| -| @koa/cors | Cross-Origin Resource Sharing(CORS) for koa | -| pg | PostgreSQL driver, needed for the ORM. | -| reflect-metadata | Used by typeORM to implement decorators. | -| typeorm | A very cool SQL ORM. | -| winston | Logging library. | -| class-validator | Decorator based entities validation. | -| koa-swagger-decorator | using decorator to automatically generate swagger doc for koa-router. | -| cron | Register cron jobs in node. | - -## devDependencies - -| Package | Description | -| ------------------------------- | --------------------------------------------------------------------- | -| @types | Dependencies in this folder are `.d.ts` files used to provide types | -| nodemon | Utility that automatically restarts node process when it crashes | -| ts-node | Enables directly running TS files. Used to run `copy-static-assets.ts`| -| eslint | Linter for Javascript/TypeScript files | -| typescript | JavaScript compiler/type checker that boosts JavaScript productivity | -| shelljs | Portable Unix shell commands for Node.js | - -To install or update these dependencies you can use `npm install` or `npm update`. - - -## Changelog -### 1.8.0 - - Unit tests included using Jest (Thanks to [@rafapaezbas](https://github.com/rafapaezbas)) - - Upgrade all dependencies - - Upgrade to Node 14 -### 1.7.1 - - Upgrading Locust + fixing load tests - - Improving Logger - -### 1.7.0 - - Migrating `TSLint` (deprecated already) to `ESLint` - - Node version upgraded from `10.x.x` to `12.0.0` (LTS) - - Now CI installs from `package-lock.json` using `npm ci` (Beyond guaranteeing you that you'll only get what is in your lock-file it's also much faster (2x-10x!) than npm install when you don't start with a node_modules). - - included integraton test using Newman for local env too - - `koa-router` deprecated, using new fork from koa team `@koa/router` - - Dependencies updated, some @types removed as more and more libraries include their own types now! - - Typescript to latest - -### 1.6.1 - - Fixing CI - - Improving integration tests robustness - -### 1.6.0 - - CI migrated from Travis to Github actions - - cron dependency -> register cron jobs - - Node app dockerized -> now is directly pushed as a docker image to Heroku from CI, not using any webhook - - Added postman integration tests, executed from Github actions CI using Newman - - Added locust load tests, executed from Github actions CI - - PRs merged: [47](https://github.com/javieraviles/node-typescript-koa-rest/pull/47), [48](https://github.com/javieraviles/node-typescript-koa-rest/pull/48) and [49](https://github.com/javieraviles/node-typescript-koa-rest/pull/49). Thanks to everybody! - -### 1.5.0 - - koa-swagger-decorator -> generate [swagger docs](https://node-typescript-koa-rest.herokuapp.com/swagger-html) with decorators in the endpoints - - Split routes into protected and unprotected. Hello world + swagger docs are not proteted by jwt - - some dependencies have been updated - -### 1.4.2 - - Fix -> `npm run watch-server` is now working properly live-reloading changes in the code [Issue 39](https://github.com/javieraviles/node-typescript-koa-rest/issues/39). - - Fix -> Logging levels were not correctly mapped. Thanks to @atamano for the PR [Pull Request 35](https://github.com/javieraviles/node-typescript-koa-rest/pull/35) - - Some code leftovers removed - -### 1.4.1 -- Fix -> After updating winston to 3.0.0, it was throwing an error when logging errors into file -- Fix -> Config in config.ts wasn't implementing IConfig interface - -### 1.4.0 -- Dotenv lib updated, no changes needed (they are dropping node4 support) -- Class-validator lib updated, no chages needed (cool features added like IsPhoneNumber or custom context for decorators) -- Winston lib updated to 3.0.0, some amendments needed to format the console log. Removed the @types as Winston now supports Typescript natively! -- Some devDependencies updated as well - -### 1.3.0 -- CORS added -- Syntax full REST -- Some error handling improvement - -### 1.2.0 -- Heroku deployment added - -### 1.1.0 -- Added Helmet for security -- Some bad practices await/async fixed diff --git a/api/package-lock.json b/api/package-lock.json deleted file mode 100644 index e0ca351..0000000 --- a/api/package-lock.json +++ /dev/null @@ -1,6852 +0,0 @@ -{ - "name": "virtual-phone-number-api", - "version": "0.0.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/compat-data": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", - "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==", - "dev": true - }, - "@babel/core": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz", - "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.3", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.14.2", - "@babel/helpers": "^7.14.0", - "@babel/parser": "^7.14.3", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", - "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.2", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", - "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.15", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", - "semver": "^6.3.0" - } - }, - "@babel/helper-function-name": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", - "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.14.2" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", - "dev": true, - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", - "dev": true, - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-module-transforms": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", - "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-simple-access": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.14.0", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz", - "integrity": "sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2" - } - }, - "@babel/helper-simple-access": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", - "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", - "dev": true, - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", - "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", - "dev": true, - "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0" - } - }, - "@babel/highlight": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", - "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.3.tgz", - "integrity": "sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz", - "integrity": "sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", - "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@dabh/diagnostics": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", - "requires": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.0.1.tgz", - "integrity": "sha512-50E6nN2F5cAXn1lDljn0gE9F0WFXHYz/u0EeR7sOt4nbRPNli34ckbl6CUDaDABJbHt62DYnyQAIB3KgdzwKDw==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.0.1", - "jest-util": "^27.0.1", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "@jest/core": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.0.1.tgz", - "integrity": "sha512-PiCbKSMf6t8PEfY3MAd0Ldn3aJAt5T+UcaFkAfMZ1VZgas35+fXk5uHIjAQHQLNIHZWX19TLv0wWNT03yvrw6w==", - "dev": true, - "requires": { - "@jest/console": "^27.0.1", - "@jest/reporters": "^27.0.1", - "@jest/test-result": "^27.0.1", - "@jest/transform": "^27.0.1", - "@jest/types": "^27.0.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.0.1", - "jest-config": "^27.0.1", - "jest-haste-map": "^27.0.1", - "jest-message-util": "^27.0.1", - "jest-regex-util": "^27.0.1", - "jest-resolve": "^27.0.1", - "jest-resolve-dependencies": "^27.0.1", - "jest-runner": "^27.0.1", - "jest-runtime": "^27.0.1", - "jest-snapshot": "^27.0.1", - "jest-util": "^27.0.1", - "jest-validate": "^27.0.1", - "jest-watcher": "^27.0.1", - "micromatch": "^4.0.4", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "@jest/environment": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.0.1.tgz", - "integrity": "sha512-nG+r3uSs2pOTsdhgt6lUm4ZGJLRcTc6HZIkrFsVpPcdSqEpJehEny9r9y2Bmhkn8fKXWdGCYJKF3i4nKO0HSmA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.0.1", - "@jest/types": "^27.0.1", - "@types/node": "*", - "jest-mock": "^27.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "@jest/fake-timers": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.0.1.tgz", - "integrity": "sha512-3CyLJQnHzKI4TCJSCo+I9TzIHjSK4RrNEk93jFM6Q9+9WlSJ3mpMq/p2YuKMe0SiHKbmZOd5G/Ll5ofF9Xkw9g==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "@sinonjs/fake-timers": "^7.0.2", - "@types/node": "*", - "jest-message-util": "^27.0.1", - "jest-mock": "^27.0.1", - "jest-util": "^27.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "@jest/globals": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.0.1.tgz", - "integrity": "sha512-80ZCzgopysKdpp5EOglgjApKxiNDR96PG4PwngB4fTwZ4qqqSKo0EwGwQIhl16szQ1M2xCVYmr9J6KelvnABNQ==", - "dev": true, - "requires": { - "@jest/environment": "^27.0.1", - "@jest/types": "^27.0.1", - "expect": "^27.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "@jest/reporters": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.0.1.tgz", - "integrity": "sha512-lZbJWuS1h/ytKERfu1D6tEQ4PuQ7+15S4+HrSzHR0i7AGVT1WRo49h4fZqxASOp7AQCupUVtPJNZDkaG9ZXy0g==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.0.1", - "@jest/test-result": "^27.0.1", - "@jest/transform": "^27.0.1", - "@jest/types": "^27.0.1", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.0.1", - "jest-resolve": "^27.0.1", - "jest-util": "^27.0.1", - "jest-worker": "^27.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "@jest/source-map": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.1.tgz", - "integrity": "sha512-yMgkF0f+6WJtDMdDYNavmqvbHtiSpwRN2U/W+6uztgfqgkq/PXdKPqjBTUF1RD/feth4rH5N3NW0T5+wIuln1A==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.0.1.tgz", - "integrity": "sha512-5aa+ibX2dsGSDLKaQMZb453MqjJU/CRVumebXfaJmuzuGE4qf87yQ2QZ6PEpEtBwVUEgrJCzi3jLCRaUbksSuw==", - "dev": true, - "requires": { - "@jest/console": "^27.0.1", - "@jest/types": "^27.0.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "@jest/test-sequencer": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.0.1.tgz", - "integrity": "sha512-yK2c2iruJ35WgH4KH8whS72uH+FASJUrzwxzNKTzLAEWmNpWKNEPOsSEKsHynvz78bLHafrTg4adN7RrYNbEOA==", - "dev": true, - "requires": { - "@jest/test-result": "^27.0.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.0.1", - "jest-runner": "^27.0.1", - "jest-runtime": "^27.0.1" - } - }, - "@jest/transform": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.0.1.tgz", - "integrity": "sha512-LC95VpT6wMnQ96dRJDlUiAnW/90zyh4+jS30szI/5AsfS0qwSlr/O4TPcGoD2WVaVMfo6KvR+brvOtGyMHaNhA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.0.1", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.0.1", - "jest-regex-util": "^27.0.1", - "jest-util": "^27.0.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@koa/cors": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@koa/cors/-/cors-3.1.0.tgz", - "integrity": "sha512-7ulRC1da/rBa6kj6P4g2aJfnET3z8Uf3SWu60cjbtxTA5g8lxRdX/Bd2P92EagGwwAhANeNw8T8if99rJliR6Q==", - "requires": { - "vary": "^1.1.2" - } - }, - "@koa/router": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@koa/router/-/router-10.0.0.tgz", - "integrity": "sha512-z9ytrKWn/j/qUApMSJzZbUwkbLcN2ZXGq6UsqWkZb50Us+/Qpu0RwgZ6ytawVOhfFBZ1ai5iVWeD2Dcu0qcnJw==", - "requires": { - "debug": "^4.1.1", - "http-errors": "^1.7.3", - "koa-compose": "^4.1.0", - "methods": "^1.1.2", - "path-to-regexp": "^6.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "path-to-regexp": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz", - "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - } - } - }, - "@lifeomic/twilio-webhook-validator-koa": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lifeomic/twilio-webhook-validator-koa/-/twilio-webhook-validator-koa-1.2.0.tgz", - "integrity": "sha512-eYvtg2TrIRdxRGTQ6n2pl99NDyazzWeoB7p+YYJOH+5zkDhsF4flq+RXCkzxDGZEzBHpc+Ma8udnIm3Lmf3/OQ==" - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.1.tgz", - "integrity": "sha512-am34LJf0N2nON/PT9G7pauA+xjcwX9P6x31m4hBgfUeSXYRZBRv/R6EcdWs8iV4XJjPO++NTsrj7ua/cN2s6ZA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@sqltools/formatter": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz", - "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@tsconfig/node10": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.7.tgz", - "integrity": "sha512-aBvUmXLQbayM4w3A8TrjwrXs4DZ8iduJnuJLLRGdkWlyakCf1q6uHZJBzXoRA/huAEknG5tcUyQxN3A+In5euQ==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.7.tgz", - "integrity": "sha512-dgasobK/Y0wVMswcipr3k0HpevxFJLijN03A8mYfEPvWvOs14v0ZlYTR4kIgMx8g4+fTyTFv8/jLCIfRqLDJ4A==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.0.tgz", - "integrity": "sha512-RKkL8eTdPv6t5EHgFKIVQgsDapugbuOptNd9OOunN/HAkzmmTnZELx1kNCK0rSdUYGmiFMM3rRQMAWiyp023LQ==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.1.tgz", - "integrity": "sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==", - "dev": true - }, - "@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/babel__core": { - "version": "7.1.14", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", - "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", - "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.34", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", - "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==", - "dev": true - }, - "@types/cookies": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.6.tgz", - "integrity": "sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "@types/express": { - "version": "4.17.12", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz", - "integrity": "sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.20.tgz", - "integrity": "sha512-8qqFN4W53IEWa9bdmuVrUcVkFemQWnt5DKPQ/oa8xKDYgtjCr2OO6NX5TIK49NLFr3mPYU2cLh92DQquC3oWWQ==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/http-assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz", - "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==", - "dev": true - }, - "@types/http-errors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz", - "integrity": "sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==", - "dev": true - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "26.0.23", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.23.tgz", - "integrity": "sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA==", - "dev": true, - "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==", - "dev": true - }, - "@types/koa": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.13.2.tgz", - "integrity": "sha512-MHKUNSaw940A8h4tRo+ccDR5SxCkT+OKq1QS5ZmvgB64hO2wsUhb5yvFa464uqTH+R/A/SzxneIfOjiQ6EpBGA==", - "dev": true, - "requires": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/http-errors": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "@types/koa-bodyparser": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz", - "integrity": "sha512-aB/vwwq4G9FAtKzqZ2p8UHTscXxZvICFKVjuckqxCtkX1Ro7F5KHkTCUqTRZFBgDoEkmeca+bFLI1bIsdPPZTA==", - "dev": true, - "requires": { - "@types/koa": "*" - } - }, - "@types/koa-compose": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", - "dev": true, - "requires": { - "@types/koa": "*" - } - }, - "@types/koa-helmet": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/koa-helmet/-/koa-helmet-6.0.2.tgz", - "integrity": "sha512-b/nCrjlMWTEoQrR9x3JiJ3RVn6CgvTuiZywWOwD6dnN0h6ZRcGi7tjnRPNOydCUYfBjDmMaqGgEoCBCCXY2Hrg==", - "dev": true, - "requires": { - "@types/koa": "*", - "helmet": "^4.0.0" - } - }, - "@types/koa__cors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/koa__cors/-/koa__cors-3.0.2.tgz", - "integrity": "sha512-gBetQR0DJ9JTG1YQoW33BADHCrDPJGiJUKUUcEPJwW1A2unzpIMhorEpXB6eMaaXTaqHLemcGnq3RmH9XaryRQ==", - "dev": true, - "requires": { - "@types/koa": "*" - } - }, - "@types/koa__router": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@types/koa__router/-/koa__router-8.0.4.tgz", - "integrity": "sha512-SXpZy6ICU/bsTZbNhg7QMNUQuNE7ka94zeLPHXhej2QZ09u2tz5S3WlBRB85HLSUosUZFbIRgfrFtu+PSIAUVA==", - "dev": true, - "requires": { - "@types/koa": "*" - } - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "@types/node": { - "version": "14.17.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.1.tgz", - "integrity": "sha512-/tpUyFD7meeooTRwl3sYlihx2BrJE7q9XF71EguPFIySj9B7qgnRtHsHTho+0AUm4m1SvWGm6uSncrR94q6Vtw==", - "dev": true - }, - "@types/prettier": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", - "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==", - "dev": true - }, - "@types/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.9", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", - "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", - "dev": true - }, - "@types/validator": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.1.3.tgz", - "integrity": "sha512-DaOWN1zf7j+8nHhqXhIgNmS+ltAC53NXqGxYuBhWqWgqolRhddKzfZU814lkHQSTG0IUfQxU7Cg0gb8fFWo2mA==" - }, - "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", - "dev": true - }, - "@types/zen-observable": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.2.tgz", - "integrity": "sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg==" - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "dependencies": { - "mime-db": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" - }, - "mime-types": { - "version": "2.1.29", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", - "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", - "requires": { - "mime-db": "1.46.0" - } - } - } - }, - "acorn": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", - "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - } - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - }, - "dependencies": { - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==" - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "requires": { - "follow-redirects": "^1.10.0" - } - }, - "babel-jest": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.0.1.tgz", - "integrity": "sha512-aWFD7OGQjk3Y8MdZKf1XePlQvHnjMVJQjIq9WKrlAjz9by703kJ45Jxhp26JwnovoW71YYz5etuqRl8wMcIv0w==", - "dev": true, - "requires": { - "@jest/transform": "^27.0.1", - "@jest/types": "^27.0.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.0.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.1.tgz", - "integrity": "sha512-sqBF0owAcCDBVEDtxqfYr2F36eSHdx7lAVGyYuOBRnKdD6gzcy0I0XrAYCZgOA3CRrLhmR+Uae9nogPzmAtOfQ==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.1.tgz", - "integrity": "sha512-nIBIqCEpuiyhvjQs2mVNwTxQQa2xk70p9Dd/0obQGBf8FBzbnI8QhQKzLsWMN2i6q+5B0OcWDtrboBX5gmOLyA==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.0.1", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==" - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "cache-content-type": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", - "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", - "requires": { - "mime-types": "^2.1.18", - "ylru": "^1.2.0" - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001230", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz", - "integrity": "sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ==", - "dev": true - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "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" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.1.tgz", - "integrity": "sha512-jVamGdJPDeuQilKhvVn1h3knuMOZzr8QDnpk+M9aMlCaMkTDd6fBWPhiDqFvFZ07pL0liqabAiuy8SY4jGHeaw==", - "dev": true - }, - "class-validator": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.1.tgz", - "integrity": "sha512-zWIeYFhUitvAHBwNhDdCRK09hWx+P0HUwFE8US8/CxFpMVzkUK8RJl7yOIE+BVu2lxyPNgeOaFv78tLE47jBIg==", - "requires": { - "@types/validator": "^13.1.3", - "libphonenumber-js": "^1.9.7", - "validator": "^13.5.2" - } - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "requires": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "co-body": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.0.0.tgz", - "integrity": "sha512-9ZIcixguuuKIptnY8yemEOuhb71L/lLf+Rl5JfJEUiDNJk0e02MBt7BPxR2GEh5mw8dPthQYR4jPI/BnS1MQgw==", - "requires": { - "inflation": "^2.0.0", - "qs": "^6.5.2", - "raw-body": "^2.3.3", - "type-is": "^1.6.16" - } - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", - "requires": { - "color-name": "^1.1.1" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", - "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" - }, - "colorspace": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", - "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", - "requires": { - "color": "3.0.x", - "text-hex": "1.0.x" - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookies": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", - "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", - "requires": { - "depd": "~2.0.0", - "keygrip": "~1.1.0" - }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - } - } - }, - "copy-to": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz", - "integrity": "sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "dayjs": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz", - "integrity": "sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==" - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "decimal.js": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", - "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.3.740", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.740.tgz", - "integrity": "sha512-Mi2m55JrX2BFbNZGKYR+2ItcGnR4O5HhrvgoRRyZQlaMGQULqDhoGkLWHzJoshSzi7k1PUofxcDbNhlFrDZNhg==", - "dev": true - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "execa": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - } - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expect": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.1.tgz", - "integrity": "sha512-hjKwLeAvKUiq0Plha1dmzOH1FGEwJC9njbT993cq4PK9r58/+3NM+WDqFVGcPuRH7XTjmbIeHQBzp2faDrPhjQ==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.1", - "jest-matcher-utils": "^27.0.1", - "jest-message-util": "^27.0.1", - "jest-regex-util": "^27.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "jest-get-type": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", - "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", - "dev": true - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fecha": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz", - "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==" - }, - "figlet": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.0.tgz", - "integrity": "sha512-ZQJM4aifMpz6H19AW1VqvZ7l4pOE9p7i/3LyxgO2kp+PO/VcDYNqIHEMtkccqIhTXMKci4kjueJr/iCQEaT/Ww==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" - }, - "follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==" - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "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" - } - }, - "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", - "dev": true, - "requires": { - "ini": "1.3.7" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true - }, - "helmet": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.4.1.tgz", - "integrity": "sha512-G8tp0wUMI7i8wkMk2xLcEvESg5PiCitFMYgGRc/PwULB0RVhTP5GFdxOwvJwp9XVha8CuS8mnhmE8I/8dx/pbw==" - }, - "highlight.js": { - "version": "10.7.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.1.tgz", - "integrity": "sha512-S6G97tHGqJ/U8DsXcEdnACbirtbx58Bx9CzIVeYli8OuswCfYI/LsXH2EiGcoGio1KAC3x4mmUwulOllJ2ZyRA==" - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz", - "integrity": "sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==", - "requires": { - "deep-equal": "~1.0.1", - "http-errors": "~1.7.2" - }, - "dependencies": { - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - } - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflation": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", - "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - }, - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-generator-function": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz", - "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==" - }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, - "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - } - }, - "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.0.1.tgz", - "integrity": "sha512-lFEoUdXjbGAIxk/gZhcv98xOaH1hjqG5R/PQHs5GBfIK5iL3tnXCjHQf4HQLVZZ2rcXML3oeVg9+XrRZbooBdQ==", - "dev": true, - "requires": { - "@jest/core": "^27.0.1", - "import-local": "^3.0.2", - "jest-cli": "^27.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "jest-cli": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.0.1.tgz", - "integrity": "sha512-plDsQQwpkKK1SZ5L5xqMa7v/sTwB5LTIeSJqb+cV+4EMlThdUQfg8jwMfHX8jHuUc9TPGLcdoZeBuZcGGn3Rlg==", - "dev": true, - "requires": { - "@jest/core": "^27.0.1", - "@jest/test-result": "^27.0.1", - "@jest/types": "^27.0.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.0.1", - "jest-util": "^27.0.1", - "jest-validate": "^27.0.1", - "prompts": "^2.0.1", - "yargs": "^16.0.3" - } - } - } - }, - "jest-changed-files": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.0.1.tgz", - "integrity": "sha512-Y/4AnqYNcUX/vVgfkmvSA3t7rcg+t8m3CsSGlU+ra8kjlVW5ZqXcBZY/NUew2Mo8M+dn0ApKl+FmGGT1JV5dVA==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "jest-circus": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.0.1.tgz", - "integrity": "sha512-Tz3ytmrsgxWlTwSyPYb8StF9J2IMjLlbBMKAjhL2UU9/0ZpYb2JiEGjXaAhnGauQRbbpyFbSH3yj5HIbdurmwQ==", - "dev": true, - "requires": { - "@jest/environment": "^27.0.1", - "@jest/test-result": "^27.0.1", - "@jest/types": "^27.0.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.0.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.0.1", - "jest-matcher-utils": "^27.0.1", - "jest-message-util": "^27.0.1", - "jest-runner": "^27.0.1", - "jest-runtime": "^27.0.1", - "jest-snapshot": "^27.0.1", - "jest-util": "^27.0.1", - "pretty-format": "^27.0.1", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "pretty-format": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.1.tgz", - "integrity": "sha512-qE+0J6c/gd+R6XTcQgPJMc5hMJNsxzSF5p8iZSbMZ7GQzYGlSLNkh2P80Wa2dbF4gEVUsJEgcrBY+1L2/j265w==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - } - } - }, - "jest-config": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.0.1.tgz", - "integrity": "sha512-V8O6+CZjGF0OMq4kxVR29ztV/LQqlAAcJLw7a94RndfRXkha4U84n50yZCXiPWtAHHTmb3g1y52US6rGPxA+3w==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.0.1", - "@jest/types": "^27.0.1", - "babel-jest": "^27.0.1", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.0.1", - "jest-environment-jsdom": "^27.0.1", - "jest-environment-node": "^27.0.1", - "jest-get-type": "^27.0.1", - "jest-jasmine2": "^27.0.1", - "jest-regex-util": "^27.0.1", - "jest-resolve": "^27.0.1", - "jest-util": "^27.0.1", - "jest-validate": "^27.0.1", - "micromatch": "^4.0.4", - "pretty-format": "^27.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "jest-get-type": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", - "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", - "dev": true - }, - "pretty-format": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.1.tgz", - "integrity": "sha512-qE+0J6c/gd+R6XTcQgPJMc5hMJNsxzSF5p8iZSbMZ7GQzYGlSLNkh2P80Wa2dbF4gEVUsJEgcrBY+1L2/j265w==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - } - } - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-docblock": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.1.tgz", - "integrity": "sha512-TA4+21s3oebURc7VgFV4r7ltdIJ5rtBH1E3Tbovcg7AV+oLfD5DcJ2V2vJ5zFA9sL5CFd/d2D6IpsAeSheEdrA==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.0.1.tgz", - "integrity": "sha512-uJTK/aZ05HsdKkfXucAT5+/1DIURnTRv34OSxn1HWHrD+xu9eDX5Xgds09QSvg/mU01VS5upuHTDKG3W+r0rQA==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.1", - "jest-util": "^27.0.1", - "pretty-format": "^27.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "jest-get-type": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", - "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", - "dev": true - }, - "pretty-format": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.1.tgz", - "integrity": "sha512-qE+0J6c/gd+R6XTcQgPJMc5hMJNsxzSF5p8iZSbMZ7GQzYGlSLNkh2P80Wa2dbF4gEVUsJEgcrBY+1L2/j265w==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - } - } - }, - "jest-environment-jsdom": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.0.1.tgz", - "integrity": "sha512-lesU8T9zkjgLaLpUFmFDgchu6/2OCoXm52nN6UumR063Hb+1TJdI7ihgM86+G01Ay86Lyr+K/FAR6yIIOviH3Q==", - "dev": true, - "requires": { - "@jest/environment": "^27.0.1", - "@jest/fake-timers": "^27.0.1", - "@jest/types": "^27.0.1", - "@types/node": "*", - "jest-mock": "^27.0.1", - "jest-util": "^27.0.1", - "jsdom": "^16.6.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "jest-environment-node": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.0.1.tgz", - "integrity": "sha512-/p94lo0hx+hbKUw1opnRFUPPsjncRBEUU+2Dh7BuxX8Nr4rRiTivLYgXzo79FhaeMYV0uiV5WAbHBq6xC11JJg==", - "dev": true, - "requires": { - "@jest/environment": "^27.0.1", - "@jest/fake-timers": "^27.0.1", - "@jest/types": "^27.0.1", - "@types/node": "*", - "jest-mock": "^27.0.1", - "jest-util": "^27.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "jest-haste-map": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.0.1.tgz", - "integrity": "sha512-ioCuobr4z90H1Pz8+apz2vfz63387apzAoawm/9IIOndarDfRkjLURdLOe//AI5jUQmjVRg+WiL92339kqlCmA==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.1", - "jest-serializer": "^27.0.1", - "jest-util": "^27.0.1", - "jest-worker": "^27.0.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "jest-jasmine2": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.0.1.tgz", - "integrity": "sha512-o8Ist0o970QDDm/R2o9UDbvNxq8A0++FTFQ0z9OnieJwS1nDH6H7WBDYAGPTdmnla7kbW41oLFPvhmjJE4mekg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.0.1", - "@jest/source-map": "^27.0.1", - "@jest/test-result": "^27.0.1", - "@jest/types": "^27.0.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.0.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.0.1", - "jest-matcher-utils": "^27.0.1", - "jest-message-util": "^27.0.1", - "jest-runtime": "^27.0.1", - "jest-snapshot": "^27.0.1", - "jest-util": "^27.0.1", - "pretty-format": "^27.0.1", - "throat": "^6.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "pretty-format": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.1.tgz", - "integrity": "sha512-qE+0J6c/gd+R6XTcQgPJMc5hMJNsxzSF5p8iZSbMZ7GQzYGlSLNkh2P80Wa2dbF4gEVUsJEgcrBY+1L2/j265w==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - } - } - }, - "jest-leak-detector": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.0.1.tgz", - "integrity": "sha512-SQ/lRhfmnV3UuiaKIjwNXCaW2yh1rTMAL4n4Cl4I4gU0X2LoIc6Ogxe4UKM/J6Ld2uzc4gDGVYc5lSdpf6WjYw==", - "dev": true, - "requires": { - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "jest-get-type": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", - "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", - "dev": true - }, - "pretty-format": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.1.tgz", - "integrity": "sha512-qE+0J6c/gd+R6XTcQgPJMc5hMJNsxzSF5p8iZSbMZ7GQzYGlSLNkh2P80Wa2dbF4gEVUsJEgcrBY+1L2/j265w==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - } - } - }, - "jest-matcher-utils": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.0.1.tgz", - "integrity": "sha512-NauNU+olKhPzLlsRnTOYFGk/MK5QFYl9ZzkrtfsY4eCq4SB3Bcl03UL44VdnlN5S/uFn4H2jwvRY1y6nSDTX3g==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.0.1", - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "diff-sequences": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.1.tgz", - "integrity": "sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg==", - "dev": true - }, - "jest-diff": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.1.tgz", - "integrity": "sha512-DQ3OgfJgoGWVTYo4qnYW/Jg5mpYFS2QW9BLxA8bs12ZRN1K8QPZtWeYvUPohQFs3CHX3JLTndGg3jyxdL5THFQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.1", - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.1" - } - }, - "jest-get-type": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", - "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", - "dev": true - }, - "pretty-format": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.1.tgz", - "integrity": "sha512-qE+0J6c/gd+R6XTcQgPJMc5hMJNsxzSF5p8iZSbMZ7GQzYGlSLNkh2P80Wa2dbF4gEVUsJEgcrBY+1L2/j265w==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - } - } - }, - "jest-message-util": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.0.1.tgz", - "integrity": "sha512-w8BfON2GwWORkos8BsxcwwQrLkV2s1ENxSRXK43+6yuquDE2hVxES/jrFqOArpP1ETVqqMmktU6iGkG8ncVzeA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.0.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.0.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "pretty-format": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.1.tgz", - "integrity": "sha512-qE+0J6c/gd+R6XTcQgPJMc5hMJNsxzSF5p8iZSbMZ7GQzYGlSLNkh2P80Wa2dbF4gEVUsJEgcrBY+1L2/j265w==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - } - } - }, - "jest-mock": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.0.1.tgz", - "integrity": "sha512-fXCSZQDT5hUcAUy8OBnB018x7JFOMQnz4XfpSKEbfpWzL6o5qaLRhgf2Qg2NPuVKmC/fgOf33Edj8wjF4I24CQ==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "@types/node": "*" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.1.tgz", - "integrity": "sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ==", - "dev": true - }, - "jest-resolve": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.0.1.tgz", - "integrity": "sha512-Q7QQ0OZ7z6D5Dul0MrsexlKalU8ZwexBfHLSu1qYPgphvUm6WO1b/xUnipU3e+uW1riDzMcJeJVYbdQ37hBHeg==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "chalk": "^4.0.0", - "escalade": "^3.1.1", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.0.1", - "resolve": "^1.20.0", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.1.tgz", - "integrity": "sha512-ly1x5mEf21f3IVWbUNwIz/ePLtv4QdhYuQIVSVDqxx7yzAwhhdu0DJo7UNiEYKQY7Im48wfbNdOUpo7euFUXBQ==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "jest-regex-util": "^27.0.1", - "jest-snapshot": "^27.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "jest-runner": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.0.1.tgz", - "integrity": "sha512-DUNizlD2D7J80G3VOrwfbtb7KYxiftMng82HNcKwTW0W3AwwNuBeq+1exoCnLO7Mxh7NP+k/1XQBlzLpjr/CnA==", - "dev": true, - "requires": { - "@jest/console": "^27.0.1", - "@jest/environment": "^27.0.1", - "@jest/test-result": "^27.0.1", - "@jest/transform": "^27.0.1", - "@jest/types": "^27.0.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^27.0.1", - "jest-docblock": "^27.0.1", - "jest-haste-map": "^27.0.1", - "jest-leak-detector": "^27.0.1", - "jest-message-util": "^27.0.1", - "jest-resolve": "^27.0.1", - "jest-runtime": "^27.0.1", - "jest-util": "^27.0.1", - "jest-worker": "^27.0.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "jest-runtime": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.0.1.tgz", - "integrity": "sha512-ImcrbQtpCUp8X9Rm4ky3j1GG9cqIKZJvXGZyB5cHEapGPTmg7wvvNooLmKragEe61/p/bhw1qO68Y0/9BSsBBg==", - "dev": true, - "requires": { - "@jest/console": "^27.0.1", - "@jest/environment": "^27.0.1", - "@jest/fake-timers": "^27.0.1", - "@jest/globals": "^27.0.1", - "@jest/source-map": "^27.0.1", - "@jest/test-result": "^27.0.1", - "@jest/transform": "^27.0.1", - "@jest/types": "^27.0.1", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.0.1", - "jest-message-util": "^27.0.1", - "jest-mock": "^27.0.1", - "jest-regex-util": "^27.0.1", - "jest-resolve": "^27.0.1", - "jest-snapshot": "^27.0.1", - "jest-util": "^27.0.1", - "jest-validate": "^27.0.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.0.3" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "jest-serializer": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.1.tgz", - "integrity": "sha512-svy//5IH6bfQvAbkAEg1s7xhhgHTtXu0li0I2fdKHDsLP2P2MOiscPQIENQep8oU2g2B3jqLyxKKzotZOz4CwQ==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.0.1.tgz", - "integrity": "sha512-HgKmSebDB3rswugREeh+nKrxJEVZE12K7lZ2MuwfFZT6YmiH0TlofsL2YmiLsCsG5KH5ZcLYYpF5bDrvtVx/Xg==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.0.1", - "@jest/types": "^27.0.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.0.1", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.0.1", - "jest-get-type": "^27.0.1", - "jest-haste-map": "^27.0.1", - "jest-matcher-utils": "^27.0.1", - "jest-message-util": "^27.0.1", - "jest-resolve": "^27.0.1", - "jest-util": "^27.0.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.0.1", - "semver": "^7.3.2" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "diff-sequences": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.1.tgz", - "integrity": "sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg==", - "dev": true - }, - "jest-diff": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.1.tgz", - "integrity": "sha512-DQ3OgfJgoGWVTYo4qnYW/Jg5mpYFS2QW9BLxA8bs12ZRN1K8QPZtWeYvUPohQFs3CHX3JLTndGg3jyxdL5THFQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.1", - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.1" - } - }, - "jest-get-type": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", - "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", - "dev": true - }, - "pretty-format": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.1.tgz", - "integrity": "sha512-qE+0J6c/gd+R6XTcQgPJMc5hMJNsxzSF5p8iZSbMZ7GQzYGlSLNkh2P80Wa2dbF4gEVUsJEgcrBY+1L2/j265w==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-util": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.0.1.tgz", - "integrity": "sha512-lEw3waSmEOO4ZkwkUlFSvg4es1+8+LIkSGxp/kF60K0+vMR3Dv3O2HMZhcln9NHqSQzpVbsDT6OeMzUPW7DfRg==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "is-ci": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - } - } - }, - "jest-validate": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.0.1.tgz", - "integrity": "sha512-zvmPRcfTkqTZuHveIKAI2nbkUc3SDXjWVJULknPLGF5bdxOGSeGZg7f/Uw0MUVOkCOaspcHnsPCgZG0pqmg71g==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.1", - "leven": "^3.1.0", - "pretty-format": "^27.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "jest-get-type": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", - "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", - "dev": true - }, - "pretty-format": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.1.tgz", - "integrity": "sha512-qE+0J6c/gd+R6XTcQgPJMc5hMJNsxzSF5p8iZSbMZ7GQzYGlSLNkh2P80Wa2dbF4gEVUsJEgcrBY+1L2/j265w==", - "dev": true, - "requires": { - "@jest/types": "^27.0.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - } - } - }, - "jest-watcher": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.0.1.tgz", - "integrity": "sha512-Chp9c02BN0IgEbtGreyAhGqIsOrn9a0XnzbuXOxdW1+cW0Tjh12hMzHDIdLFHpYP/TqaMTmPHaJ5KWvpCCrNFw==", - "dev": true, - "requires": { - "@jest/test-result": "^27.0.1", - "@jest/types": "^27.0.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.0.1", - "string-length": "^4.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.1.tgz", - "integrity": "sha512-8A25RRV4twZutsx2D+7WphnDsp7If9Yu6ko0Gxwrwv8BiWESFzka34+Aa2kC8w9xewt7SDuCUSZ6IiAFVj3PRg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", - "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "jest-worker": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.1.tgz", - "integrity": "sha512-NhHqClI3owOjmS8dBhQMKHZ2rrT0sBTpqGitp9nMX5AAjVXd+15o4v96uBEMhoywaLKN+5opcKBlXwAoADZolA==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz", - "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.5", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "keygrip": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", - "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", - "requires": { - "tsscmp": "1.0.6" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "koa": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.1.tgz", - "integrity": "sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w==", - "requires": { - "accepts": "^1.3.5", - "cache-content-type": "^1.0.0", - "content-disposition": "~0.5.2", - "content-type": "^1.0.4", - "cookies": "~0.8.0", - "debug": "~3.1.0", - "delegates": "^1.0.0", - "depd": "^2.0.0", - "destroy": "^1.0.4", - "encodeurl": "^1.0.2", - "escape-html": "^1.0.3", - "fresh": "~0.5.2", - "http-assert": "^1.3.0", - "http-errors": "^1.6.3", - "is-generator-function": "^1.0.7", - "koa-compose": "^4.1.0", - "koa-convert": "^1.2.0", - "on-finished": "^2.3.0", - "only": "~0.0.2", - "parseurl": "^1.3.2", - "statuses": "^1.5.0", - "type-is": "^1.6.16", - "vary": "^1.1.2" - }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - } - } - }, - "koa-bodyparser": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz", - "integrity": "sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==", - "requires": { - "co-body": "^6.0.0", - "copy-to": "^2.0.1" - } - }, - "koa-compose": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", - "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==" - }, - "koa-convert": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz", - "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", - "requires": { - "co": "^4.6.0", - "koa-compose": "^3.0.0" - }, - "dependencies": { - "koa-compose": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz", - "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", - "requires": { - "any-promise": "^1.1.0" - } - } - } - }, - "koa-helmet": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/koa-helmet/-/koa-helmet-6.1.0.tgz", - "integrity": "sha512-WymEv4qo/7ghh15t+1qTjvZBmZkmVlTtfnpe5oxn8m8mO2Q2rKJ3eMvWuQGW/6yVxN9+hQ75evuWcg3XBbFLbg==", - "requires": { - "helmet": "^4.4.1" - } - }, - "kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "requires": { - "package-json": "^6.3.0" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "libphonenumber-js": { - "version": "1.9.15", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.15.tgz", - "integrity": "sha512-gKgvXJmYX00mS+dsy7VUWAsnfKeAyEqGFmDBDor2mtHo08RkceNLQ6PUKS+6h7Tq1SK/4MP2Re8rJ3J0gHmfTA==" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "logform": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", - "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", - "requires": { - "colors": "^1.2.1", - "fast-safe-stringify": "^2.0.4", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "triple-beam": "^1.3.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dev": true, - "requires": { - "tmpl": "1.0.x" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "dependencies": { - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - } - } - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "requires": { - "mime-db": "~1.33.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-releases": { - "version": "1.1.72", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz", - "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==", - "dev": true - }, - "nodemon": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", - "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", - "dev": true, - "requires": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", - "semver": "^5.7.1", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "requires": { - "fn.name": "1.x.x" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "only": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=" - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "parent-require": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz", - "integrity": "sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc=" - }, - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "requires": { - "parse5": "^6.0.1" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - } - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "pg": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.6.0.tgz", - "integrity": "sha512-qNS9u61lqljTDFvmk/N66EeGq3n6Ujzj0FFyNMGQr6XuEv4tgNTXvJQTfJdcvGit5p5/DWPu+wj920hAJFI+QQ==", - "requires": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.3.0", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - } - }, - "pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" - }, - "pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" - }, - "pg-pool": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.3.0.tgz", - "integrity": "sha512-0O5huCql8/D6PIRFAlmccjphLYWC+JIzvUhSzXSpGaf+tjTZc4nn+Lr7mLXBbFJfvwbP0ywDv73EiaBsxn7zdg==" - }, - "pg-protocol": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" - }, - "pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "requires": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - } - }, - "pgpass": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz", - "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==", - "requires": { - "split2": "^3.1.1" - } - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "pop-iterate": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pop-iterate/-/pop-iterate-1.0.1.tgz", - "integrity": "sha1-zqz9q0q/NT16DyqqLB/Hs/lBO6M=" - }, - "postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==" - }, - "postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=" - }, - "postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==" - }, - "postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "requires": { - "xtend": "^4.0.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } - }, - "q": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/q/-/q-2.0.3.tgz", - "integrity": "sha1-dbjbAlWhpa+C9Yw/Oqoe/sfQ0TQ=", - "requires": { - "asap": "^2.0.0", - "pop-iterate": "^1.0.1", - "weak-map": "^1.0.5" - } - }, - "qs": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==" - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.3", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rootpath": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/rootpath/-/rootpath-0.1.2.tgz", - "integrity": "sha1-Wzeah9ypBum5HWkKWZQ5vvJn6ms=" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "scmp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/scmp/-/scmp-2.1.0.tgz", - "integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "requires": { - "is-arrayish": "^0.3.1" - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "requires": { - "readable-stream": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, - "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - } - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - } - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "requires": { - "nopt": "~1.0.10" - } - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "ts-jest": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.1.tgz", - "integrity": "sha512-03qAt77QjhxyM5Bt2KrrT1WbdumiwLz989sD3IUznSp3GIFQrx76kQqSMLF7ynnxrF3/1ipzABnHxMlU8PD4Vw==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "mkdirp": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "ts-node": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.0.0.tgz", - "integrity": "sha512-ROWeOIUvfFbPZkoDis0L/55Fk+6gFQNZwwKPLinacRl6tsxstTF1DbAcLKkovwnpKMVvOMHP1TIbnwXwtLg1gg==", - "dev": true, - "requires": { - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "tsscmp": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==" - }, - "twilio": { - "version": "3.63.0", - "resolved": "https://registry.npmjs.org/twilio/-/twilio-3.63.0.tgz", - "integrity": "sha512-ftZckbTBjJ5dgzdII9j0sqYw9SYq3wqTC9r6NmV7CRU0EXXDil5/AbKb78xNPLtMPx3+mn2N+2oTkQlTtWs9TQ==", - "requires": { - "axios": "^0.21.1", - "dayjs": "^1.8.29", - "https-proxy-agent": "^5.0.0", - "jsonwebtoken": "^8.5.1", - "lodash": "^4.17.19", - "q": "2.0.x", - "qs": "^6.9.4", - "rootpath": "^0.1.2", - "scmp": "^2.1.0", - "url-parse": "^1.5.0", - "xmlbuilder": "^13.0.2" - }, - "dependencies": { - "qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "xmlbuilder": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", - "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==" - } - } - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.18" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typeorm": { - "version": "0.2.32", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.32.tgz", - "integrity": "sha512-LOBZKZ9As3f8KRMPCUT2H0JZbZfWfkcUnO3w/1BFAbL/X9+cADTF6bczDGGaKVENJ3P8SaKheKmBgpt5h1x+EQ==", - "requires": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.10", - "debug": "^4.3.1", - "dotenv": "^8.2.0", - "glob": "^7.1.6", - "js-yaml": "^4.0.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.1.0", - "xml2js": "^0.4.23", - "yargonaut": "^1.1.4", - "yargs": "^16.2.0", - "zen-observable-ts": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "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" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "js-yaml": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", - "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", - "requires": { - "argparse": "^2.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } - } - }, - "typescript": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz", - "integrity": "sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==", - "dev": true - }, - "undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", - "dev": true, - "requires": { - "debug": "^2.2.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "dev": true, - "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "url-parse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", - "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validator": { - "version": "13.5.2", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.2.tgz", - "integrity": "sha512-mD45p0rvHVBlY2Zuy3F3ESIe1h5X58GPfAtslBjY7EtTqGquZTj+VX/J4RnHWN8FKq0C9WRVt1oWAcytWRuYLQ==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, - "requires": { - "makeerror": "1.0.x" - } - }, - "weak-map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz", - "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=" - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz", - "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.0.2", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - } - }, - "winston": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", - "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", - "requires": { - "@dabh/diagnostics": "^2.0.2", - "async": "^3.1.0", - "is-stream": "^2.0.0", - "logform": "^2.2.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.4.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - } - } - }, - "winston-transport": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", - "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", - "requires": { - "readable-stream": "^2.3.7", - "triple-beam": "^1.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - } - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargonaut": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/yargonaut/-/yargonaut-1.1.4.tgz", - "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", - "requires": { - "chalk": "^1.1.1", - "figlet": "^1.1.1", - "parent-require": "^1.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "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" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==" - }, - "yargs-parser": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", - "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==" - } - } - }, - "yargs-parser": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", - "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", - "dev": true - }, - "ylru": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz", - "integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==" - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "zen-observable-ts": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.0.0.tgz", - "integrity": "sha512-KmWcbz+9kKUeAQ8btY8m1SsEFgBcp7h/Uf3V5quhan7ZWdjGsf0JcGLULQiwOZibbFWnHkYq8Nn2AZbJabovQg==", - "requires": { - "@types/zen-observable": "^0.8.2", - "zen-observable": "^0.8.15" - } - } - } -} diff --git a/api/package.json b/api/package.json deleted file mode 100644 index 7427aca..0000000 --- a/api/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "virtual-phone-number-api", - "version": "0.0.1", - "description": "", - "main": "dist/server.js", - "scripts": { - "watch-server": "nodemon --ignore src/__tests__/ --watch src -e ts,tsx --exec ts-node src/server.ts", - "serve": "node dist/server.js", - "build": "tsc", - "start": "npm run serve", - "test": "jest", - "test:coverage": "jest --collect-coverage", - "test:watch": "jest --watch" - }, - "engines": { - "node": ">=14", - "npm": ">=6" - }, - "author": "Mokhtar Mial", - "license": "MIT", - "devDependencies": { - "@types/jest": "^26.0.23", - "@types/koa": "^2.13.2", - "@types/koa-bodyparser": "^4.3.0", - "@types/koa-helmet": "^6.0.2", - "@types/koa__router": "^8.0.4", - "@types/koa__cors": "^3.0.2", - "@types/node": "^14.17.1", - "jest": "^27.0.1", - "nodemon": "^2.0.7", - "ts-jest": "^27.0.1", - "ts-node": "^10.0.0", - "typescript": "^4.3.2" - }, - "dependencies": { - "@koa/cors": "3.1.0", - "@koa/router": "10.0.0", - "@lifeomic/twilio-webhook-validator-koa": "^1.2.0", - "class-validator": "0.13.1", - "dotenv": "10.0.0", - "koa": "2.13.1", - "koa-bodyparser": "4.3.0", - "koa-helmet": "6.1.0", - "pg": "8.6.0", - "reflect-metadata": "0.1.13", - "twilio": "^3.63.0", - "typeorm": "0.2.32", - "winston": "3.3.3" - }, - "jest": { - "roots": [ - "" - ], - "testMatch": [ - "**/__tests__/**/*.+(ts|tsx|js)" - ], - "transform": { - "^.+\\.(ts|tsx)$": "ts-jest" - } - } -} diff --git a/api/src/__tests__/controller/sms.test.ts b/api/src/__tests__/controller/sms.test.ts deleted file mode 100644 index c1c9193..0000000 --- a/api/src/__tests__/controller/sms.test.ts +++ /dev/null @@ -1,60 +0,0 @@ -import SmsController from "../../src/controller/sms"; -import { Sms } from "../../src/entity/sms"; -import { getManager } from "typeorm"; -import { Context } from "koa"; -import { ValidationError, validate } from "class-validator"; - -const sms: Sms = new Sms(); -sms.id = 0; -sms.name = "John"; -sms.name = "johndoe@gmail.com"; - -jest.mock("typeorm", () => { - const doNothing = () => { - //Empty function that mocks typeorm annotations - }; - - return { - getManager: jest.fn(), - PrimaryGeneratedColumn: doNothing, - Column: doNothing, - Entity: doNothing, - Equal: doNothing, - Not: doNothing, - Like: doNothing, - }; -}); -jest.mock("class-validator", () => { - const doNothing = () => { - //Empty function that mocks typeorm annotations - }; - - return { - validate: jest.fn(), - Length: doNothing, - IsEmail: doNothing, - }; -}); - -describe("Sms controller", () => { - it("getUsers should return status 200 and found users.", async () => { - const userRepository = { find: jest.fn().mockReturnValue([sms]) }; - (getManager as jest.Mock).mockReturnValue({ getRepository: () => userRepository }); - const context = { status: undefined, body: undefined } as Context; - await SmsController.sendSms(context); - expect(userRepository.find).toHaveBeenCalledTimes(1); - expect(context.status).toBe(200); - expect(context.body).toStrictEqual([sms]); - }); - - it("createUser should return status 201 if is created.", async () => { - const userRepository = { save: jest.fn().mockReturnValue(sms), findOne: () => undefined as Sms }; - (getManager as jest.Mock).mockReturnValue({ getRepository: () => userRepository }); - (validate as jest.Mock).mockReturnValue([]); - const context = { status: undefined, body: undefined, request: { body: sms } } as unknown as Context; - await SmsController.receiveSms(context); - expect(userRepository.save).toHaveBeenCalledTimes(1); - expect(context.status).toBe(201); - expect(context.body).toStrictEqual(sms); - }); -}); diff --git a/api/src/__tests__/entity/user.test.ts b/api/src/__tests__/entity/user.test.ts deleted file mode 100644 index 2ffbc35..0000000 --- a/api/src/__tests__/entity/user.test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Sms } from "../../src/entity/user"; - -test("user", () => { - const user = new Sms(); - user.name = "John Doe"; - user.email = "johndoe@gmail.com"; - expect(user.name).toBe("John Doe"); - expect(user.email).toBe("johndoe@gmail.com"); -}); diff --git a/api/src/config.ts b/api/src/config.ts deleted file mode 100644 index ca51d97..0000000 --- a/api/src/config.ts +++ /dev/null @@ -1,20 +0,0 @@ -import dotenv from "dotenv"; - -dotenv.config({ path: ".env" }); - -const isDevMode = process.env.NODE_ENV == "development"; - -const config = { - port: +(process.env.PORT || 9029), - debugLogging: isDevMode, - databaseUrl: process.env.DATABASE_URL || "postgres://user:pass@localhost:5432/apidb", - dbEntitiesPath: [ - ...isDevMode ? ["src/entity/**/*.ts"] : ["dist/entity/**/*.js"], - ], - twilio: { - accountSid: process.env.TWILIO_ACCOUNT_SID!, - authToken: process.env.TWILIO_AUTH_TOKEN!, - }, -}; - -export default config; \ No newline at end of file diff --git a/api/src/controller/_encryption.ts b/api/src/controller/_encryption.ts deleted file mode 100644 index 278119d..0000000 --- a/api/src/controller/_encryption.ts +++ /dev/null @@ -1,31 +0,0 @@ -import crypto from "crypto"; - -import config from "../config"; - -const ENCRYPTION_KEY = computeEncryptionKey(config.twilio.accountSid); -const IV_LENGTH = 16; -const ALGORITHM = "aes-256-cbc"; - -export function encrypt(text: string) { - const iv = crypto.randomBytes(IV_LENGTH); - const cipher = crypto.createCipheriv(ALGORITHM, ENCRYPTION_KEY, iv); - const encrypted = cipher.update(text); - const encryptedBuffer = Buffer.concat([encrypted, cipher.final()]); - - return `${iv.toString("hex")}:${encryptedBuffer.toString("hex")}`; -} - -export function decrypt(encryptedHexText: string) { - const [hexIv, hexText] = encryptedHexText.split(":"); - const iv = Buffer.from(hexIv, "hex"); - const encryptedText = Buffer.from(hexText, "hex"); - const decipher = crypto.createDecipheriv(ALGORITHM, ENCRYPTION_KEY, iv); - const decrypted = decipher.update(encryptedText); - const decryptedBuffer = Buffer.concat([decrypted, decipher.final()]); - - return decryptedBuffer.toString(); -} - -function computeEncryptionKey(userIdentifier: string) { - return crypto.scryptSync(userIdentifier, crypto.randomBytes(16), 32); -} diff --git a/api/src/controller/call.ts b/api/src/controller/call.ts deleted file mode 100644 index 22d3f9c..0000000 --- a/api/src/controller/call.ts +++ /dev/null @@ -1,15 +0,0 @@ -import Router from "@koa/router"; -import { Twilio, twiml } from "twilio"; - -import config from "../config"; - -const forwardTo = "+33613370787"; - -export default class CallController { - public static forwardCall: Router.Middleware = async (ctx) => { - const voiceResponse = new twiml.VoiceResponse() - voiceResponse.dial(forwardTo); - - ctx.status = 200; - }; -} \ No newline at end of file diff --git a/api/src/controller/sms.ts b/api/src/controller/sms.ts deleted file mode 100644 index e2d1f59..0000000 --- a/api/src/controller/sms.ts +++ /dev/null @@ -1,106 +0,0 @@ -import Router from "@koa/router"; -import { Twilio } from "twilio"; -import { getManager } from "typeorm"; - -import config from "../config"; -import { Sms, SmsType } from "../entity/sms"; -import { decrypt, encrypt } from "./_encryption"; - -const client = new Twilio(config.twilio.accountSid, config.twilio.authToken); -const phoneNumber = "+33757592025"; -// const from = "Mokhtar"; - -type Recipient = string; -export type Conversation = Record; - -export default class SmsController { - public static getConversations: Router.Middleware = async (ctx) => { - const smsRepository = getManager().getRepository(Sms); - const messages = await smsRepository.find({ - where: [ - { from: phoneNumber }, - { to: phoneNumber }, - ], - }); - const conversations = messages.reduce((acc, message) => { - let recipient: string; - if (message.type === SmsType.SENT) { - recipient = message.to; - } else { - recipient = message.from; - } - - if (!acc[recipient]) { - acc[recipient] = []; - } - - acc[recipient].push({ - ...message, - content: decrypt(message.content), // TODO: should probably decrypt on the phone - }); - - return acc; - }, {}); - - ctx.body = conversations; - ctx.status = 200; - }; - - public static sendSms: Router.Middleware = async (ctx) => { - const smsRepository = getManager().getRepository(Sms); - const { to, content } = ctx.request.body; - await client.messages.create({ body: content, from: phoneNumber, to }); - const sms = new Sms(); - sms.type = SmsType.SENT; - sms.sentAt = new Date(); - sms.content = encrypt(content); // TODO: should probably encrypt on the phone - sms.to = to; - sms.from = phoneNumber; - await smsRepository.save(sms); - - ctx.status = 200; - }; - - public static receiveSms: Router.Middleware = async (ctx) => { - const smsRepository = getManager().getRepository(Sms); - console.log("ctx.request.body", ctx.request.body); - const body: ReceivedSms = ctx.request.body; - console.log("body.From", body.From); - console.log("body.To", body.To); - console.log("body.Body", body.Body); - const sms = new Sms(); - sms.type = SmsType.RECEIVED; - sms.sentAt = new Date(); - sms.content = encrypt(body.Body); - sms.to = body.To; - sms.from = body.From; - await smsRepository.save(sms); - - // TODO: send notification to `body.To` and let him know he received an SMS - - ctx.status = 200; - ctx.body = undefined; - }; -} - -type ReceivedSms = { - ToCountry: string; - ToState: string; - SmsMessageSid: string; - NumMedia: string; - ToCity: string; - FromZip: string; - SmsSid: string; - FromState: string; - SmsStatus: string; - FromCity: string; - Body: string; - FromCountry: string; - To: string; - ToZip: string; - NumSegments: string; - MessageSid: string; - AccountSid: string; - From: string; - ApiVersion: string; -} diff --git a/api/src/entity/sms.ts b/api/src/entity/sms.ts deleted file mode 100644 index 12bc5ee..0000000 --- a/api/src/entity/sms.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Entity, Column, PrimaryGeneratedColumn, Index, CreateDateColumn } from "typeorm"; -import { Length, IsPhoneNumber } from "class-validator"; - -export enum SmsType { - SENT = "sent", - RECEIVED = "received", -} - -@Entity() -export class Sms { - @PrimaryGeneratedColumn() - id: number; - - @Column("text") - @Length(1, 10000) - content: string; - - @Index() - @Column("text") - @IsPhoneNumber() - from: string; - - @Index() - @Column("text") - @IsPhoneNumber() - to: string; - - @Column({ - type: "enum", - enum: SmsType, - }) - type: SmsType; - - @CreateDateColumn() - sentAt: Date; -} diff --git a/api/src/logger.ts b/api/src/logger.ts deleted file mode 100644 index effff57..0000000 --- a/api/src/logger.ts +++ /dev/null @@ -1,48 +0,0 @@ -import type { Context, Middleware } from "koa"; -import { transports, format } from "winston"; -import path from "path"; - -import config from "./config"; - -const logger = (winstonInstance: typeof import("winston")): Middleware => { - winstonInstance.configure({ - level: config.debugLogging ? "debug" : "info", - transports: [ - // - Write all logs error (and below) to `error.log`. - new transports.File({ filename: path.resolve(__dirname, "../error.log"), level: "error" }), - // - Write to all logs with specified level to console. - new transports.Console({ - format: format.combine( - format.colorize(), - format.simple(), - ), - }), - ], - }); - - return async (ctx: Context, next: () => Promise): Promise => { - const start = Date.now(); - try { - await next(); - } catch (err) { - ctx.status = err.status || 500; - ctx.body = err.message; - } - const ms = Date.now() - start; - - let logLevel: string; - if (ctx.status >= 500) { - logLevel = "error"; - } else if (ctx.status >= 400) { - logLevel = "warn"; - } else { - logLevel = "info"; - } - - const msg = `${ctx.method} ${ctx.originalUrl} ${ctx.status} ${ms}ms`; - - winstonInstance.log(logLevel, msg); - }; -}; - -export default logger; diff --git a/api/src/router.ts b/api/src/router.ts deleted file mode 100644 index 5bdee1c..0000000 --- a/api/src/router.ts +++ /dev/null @@ -1,15 +0,0 @@ -import Router from "@koa/router"; - -import SmsController from "./controller/sms"; -import CallController from "./controller/call"; -import { webhookValidator } from "@lifeomic/twilio-webhook-validator-koa"; -import config from "./config"; - -const router = new Router(); - -router.get("/conversations", SmsController.getConversations); -router.post("/send-sms", SmsController.sendSms); -router.post("/receive-sms", webhookValidator({ authToken: config.twilio.authToken, protocol: "https" }), SmsController.receiveSms); -router.post("/receive-call", webhookValidator({ authToken: config.twilio.authToken, protocol: "https" }), CallController.forwardCall); - -export default router; diff --git a/api/src/server.ts b/api/src/server.ts deleted file mode 100644 index 68ddc97..0000000 --- a/api/src/server.ts +++ /dev/null @@ -1,46 +0,0 @@ -import Koa from "koa"; -import bodyParser from "koa-bodyparser"; -import helmet from "koa-helmet"; -import cors from "@koa/cors"; -import winston from "winston"; -import type { ConnectionOptions } from "typeorm"; -import { createConnection } from "typeorm"; -import "reflect-metadata"; - -import logger from "./logger"; -import config from "./config"; -import router from "./router"; - -const connectionOptions: ConnectionOptions = { - type: "postgres", - url: config.databaseUrl, - synchronize: true, - logging: false, - entities: config.dbEntitiesPath, - extra: {}, -}; - -// create connection with database -// note that its not active database connection -// TypeORM creates you connection pull to uses connections from pull on your requests -createConnection(connectionOptions).then(async () => { - const app = new Koa(); - - app.use(helmet.contentSecurityPolicy({ - directives: { - defaultSrc: ["'self'"], - scriptSrc: ["'self'", "'unsafe-inline'", "cdnjs.cloudflare.com"], - styleSrc: ["'self'", "'unsafe-inline'", "cdnjs.cloudflare.com", "fonts.googleapis.com"], - fontSrc: ["'self'", "fonts.gstatic.com"], - imgSrc: ["'self'", "data:"], - }, - })); - app.use(cors()); - app.use(logger(winston)); - app.use(bodyParser()); - app.use(router.routes()).use(router.allowedMethods()); - - app.listen(config.port, () => { - console.log(`Server running on port ${config.port}`); - }); -}).catch((error: string) => console.log("TypeORM connection error: ", error)); diff --git a/api/tsconfig.json b/api/tsconfig.json deleted file mode 100644 index 616e1b2..0000000 --- a/api/tsconfig.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2017", - "module": "commonjs", - "lib": ["es6"], - "sourceMap": true, - "outDir": "dist", - "strict": true, - "strictPropertyInitialization": false, - "moduleResolution": "node", - "baseUrl": ".", - "paths": { - "*": [ - "node_modules/*" - ] - }, - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "skipLibCheck": true - }, - "include": [ - "src/**/*" - ], - "exclude": [ - "src/__tests__" - ] -} diff --git a/app/.expo-shared/assets.json b/app/.expo-shared/assets.json deleted file mode 100644 index 8724668..0000000 --- a/app/.expo-shared/assets.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "e997a5256149a4b76e6bfd6cbf519c5e5a0f1d278a3d8fa1253022b03c90473b": true, - "af683c96e0ffd2cf81287651c9433fa44debc1220ca7cb431fe482747f34a505": true, - "12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true, - "40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true -} diff --git a/app/.gitignore b/app/.gitignore deleted file mode 100644 index 454c38f..0000000 --- a/app/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -node_modules/ -.expo/ -npm-debug.* -*.jks -*.p8 -*.p12 -*.key -*.mobileprovision -*.orig.* -web-build/ - -# macOS -.DS_Store diff --git a/app/App.tsx b/app/App.tsx deleted file mode 100644 index 359d5d6..0000000 --- a/app/App.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import "react-native-gesture-handler"; -import { StatusBar } from "expo-status-bar"; -import React from "react"; -import { SafeAreaProvider } from "react-native-safe-area-context"; - -import useCachedResources from "./hooks/useCachedResources"; -import useColorScheme from "./hooks/useColorScheme"; -import Navigation from "./navigation"; - -export default function App() { - const isLoadingComplete = useCachedResources(); - const colorScheme = useColorScheme(); - - if (!isLoadingComplete) { - return null; - } else { - return ( - - - - - ); - } -} diff --git a/app/app.json b/app/app.json deleted file mode 100644 index dbf5b69..0000000 --- a/app/app.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "expo": { - "name": "virtual-phone", - "slug": "virtual-phone", - "version": "1.0.0", - "orientation": "portrait", - "icon": "./assets/images/icon.png", - "scheme": "myapp", - "userInterfaceStyle": "automatic", - "splash": { - "image": "./assets/images/splash.png", - "resizeMode": "contain", - "backgroundColor": "#ffffff" - }, - "updates": { - "fallbackToCacheTimeout": 0 - }, - "assetBundlePatterns": [ - "**/*" - ], - "ios": { - "supportsTablet": true - }, - "android": { - "adaptiveIcon": { - "foregroundImage": "./assets/images/adaptive-icon.png", - "backgroundColor": "#ffffff" - } - }, - "web": { - "favicon": "./assets/images/favicon.png" - } - } -} diff --git a/app/assets/fonts/SpaceMono-Regular.ttf b/app/assets/fonts/SpaceMono-Regular.ttf deleted file mode 100755 index 28d7ff717769d29e5d1f036bfa91eea660ce8a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93252 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%0Ay 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 diff --git a/app/assets/images/icon.png b/app/assets/images/icon.png deleted file mode 100644 index a0b1526fc7b78680fd8d733dbc6113e1af695487..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22380 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 diff --git a/app/assets/images/splash.png b/app/assets/images/splash.png deleted file mode 100644 index 6f47774733be408640c3db372cf91117354b0479..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48478 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 Iol`;+02ibJL;wH) diff --git a/app/babel.config.js b/app/babel.config.js deleted file mode 100644 index 0271cb6..0000000 --- a/app/babel.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = function (api) { - api.cache(true); - return { - presets: ["babel-preset-expo"], - plugins: ["react-native-reanimated/plugin"], - }; -}; diff --git a/app/components/EditScreenInfo.tsx b/app/components/EditScreenInfo.tsx deleted file mode 100644 index fbb0d05..0000000 --- a/app/components/EditScreenInfo.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import * as WebBrowser from "expo-web-browser"; -import React from "react"; -import { StyleSheet, TouchableOpacity } from "react-native"; - -import Colors from "../constants/Colors"; -import { MonoText } from "./StyledText"; -import { Text, View } from "./Themed"; - -export default function EditScreenInfo({ path }: { path: string }) { - return ( - - - - Open up the code for this screen: - - - - {path} - - - - Change any of the text, save the file, and your app will automatically update. - - - - - - - Tap here if your app doesn't automatically update after making changes - - - - - ); -} - -function handleHelpPress() { - WebBrowser.openBrowserAsync( - "https://docs.expo.io/get-started/create-a-new-app/#opening-the-app-on-your-phonetablet", - ); -} - -const styles = StyleSheet.create({ - getStartedContainer: { - alignItems: "center", - marginHorizontal: 50, - }, - homeScreenFilename: { - marginVertical: 7, - }, - codeHighlightContainer: { - borderRadius: 3, - paddingHorizontal: 4, - }, - getStartedText: { - fontSize: 17, - lineHeight: 24, - textAlign: "center", - }, - helpContainer: { - marginTop: 15, - marginHorizontal: 20, - alignItems: "center", - }, - helpLink: { - paddingVertical: 15, - }, - helpLinkText: { - textAlign: "center", - }, -}); diff --git a/app/components/StyledText.tsx b/app/components/StyledText.tsx deleted file mode 100644 index 52f5671..0000000 --- a/app/components/StyledText.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import * as React from "react"; - -import { Text, TextProps } from "./Themed"; - -export function MonoText(props: TextProps) { - return ; -} diff --git a/app/components/Themed.tsx b/app/components/Themed.tsx deleted file mode 100644 index 9eea436..0000000 --- a/app/components/Themed.tsx +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Learn more about Light and Dark modes: - * https://docs.expo.io/guides/color-schemes/ - */ - -import * as React from "react"; -import { Text as DefaultText, View as DefaultView } from "react-native"; - -import Colors from "../constants/Colors"; -import useColorScheme from "../hooks/useColorScheme"; - -export function useThemeColor( - props: { light?: string; dark?: string }, - colorName: keyof typeof Colors.light & keyof typeof Colors.dark, -) { - const theme = useColorScheme(); - const colorFromProps = props[theme]; - - if (colorFromProps) { - return colorFromProps; - } else { - return Colors[theme][colorName]; - } -} - -type ThemeProps = { - lightColor?: string; - darkColor?: string; -}; - -export type TextProps = ThemeProps & DefaultText["props"]; -export type ViewProps = ThemeProps & DefaultView["props"]; - -export function Text(props: TextProps) { - const { style, lightColor, darkColor, ...otherProps } = props; - const color = useThemeColor({ light: lightColor, dark: darkColor }, "text"); - - return ; -} - -export function View(props: ViewProps) { - const { style, lightColor, darkColor, ...otherProps } = props; - const backgroundColor = useThemeColor({ light: lightColor, dark: darkColor }, "background"); - - return ; -} diff --git a/app/components/__tests__/StyledText-test.js b/app/components/__tests__/StyledText-test.js deleted file mode 100644 index cc49647..0000000 --- a/app/components/__tests__/StyledText-test.js +++ /dev/null @@ -1,10 +0,0 @@ -import * as React from "react"; -import renderer from "react-test-renderer"; - -import { MonoText } from "../StyledText"; - -it(`renders correctly`, () => { - const tree = renderer.create(Snapshot test!).toJSON(); - - expect(tree).toMatchSnapshot(); -}); diff --git a/app/constants/Colors.ts b/app/constants/Colors.ts deleted file mode 100644 index 3a81a77..0000000 --- a/app/constants/Colors.ts +++ /dev/null @@ -1,19 +0,0 @@ -const tintColorLight = "#2f95dc"; -const tintColorDark = "#fff"; - -export default { - light: { - text: "#000", - background: "#fff", - tint: tintColorLight, - tabIconDefault: "#ccc", - tabIconSelected: tintColorLight, - }, - dark: { - text: "#fff", - background: "#000", - tint: tintColorDark, - tabIconDefault: "#ccc", - tabIconSelected: tintColorDark, - }, -}; diff --git a/app/constants/Layout.ts b/app/constants/Layout.ts deleted file mode 100644 index 5e62a01..0000000 --- a/app/constants/Layout.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Dimensions } from "react-native"; - -const width = Dimensions.get("window").width; -const height = Dimensions.get("window").height; - -export default { - window: { - width, - height, - }, - isSmallDevice: width < 375, -}; diff --git a/app/hooks/useCachedResources.ts b/app/hooks/useCachedResources.ts deleted file mode 100644 index 42b569e..0000000 --- a/app/hooks/useCachedResources.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Ionicons } from "@expo/vector-icons"; -import * as Font from "expo-font"; -import * as SplashScreen from "expo-splash-screen"; -import * as React from "react"; - -export default function useCachedResources() { - const [isLoadingComplete, setLoadingComplete] = React.useState(false); - - // Load any resources or data that we need prior to rendering the app - React.useEffect(() => { - async function loadResourcesAndDataAsync() { - try { - SplashScreen.preventAutoHideAsync(); - - // Load fonts - await Font.loadAsync({ - ...Ionicons.font, - "space-mono": require("../assets/fonts/SpaceMono-Regular.ttf"), - }); - } catch (e) { - // We might want to provide this error information to an error reporting service - console.warn(e); - } finally { - setLoadingComplete(true); - SplashScreen.hideAsync(); - } - } - - loadResourcesAndDataAsync(); - }, []); - - return isLoadingComplete; -} diff --git a/app/hooks/useColorScheme.ts b/app/hooks/useColorScheme.ts deleted file mode 100644 index b675eb8..0000000 --- a/app/hooks/useColorScheme.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ColorSchemeName, useColorScheme as _useColorScheme } from "react-native"; - -// The useColorScheme value is always either light or dark, but the built-in -// type suggests that it can be null. This will not happen in practice, so this -// makes it a bit easier to work with. -export default function useColorScheme(): NonNullable { - return _useColorScheme() as NonNullable; -} diff --git a/app/navigation/BottomTabNavigator.tsx b/app/navigation/BottomTabNavigator.tsx deleted file mode 100644 index 448c702..0000000 --- a/app/navigation/BottomTabNavigator.tsx +++ /dev/null @@ -1,78 +0,0 @@ -/** - * Learn more about createBottomTabNavigator: - * https://reactnavigation.org/docs/bottom-tab-navigator - */ - -import { Ionicons } from "@expo/vector-icons"; -import { createBottomTabNavigator } from "@react-navigation/bottom-tabs"; -import { createStackNavigator } from "@react-navigation/stack"; -import * as React from "react"; - -import Colors from "../constants/Colors"; -import useColorScheme from "../hooks/useColorScheme"; -import TabOneScreen from "../screens/TabOneScreen"; -import TabTwoScreen from "../screens/TabTwoScreen"; -import { BottomTabParamList, TabOneParamList, TabTwoParamList } from "../types"; - -const BottomTab = createBottomTabNavigator(); - -export default function BottomTabNavigator() { - const colorScheme = useColorScheme(); - - return ( - - , - }} - /> - , - }} - /> - - ); -} - -// You can explore the built-in icon families and icons on the web at: -// https://icons.expo.fyi/ -function TabBarIcon(props: { name: React.ComponentProps["name"]; color: string }) { - return ; -} - -// Each tab has its own navigation stack, you can read more about this pattern here: -// https://reactnavigation.org/docs/tab-based-navigation#a-stack-navigator-for-each-tab -const TabOneStack = createStackNavigator(); - -function TabOneNavigator() { - return ( - - - - ); -} - -const TabTwoStack = createStackNavigator(); - -function TabTwoNavigator() { - return ( - - - - ); -} diff --git a/app/navigation/LinkingConfiguration.ts b/app/navigation/LinkingConfiguration.ts deleted file mode 100644 index 4cfb50c..0000000 --- a/app/navigation/LinkingConfiguration.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Learn more about deep linking with React Navigation - * https://reactnavigation.org/docs/deep-linking - * https://reactnavigation.org/docs/configuring-links - */ - -import * as Linking from "expo-linking"; - -export default { - prefixes: [Linking.makeUrl("/")], - config: { - screens: { - Root: { - screens: { - TabOne: { - screens: { - TabOneScreen: "one", - }, - }, - TabTwo: { - screens: { - TabTwoScreen: "two", - }, - }, - }, - }, - NotFound: "*", - }, - }, -}; diff --git a/app/navigation/index.tsx b/app/navigation/index.tsx deleted file mode 100644 index d192e9e..0000000 --- a/app/navigation/index.tsx +++ /dev/null @@ -1,37 +0,0 @@ -/** - * If you are not familiar with React Navigation, check out the "Fundamentals" guide: - * https://reactnavigation.org/docs/getting-started - * - */ -import { NavigationContainer, DefaultTheme, DarkTheme } from "@react-navigation/native"; -import { createStackNavigator } from "@react-navigation/stack"; -import * as React from "react"; -import { ColorSchemeName } from "react-native"; - -import NotFoundScreen from "../screens/NotFoundScreen"; -import { RootStackParamList } from "../types"; -import BottomTabNavigator from "./BottomTabNavigator"; -import LinkingConfiguration from "./LinkingConfiguration"; - -export default function Navigation({ colorScheme }: { colorScheme: ColorSchemeName }) { - return ( - - - - ); -} - -// A root stack navigator is often used for displaying modals on top of all other content -// Read more here: https://reactnavigation.org/docs/modal -const Stack = createStackNavigator(); - -function RootNavigator() { - return ( - - - - - ); -} diff --git a/app/package-lock.json b/app/package-lock.json deleted file mode 100644 index faad74b..0000000 --- a/app/package-lock.json +++ /dev/null @@ -1,15458 +0,0 @@ -{ - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/compat-data": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz", - "integrity": "sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==" - }, - "@babel/core": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz", - "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.3", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.14.2", - "@babel/helpers": "^7.14.0", - "@babel/parser": "^7.14.3", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/generator": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", - "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", - "requires": { - "@babel/types": "^7.14.2", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", - "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz", - "integrity": "sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==", - "requires": { - "@babel/compat-data": "^7.14.4", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz", - "integrity": "sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.14.4", - "@babel/helper-split-export-declaration": "^7.12.13" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.3.tgz", - "integrity": "sha512-JIB2+XJrb7v3zceV2XzDhGIB902CmKGSpSl4q2C6agU9SNLG/2V1RtFRGPG1Ajh9STj3+q6zJMOC+N/pp2P9DA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", - "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", - "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", - "requires": { - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-function-name": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", - "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.14.2" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz", - "integrity": "sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==", - "requires": { - "@babel/traverse": "^7.13.15", - "@babel/types": "^7.13.16" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-module-transforms": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", - "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", - "requires": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-simple-access": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.14.0", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", - "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-wrap-function": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-replace-supers": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz", - "integrity": "sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", - "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" - }, - "@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" - }, - "@babel/helper-wrap-function": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", - "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", - "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "@babel/helpers": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", - "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", - "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0" - } - }, - "@babel/highlight": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", - "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } - } - }, - "@babel/parser": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz", - "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==" - }, - "@babel/plugin-external-helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-external-helpers/-/plugin-external-helpers-7.12.13.tgz", - "integrity": "sha512-ClvAsk4RqpE6iacYUjdU9PtvIwC9yAefZENsPfGeG5FckX3jFZLDlWPuyv5gi9/9C2VgwX6H8q1ukBifC0ha+Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz", - "integrity": "sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.13.tgz", - "integrity": "sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.2.tgz", - "integrity": "sha512-LauAqDd/VjQDtae58QgBcEOE42NNP+jB2OE+XeC3KBI/E+BhhRjtr5viCIrj1hmu1YvrguLipIPRJZmS5yUcFw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.2", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-decorators": "^7.12.13" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz", - "integrity": "sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-default-from": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.12.13.tgz", - "integrity": "sha512-idIsBT+DGXdOHL82U+8bwX4goHm/z10g8sGGrQroh+HCRcm7mDv/luaGdWJQMTuCX2FsdXS7X0Nyyzp4znAPJA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-export-default-from": "^7.12.13" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz", - "integrity": "sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz", - "integrity": "sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz", - "integrity": "sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz", - "integrity": "sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz", - "integrity": "sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz", - "integrity": "sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA==", - "requires": { - "@babel/compat-data": "^7.14.4", - "@babel/helper-compilation-targets": "^7.14.4", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.14.2" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz", - "integrity": "sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz", - "integrity": "sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", - "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", - "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz", - "integrity": "sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-default-from": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.12.13.tgz", - "integrity": "sha512-gVry0zqoums0hA+EniCYK3gABhjYSLX1dVuwYpPw9DrLNA4/GovXySHVg4FGRsZht09ON/5C2NVx3keq+qqVGQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz", - "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", - "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz", - "integrity": "sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", - "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", - "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", - "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz", - "integrity": "sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz", - "integrity": "sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-replace-supers": "^7.14.4", - "@babel/helper-split-export-declaration": "^7.12.13", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", - "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz", - "integrity": "sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", - "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", - "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", - "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz", - "integrity": "sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-flow": "^7.12.13" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", - "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", - "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", - "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", - "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", - "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz", - "integrity": "sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw==", - "requires": { - "@babel/helper-module-transforms": "^7.14.2", - "@babel/helper-plugin-utils": "^7.13.0", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz", - "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==", - "requires": { - "@babel/helper-module-transforms": "^7.14.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.13.12", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", - "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", - "requires": { - "@babel/helper-hoist-variables": "^7.13.0", - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-identifier": "^7.12.11", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz", - "integrity": "sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==", - "requires": { - "@babel/helper-module-transforms": "^7.14.0", - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", - "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", - "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-object-assign": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.12.13.tgz", - "integrity": "sha512-4QxDMc0lAOkIBSfCrnSGbAJ+4epDBF2XXwcLXuBcG1xl9u7LrktNVD4+LwhL47XuKVPQ7R25e/WdcV+h97HyZA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", - "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz", - "integrity": "sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", - "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.2.tgz", - "integrity": "sha512-zCubvP+jjahpnFJvPaHPiGVfuVUjXHhFvJKQdNnsmSsiU9kR/rCZ41jHc++tERD2zV+p7Hr6is+t5b6iWTCqSw==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.3.tgz", - "integrity": "sha512-uuxuoUNVhdgYzERiHHFkE4dWoJx+UFVyuAl0aqN8P2/AKFHwqgUC5w2+4/PjpKXJsFgBlYAFXlUmDQ3k3DUkXw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/types": "^7.14.2" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz", - "integrity": "sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.14.2.tgz", - "integrity": "sha512-OMorspVyjxghAjzgeAWc6O7W7vHbJhV69NeTGdl9Mxgz6PaweAuo7ffB9T5A1OQ9dGcw0As4SYMUhyNC4u7mVg==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz", - "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", - "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.3.tgz", - "integrity": "sha512-t960xbi8wpTFE623ef7sd+UpEC5T6EEguQlTBJDEO05+XwnIWVfuqLw/vdLWY6IdFmtZE+65CZAfByT39zRpkg==", - "requires": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-plugin-utils": "^7.13.0", - "babel-plugin-polyfill-corejs2": "^0.2.0", - "babel-plugin-polyfill-corejs3": "^0.2.0", - "babel-plugin-polyfill-regenerator": "^0.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", - "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", - "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", - "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", - "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", - "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.4.tgz", - "integrity": "sha512-WYdcGNEO7mCCZ2XzRlxwGj3PgeAr50ifkofOUC/+IN/GzKLB+biDPVBUAQN2C/dVZTvEXCp80kfQ1FFZPrwykQ==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.4", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-typescript": "^7.12.13" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", - "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", - "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/preset-env": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.17.tgz", - "integrity": "sha512-9PMijx8zFbCwTHrd2P4PJR5nWGH3zWebx2OcpTjqQrHhCiL2ssSR2Sc9ko2BsI2VmVBfoaQmPrlMTCui4LmXQg==", - "requires": { - "@babel/compat-data": "^7.12.13", - "@babel/helper-compilation-targets": "^7.12.17", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-validator-option": "^7.12.17", - "@babel/plugin-proposal-async-generator-functions": "^7.12.13", - "@babel/plugin-proposal-class-properties": "^7.12.13", - "@babel/plugin-proposal-dynamic-import": "^7.12.17", - "@babel/plugin-proposal-export-namespace-from": "^7.12.13", - "@babel/plugin-proposal-json-strings": "^7.12.13", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.13", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.13", - "@babel/plugin-proposal-numeric-separator": "^7.12.13", - "@babel/plugin-proposal-object-rest-spread": "^7.12.13", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.13", - "@babel/plugin-proposal-optional-chaining": "^7.12.17", - "@babel/plugin-proposal-private-methods": "^7.12.13", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.13", - "@babel/plugin-transform-arrow-functions": "^7.12.13", - "@babel/plugin-transform-async-to-generator": "^7.12.13", - "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.12.13", - "@babel/plugin-transform-classes": "^7.12.13", - "@babel/plugin-transform-computed-properties": "^7.12.13", - "@babel/plugin-transform-destructuring": "^7.12.13", - "@babel/plugin-transform-dotall-regex": "^7.12.13", - "@babel/plugin-transform-duplicate-keys": "^7.12.13", - "@babel/plugin-transform-exponentiation-operator": "^7.12.13", - "@babel/plugin-transform-for-of": "^7.12.13", - "@babel/plugin-transform-function-name": "^7.12.13", - "@babel/plugin-transform-literals": "^7.12.13", - "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.12.13", - "@babel/plugin-transform-modules-commonjs": "^7.12.13", - "@babel/plugin-transform-modules-systemjs": "^7.12.13", - "@babel/plugin-transform-modules-umd": "^7.12.13", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", - "@babel/plugin-transform-new-target": "^7.12.13", - "@babel/plugin-transform-object-super": "^7.12.13", - "@babel/plugin-transform-parameters": "^7.12.13", - "@babel/plugin-transform-property-literals": "^7.12.13", - "@babel/plugin-transform-regenerator": "^7.12.13", - "@babel/plugin-transform-reserved-words": "^7.12.13", - "@babel/plugin-transform-shorthand-properties": "^7.12.13", - "@babel/plugin-transform-spread": "^7.12.13", - "@babel/plugin-transform-sticky-regex": "^7.12.13", - "@babel/plugin-transform-template-literals": "^7.12.13", - "@babel/plugin-transform-typeof-symbol": "^7.12.13", - "@babel/plugin-transform-unicode-escapes": "^7.12.13", - "@babel/plugin-transform-unicode-regex": "^7.12.13", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.17", - "core-js-compat": "^3.8.0", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-typescript": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.17.tgz", - "integrity": "sha512-T513uT4VSThRcmWeqcLkITKJ1oGQho9wfWuhQm10paClQkp1qyd0Wf8mvC8Se7UYssMyRSj4tZYpVTkCmAK/mA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-validator-option": "^7.12.17", - "@babel/plugin-transform-typescript": "^7.12.17" - } - }, - "@babel/register": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.13.16.tgz", - "integrity": "sha512-dh2t11ysujTwByQjXNgJ48QZ2zcXKQVdV8s0TbeMI0flmtGWCdTwK9tJiACHXPLmncm5+ktNn/diojA45JE4jg==", - "requires": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.0", - "source-map-support": "^0.5.16" - } - }, - "@babel/runtime": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", - "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", - "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@egjs/hammerjs": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", - "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", - "requires": { - "@types/hammerjs": "^2.0.36" - } - }, - "@expo/config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-4.0.2.tgz", - "integrity": "sha512-zKKWt6Qs2lJLSwp8NeBCQ+iAPuKYkRJB6PZZJFIXaXD9AC5uJYSElUG+HVfy73se4KF/4JjndOWXWZEkCAivxw==", - "requires": { - "@babel/core": "7.9.0", - "@babel/plugin-proposal-class-properties": "~7.12.13", - "@babel/preset-env": "~7.12.13", - "@babel/preset-typescript": "~7.12.13", - "@expo/config-plugins": "2.0.2", - "@expo/config-types": "^41.0.0", - "@expo/json-file": "8.2.30", - "fs-extra": "9.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0", - "semver": "7.3.2", - "slugify": "^1.3.4" - }, - "dependencies": { - "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - } - } - }, - "@expo/config-plugins": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-2.0.2.tgz", - "integrity": "sha512-kaTfzLfg9sjy9uAHq708FVqC2hlVQyzCmrCsnfRguk2d+5V9ZyCVdMPiDdAIKHtWCPygIPNmlIP4FYQ093RNzQ==", - "requires": { - "@expo/config-types": "^41.0.0", - "@expo/json-file": "8.2.30", - "@expo/plist": "0.0.13", - "find-up": "~5.0.0", - "fs-extra": "9.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "slash": "^3.0.0", - "xcode": "^3.0.1", - "xml2js": "^0.4.23" - } - }, - "@expo/config-types": { - "version": "41.0.0", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-41.0.0.tgz", - "integrity": "sha512-Ax0pHuY5OQaSrzplOkT9DdpdmNzaVDnq9VySb4Ujq7UJ4U4jriLy8u93W98zunOXpcu0iiKubPsqD6lCiq0pig==" - }, - "@expo/configure-splash-screen": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@expo/configure-splash-screen/-/configure-splash-screen-0.4.0.tgz", - "integrity": "sha512-IDPnr2/DW1tYpDHqedFYNCDzRTf9HYinWFQ7fOelNZLuOCMoErLbSStA5zfkv46o69AgcCpteqgKHSoxsIBz5g==", - "requires": { - "color-string": "^1.5.3", - "commander": "^5.1.0", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "lodash": "^4.17.15", - "pngjs": "^5.0.0", - "xcode": "^3.0.0", - "xml-js": "^1.6.11" - } - }, - "@expo/image-utils": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.14.tgz", - "integrity": "sha512-n+JkLZ71CWuNKLVVsPTzMGRwmbeKiVQw/2b99Ro7znCKzJy3tyE5T2C6WBvYh/5h/hjg8TqEODjXXWucRIzMXA==", - "requires": { - "@expo/spawn-async": "1.5.0", - "chalk": "^4.0.0", - "fs-extra": "9.0.0", - "getenv": "^1.0.0", - "jimp": "0.12.1", - "mime": "^2.4.4", - "node-fetch": "^2.6.0", - "parse-png": "^2.1.0", - "resolve-from": "^5.0.0", - "semver": "7.3.2", - "tempy": "0.3.0" - } - }, - "@expo/json-file": { - "version": "8.2.30", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.30.tgz", - "integrity": "sha512-vrgGyPEXBoFI5NY70IegusCSoSVIFV3T3ry4tjJg1MFQKTUlR7E0r+8g8XR6qC705rc2PawaZQjqXMAVtV6s2A==", - "requires": { - "@babel/code-frame": "~7.10.4", - "fs-extra": "9.0.0", - "json5": "^1.0.1", - "write-file-atomic": "^2.3.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "@expo/metro-config": { - "version": "0.1.72", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.1.72.tgz", - "integrity": "sha512-PvWn5DZCV6hNYA9CTOBWEfwb9FCjyQCiyYnmxjsT0k9eplIBGTtfy74uIOd0SdDdCTPCgCO8SMyabc+Qg599xg==", - "requires": { - "@expo/config": "4.0.2", - "chalk": "^4.1.0", - "getenv": "^1.0.0", - "metro-react-native-babel-transformer": "^0.59.0" - } - }, - "@expo/plist": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.0.13.tgz", - "integrity": "sha512-zGPSq9OrCn7lWvwLLHLpHUUq2E40KptUFXn53xyZXPViI0k9lbApcR9KlonQZ95C+ELsf0BQ3gRficwK92Ivcw==", - "requires": { - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0", - "xmldom": "~0.5.0" - } - }, - "@expo/spawn-async": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz", - "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==", - "requires": { - "cross-spawn": "^6.0.5" - } - }, - "@expo/vector-icons": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-12.0.5.tgz", - "integrity": "sha512-zWvHBmkpbi1KrPma6Y+r/bsGI6MjbM1MBSe6W9A4uYMLhNI5NR4JtTnqxhf7g1XdpaDtBdv5aOWKEx4d5rxnhg==", - "requires": { - "lodash.frompairs": "^4.0.1", - "lodash.isequal": "^4.5.0", - "lodash.isstring": "^4.0.1", - "lodash.omit": "^4.5.0", - "lodash.pick": "^4.4.0", - "lodash.template": "^4.5.0" - } - }, - "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" - }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" - }, - "@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", - "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "requires": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - } - } - }, - "@jest/core": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.5.4.tgz", - "integrity": "sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/reporters": "^25.5.1", - "@jest/test-result": "^25.5.0", - "@jest/transform": "^25.5.1", - "@jest/types": "^25.5.0", - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^25.5.0", - "jest-config": "^25.5.4", - "jest-haste-map": "^25.5.1", - "jest-message-util": "^25.5.0", - "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.5.1", - "jest-resolve-dependencies": "^25.5.4", - "jest-runner": "^25.5.4", - "jest-runtime": "^25.5.4", - "jest-snapshot": "^25.5.1", - "jest-util": "^25.5.0", - "jest-validate": "^25.5.0", - "jest-watcher": "^25.5.0", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "realpath-native": "^2.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", - "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "jest-message-util": "^25.5.0", - "jest-util": "^25.5.0", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", - "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/types": "^25.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "jest-haste-map": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", - "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "@types/graceful-fs": "^4.1.2", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-serializer": "^25.5.0", - "jest-util": "^25.5.0", - "jest-worker": "^25.5.0", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7", - "which": "^2.0.2" - } - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-serializer": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", - "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "jest-validate": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz", - "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "jest-get-type": "^25.2.6", - "leven": "^3.1.0", - "pretty-format": "^25.5.0" - } - }, - "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@jest/environment": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.5.0.tgz", - "integrity": "sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^25.5.0", - "@jest/types": "^25.5.0", - "jest-mock": "^25.5.0" - }, - "dependencies": { - "@jest/fake-timers": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz", - "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "jest-message-util": "^25.5.0", - "jest-mock": "^25.5.0", - "jest-util": "^25.5.0", - "lolex": "^5.0.0" - } - }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-mock": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz", - "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0" - } - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", - "requires": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "13.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz", - "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==", - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "@jest/globals": { - "version": "25.5.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-25.5.2.tgz", - "integrity": "sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==", - "dev": true, - "requires": { - "@jest/environment": "^25.5.0", - "@jest/types": "^25.5.0", - "expect": "^25.5.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/reporters": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.5.1.tgz", - "integrity": "sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^25.5.0", - "@jest/test-result": "^25.5.0", - "@jest/transform": "^25.5.1", - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^25.5.1", - "jest-resolve": "^25.5.1", - "jest-util": "^25.5.0", - "jest-worker": "^25.5.0", - "node-notifier": "^6.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^3.1.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^4.1.3" - }, - "dependencies": { - "@jest/console": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", - "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "jest-message-util": "^25.5.0", - "jest-util": "^25.5.0", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", - "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/types": "^25.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-haste-map": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", - "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "@types/graceful-fs": "^4.1.2", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-serializer": "^25.5.0", - "jest-util": "^25.5.0", - "jest-worker": "^25.5.0", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7", - "which": "^2.0.2" - } - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-serializer": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", - "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "13.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz", - "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==", - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "@jest/test-sequencer": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz", - "integrity": "sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==", - "dev": true, - "requires": { - "@jest/test-result": "^25.5.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^25.5.1", - "jest-runner": "^25.5.4", - "jest-runtime": "^25.5.4" - }, - "dependencies": { - "@jest/console": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", - "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "jest-message-util": "^25.5.0", - "jest-util": "^25.5.0", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", - "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/types": "^25.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-haste-map": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", - "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "@types/graceful-fs": "^4.1.2", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-serializer": "^25.5.0", - "jest-util": "^25.5.0", - "jest-worker": "^25.5.0", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7", - "which": "^2.0.2" - } - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-serializer": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", - "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@jest/transform": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz", - "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^25.5.0", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^3.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^25.5.1", - "jest-regex-util": "^25.2.6", - "jest-util": "^25.5.0", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "realpath-native": "^2.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-haste-map": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", - "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "@types/graceful-fs": "^4.1.2", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-serializer": "^25.5.0", - "jest-util": "^25.5.0", - "jest-worker": "^25.5.0", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7", - "which": "^2.0.2" - } - }, - "jest-serializer": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", - "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - } - } - }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@jimp/bmp": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.12.1.tgz", - "integrity": "sha512-t16IamuBMv4GiGa1VAMzsgrVKVANxXG81wXECzbikOUkUv7pKJ2vHZDgkLBEsZQ9sAvFCneM1+yoSRpuENrfVQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1", - "bmp-js": "^0.1.0" - } - }, - "@jimp/core": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.12.1.tgz", - "integrity": "sha512-mWfjExYEjHxBal+1gPesGChOQBSpxO7WUQkrO9KM7orboitOdQ15G5UA75ce7XVZ+5t+FQPOLmVkVZzzTQSEJA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1", - "any-base": "^1.1.0", - "buffer": "^5.2.0", - "exif-parser": "^0.1.12", - "file-type": "^9.0.0", - "load-bmfont": "^1.3.1", - "mkdirp": "^0.5.1", - "phin": "^2.9.1", - "pixelmatch": "^4.0.2", - "tinycolor2": "^1.4.1" - } - }, - "@jimp/custom": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.12.1.tgz", - "integrity": "sha512-bVClp8FEJ/11GFTKeRTrfH7NgUWvVO5/tQzO/68aOwMIhbz9BOYQGh533K9+mSy29VjZJo8jxZ0C9ZwYHuFwfA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/core": "^0.12.1" - } - }, - "@jimp/gif": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.12.1.tgz", - "integrity": "sha512-cGn/AcvMGUGcqR6ByClGSnrja4AYmTwsGVXTQ1+EmfAdTiy6ztGgZCTDpZ/tq4SpdHXwm9wDHez7damKhTrH0g==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1", - "omggif": "^1.0.9" - } - }, - "@jimp/jpeg": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.12.1.tgz", - "integrity": "sha512-UoCUHbKLj2CDCETd7LrJnmK/ExDsSfJXmc1pKkfgomvepjXogdl2KTHf141wL6D+9CfSD2VBWQLC5TvjMvcr9A==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1", - "jpeg-js": "^0.4.0" - } - }, - "@jimp/plugin-blit": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.12.1.tgz", - "integrity": "sha512-VRBB6bx6EpQuaH0WX8ytlGNqUQcmuxXBbzL3e+cD0W6MluYibzQy089okvXcyUS72Q+qpSMmUDCVr3pDqLAsSA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-blur": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.12.1.tgz", - "integrity": "sha512-rTFY0yrwVJFNgNsAlYGn2GYCRLVEcPQ6cqAuhNylXuR/7oH3Acul+ZWafeKtvN8D8uMlth/6VP74gruXvwffZw==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-circle": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.12.1.tgz", - "integrity": "sha512-+/OiBDjby7RBbQoDX8ZsqJRr1PaGPdTaaKUVGAsrE7KCNO9ODYNFAizB9lpidXkGgJ4Wx5R4mJy21i22oY/a4Q==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-color": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.12.1.tgz", - "integrity": "sha512-xlnK/msWN4uZ+Bu7+UrCs9oMzTSA9QE0jWFnF3h0aBsD8t1LGxozkckHe8nHtC/y/sxIa8BGKSfkiaW+r6FbnA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1", - "tinycolor2": "^1.4.1" - } - }, - "@jimp/plugin-contain": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.12.1.tgz", - "integrity": "sha512-WZ/D6G0jhnBh2bkBh610PEh/caGhAUIAxYLsQsfSSlOxPsDhbj3S6hMbFKRgnDvf0hsd5zTIA0j1B0UG4kh18A==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-cover": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.12.1.tgz", - "integrity": "sha512-ddWwTQO40GcabJ2UwUYCeuNxnjV4rBTiLprnjGMqAJCzdz3q3Sp20FkRf+H+E22k2v2LHss8dIOFOF4i6ycr9Q==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-crop": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.12.1.tgz", - "integrity": "sha512-CKjVkrNO8FDZKYVpMireQW4SgKBSOdF+Ip/1sWssHHe77+jGEKqOjhYju+VhT3dZJ3+75rJNI9II7Kethp+rTw==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-displace": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.12.1.tgz", - "integrity": "sha512-MQAw2iuf1/bVJ6P95WWTLA+WBjvIZ7TeGBerkvBaTK8oWdj+NSLNRIYOIoyPbZ7DTL8f1SN4Vd6KD6BZaoWrwg==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-dither": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.12.1.tgz", - "integrity": "sha512-mCrBHdx2ViTLJDLcrobqGLlGhZF/Mq41bURWlElQ2ArvrQ3/xR52We9DNDfC08oQ2JVb6q3v1GnCCdn0KNojGQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-fisheye": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.12.1.tgz", - "integrity": "sha512-CHvYSXtHNplzkkYzB44tENPDmvfUHiYCnAETTY+Hx58kZ0w8ERZ+OiLhUmiBcvH/QHm/US1iiNjgGUAfeQX6dg==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-flip": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.12.1.tgz", - "integrity": "sha512-xi+Yayrnln8A/C9E3yQBExjxwBSeCkt/ZQg1CxLgszVyX/3Zo8+nkV8MJYpkTpj8LCZGTOKlsE05mxu/a3lbJQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-gaussian": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.12.1.tgz", - "integrity": "sha512-7O6eKlhL37hsLfV6WAX1Cvce7vOqSwL1oWbBveC1agutDlrtvcTh1s2mQ4Pde654hCJu55mq1Ur10+ote5j3qw==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-invert": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.12.1.tgz", - "integrity": "sha512-JTAs7A1Erbxwl+7ph7tgcb2PZ4WzB+3nb2WbfiWU8iCrKj17mMDSc5soaCCycn8wfwqvgB1vhRfGpseOLWxsuQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-mask": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.12.1.tgz", - "integrity": "sha512-bnDdY0RO/x5Mhqoy+056SN1wEj++sD4muAKqLD2CIT8Zq5M/0TA4hkdf/+lwFy3H2C0YTK39PSE9xyb4jPX3kA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-normalize": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.12.1.tgz", - "integrity": "sha512-4kSaI4JLM/PNjHwbnAHgyh51V5IlPfPxYvsZyZ1US32pebWtocxSMaSuOaJUg7OGSkwSDBv81UR2h5D+Dz1b5A==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-print": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.12.1.tgz", - "integrity": "sha512-T0lNS3qU9SwCHOEz7AGrdp50+gqiWGZibOL3350/X/dqoFs1EvGDjKVeWncsGCyLlpfd7M/AibHZgu8Fx2bWng==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1", - "load-bmfont": "^1.4.0" - } - }, - "@jimp/plugin-resize": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.12.1.tgz", - "integrity": "sha512-sbNn4tdBGcgGlPt9XFxCuDl4ZOoxa8/Re8nAikyxYhRss2Dqz91ARbBQxOf1vlUGeicQMsjEuWbPQAogTSJRug==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-rotate": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.12.1.tgz", - "integrity": "sha512-RYkLzwG2ervG6hHy8iepbIVeWdT1kz4Qz044eloqo6c66MK0KAqp228YI8+CAKm0joQnVDC/A0FgRIj/K8uyAw==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-scale": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.12.1.tgz", - "integrity": "sha512-zjNVI1fUj+ywfG78T1ZU33g9a5sk4rhEQkkhtny8koAscnVsDN2YaZEKoFli54kqaWh5kSS5DDL7a/9pEfXnFQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-shadow": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.12.1.tgz", - "integrity": "sha512-Z82IwvunXWQ2jXegd3W3TYUXpfJcEvNbHodr7Z+oVnwhM1OoQ5QC6RSRQwsj2qXIhbGffQjH8eguHgEgAV+u5w==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugin-threshold": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.12.1.tgz", - "integrity": "sha512-PFezt5fSk0q+xKvdpuv0eLggy2I7EgYotrK8TRZOT0jimuYFXPF0Z514c6szumoW5kEsRz04L1HkPT1FqI97Yg==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1" - } - }, - "@jimp/plugins": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.12.1.tgz", - "integrity": "sha512-7+Yp29T6BbYo+Oqnc+m7A5AH+O+Oy5xnxvxlfmsp48+SuwEZ4akJp13Gu2PSmRlylENzR7MlWOxzhas5ERNlIg==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/plugin-blit": "^0.12.1", - "@jimp/plugin-blur": "^0.12.1", - "@jimp/plugin-circle": "^0.12.1", - "@jimp/plugin-color": "^0.12.1", - "@jimp/plugin-contain": "^0.12.1", - "@jimp/plugin-cover": "^0.12.1", - "@jimp/plugin-crop": "^0.12.1", - "@jimp/plugin-displace": "^0.12.1", - "@jimp/plugin-dither": "^0.12.1", - "@jimp/plugin-fisheye": "^0.12.1", - "@jimp/plugin-flip": "^0.12.1", - "@jimp/plugin-gaussian": "^0.12.1", - "@jimp/plugin-invert": "^0.12.1", - "@jimp/plugin-mask": "^0.12.1", - "@jimp/plugin-normalize": "^0.12.1", - "@jimp/plugin-print": "^0.12.1", - "@jimp/plugin-resize": "^0.12.1", - "@jimp/plugin-rotate": "^0.12.1", - "@jimp/plugin-scale": "^0.12.1", - "@jimp/plugin-shadow": "^0.12.1", - "@jimp/plugin-threshold": "^0.12.1", - "timm": "^1.6.1" - } - }, - "@jimp/png": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.12.1.tgz", - "integrity": "sha512-tOUSJMJzcMAN82F9/Q20IToquIVWzvOe/7NIpVQJn6m+Lq6TtVmd7d8gdcna9AEFm2FIza5lhq2Kta6Xj0KXhQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.12.1", - "pngjs": "^3.3.3" - }, - "dependencies": { - "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" - } - } - }, - "@jimp/tiff": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.12.1.tgz", - "integrity": "sha512-bzWDgv3202TKhaBGzV9OFF0PVQWEb4194h9kv5js348SSnbCusz/tzTE1EwKrnbDZThZPgTB1ryKs7D+Q9Mhmg==", - "requires": { - "@babel/runtime": "^7.7.2", - "utif": "^2.0.1" - } - }, - "@jimp/types": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.12.1.tgz", - "integrity": "sha512-hg5OKXpWWeKGuDrfibrjWWhr7hqb7f552wqnPWSLQpVrdWgjH+hpOv6cOzdo9bsU78qGTelZJPxr0ERRoc+MhQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/bmp": "^0.12.1", - "@jimp/gif": "^0.12.1", - "@jimp/jpeg": "^0.12.1", - "@jimp/png": "^0.12.1", - "@jimp/tiff": "^0.12.1", - "timm": "^1.6.1" - } - }, - "@jimp/utils": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.12.1.tgz", - "integrity": "sha512-EjPkDQOzV/oZfbolEUgFT6SE++PtCccVBvjuACkttyCfl0P2jnpR49SwstyVLc2u8AwBAZEHHAw9lPYaMjtbXQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "regenerator-runtime": "^0.13.3" - } - }, - "@react-native-community/cli-debugger-ui": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-4.13.1.tgz", - "integrity": "sha512-UFnkg5RTq3s2X15fSkrWY9+5BKOFjihNSnJjTV2H5PtTUFbd55qnxxPw8CxSfK0bXb1IrSvCESprk2LEpqr5cg==", - "requires": { - "serve-static": "^1.13.1" - } - }, - "@react-native-community/cli-hermes": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-4.13.0.tgz", - "integrity": "sha512-oG+w0Uby6rSGsUkJGLvMQctZ5eVRLLfhf84lLyz942OEDxFRa9U19YJxOe9FmgCKtotbYiM3P/XhK+SVCuerPQ==", - "requires": { - "@react-native-community/cli-platform-android": "^4.13.0", - "@react-native-community/cli-tools": "^4.13.0", - "chalk": "^3.0.0", - "hermes-profile-transformer": "^0.0.6", - "ip": "^1.1.5" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@react-native-community/cli-platform-android": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-4.13.0.tgz", - "integrity": "sha512-3i8sX8GklEytUZwPnojuoFbCjIRzMugCdzDIdZ9UNmi/OhD4/8mLGO0dgXfT4sMWjZwu3qjy45sFfk2zOAgHbA==", - "requires": { - "@react-native-community/cli-tools": "^4.13.0", - "chalk": "^3.0.0", - "execa": "^1.0.0", - "fs-extra": "^8.1.0", - "glob": "^7.1.3", - "jetifier": "^1.6.2", - "lodash": "^4.17.15", - "logkitty": "^0.7.1", - "slash": "^3.0.0", - "xmldoc": "^1.1.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "@react-native-community/cli-platform-ios": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.13.0.tgz", - "integrity": "sha512-6THlTu8zp62efkzimfGr3VIuQJ2514o+vScZERJCV1xgEi8XtV7mb/ZKt9o6Y9WGxKKkc0E0b/aVAtgy+L27CA==", - "requires": { - "@react-native-community/cli-tools": "^4.13.0", - "chalk": "^3.0.0", - "glob": "^7.1.3", - "js-yaml": "^3.13.1", - "lodash": "^4.17.15", - "plist": "^3.0.1", - "xcode": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "xcode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-2.1.0.tgz", - "integrity": "sha512-uCrmPITrqTEzhn0TtT57fJaNaw8YJs1aCzs+P/QqxsDbvPZSv7XMPPwXrKvHtD6pLjBM/NaVwraWJm8q83Y4iQ==", - "requires": { - "simple-plist": "^1.0.0", - "uuid": "^3.3.2" - } - } - } - }, - "@react-native-community/cli-server-api": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-4.13.1.tgz", - "integrity": "sha512-vQzsFKD9CjHthA2ehTQX8c7uIzlI9A7ejaIow1I9RlEnLraPH2QqVDmzIdbdh5Od47UPbRzamCgAP8Bnqv3qwQ==", - "requires": { - "@react-native-community/cli-debugger-ui": "^4.13.1", - "@react-native-community/cli-tools": "^4.13.0", - "compression": "^1.7.1", - "connect": "^3.6.5", - "errorhandler": "^1.5.0", - "nocache": "^2.1.0", - "pretty-format": "^25.1.0", - "serve-static": "^1.13.1", - "ws": "^1.1.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@react-native-community/cli-tools": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-4.13.0.tgz", - "integrity": "sha512-s4f489h5+EJksn4CfheLgv5PGOM0CDmK1UEBLw2t/ncWs3cW2VI7vXzndcd/WJHTv3GntJhXDcJMuL+Z2IAOgg==", - "requires": { - "chalk": "^3.0.0", - "lodash": "^4.17.15", - "mime": "^2.4.1", - "node-fetch": "^2.6.0", - "open": "^6.2.0", - "shell-quote": "1.6.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@react-native-community/cli-types": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-4.10.1.tgz", - "integrity": "sha512-ael2f1onoPF3vF7YqHGWy7NnafzGu+yp88BbFbP0ydoCP2xGSUzmZVw0zakPTC040Id+JQ9WeFczujMkDy6jYQ==" - }, - "@react-native-community/masked-view": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@react-native-community/masked-view/-/masked-view-0.1.11.tgz", - "integrity": "sha512-rQfMIGSR/1r/SyN87+VD8xHHzDYeHaJq6elOSCAD+0iLagXkSI2pfA0LmSXP21uw5i3em7GkkRjfJ8wpqWXZNw==" - }, - "@react-navigation/bottom-tabs": { - "version": "5.11.11", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-5.11.11.tgz", - "integrity": "sha512-hThj6Vfw+ITzAVj5TgLEoxkVEcBD+gYeieWOe6FryBRgokgKNCzFQzqArJ5UCmNMxklNH0rstJfcdyHflLuPtw==", - "requires": { - "color": "^3.1.3", - "react-native-iphone-x-helper": "^1.3.0" - } - }, - "@react-navigation/core": { - "version": "5.15.3", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-5.15.3.tgz", - "integrity": "sha512-3ZdyDInh8qg1kygCNkmh9lFgpDf29lTvPsaMe2mm/qvmxLKSgttWBz07P2fc181aV9jTdgQpzYfWZ5KWT036zw==", - "requires": { - "@react-navigation/routers": "^5.7.2", - "escape-string-regexp": "^4.0.0", - "nanoid": "^3.1.15", - "query-string": "^6.13.6", - "react-is": "^16.13.0" - } - }, - "@react-navigation/native": { - "version": "5.9.4", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-5.9.4.tgz", - "integrity": "sha512-BUCrOXfZDdKWBqM8OhOKQhCX5we4HUo5XG6tCQtVqQAep+7UcApZmMUuemUXDxVe8NPESUpoUlB0RaEpyIdfTQ==", - "requires": { - "@react-navigation/core": "^5.15.3", - "escape-string-regexp": "^4.0.0", - "nanoid": "^3.1.15" - } - }, - "@react-navigation/routers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-5.7.2.tgz", - "integrity": "sha512-BxNSMLHpU+oS37Xok0ql6rc9U7IC8aUD4+U5ZPbjDJ0pwzZxGGh0YOEBzfV4k/Ig3cbPdvVWbc1C9HHbCVr2oQ==", - "requires": { - "nanoid": "^3.1.15" - } - }, - "@react-navigation/stack": { - "version": "5.14.5", - "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-5.14.5.tgz", - "integrity": "sha512-hpdn1SS0tc3/3atkV2Q2y++n5B4e0rUcCj4W43PODMu72yX2m0LkKAAcpkPDCWAvwnLLIoLAEl5BEifZigl/6A==", - "requires": { - "color": "^3.1.3", - "react-native-iphone-x-helper": "^1.3.0" - } - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@types/babel__core": { - "version": "7.1.14", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", - "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", - "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/hammerjs": { - "version": "2.0.39", - "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.39.tgz", - "integrity": "sha512-lYR2Y/tV2ujpk/WyUc7S0VLI0a9hrtVIN9EwnrNo5oSEJI2cK2/XrgwOQmXLL3eTulOESvh9qP6si9+DWM9cOA==" - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/node": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.6.1.tgz", - "integrity": "sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==" - }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, - "@types/prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", - "dev": true - }, - "@types/react": { - "version": "17.0.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.8.tgz", - "integrity": "sha512-3sx4c0PbXujrYAKwXxNONXUtRp9C+hE2di0IuxFyf5BELD+B+AXL8G7QrmSKhVwKZDbv0igiAjQAMhXj8Yg3aw==", - "dev": true, - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-native": { - "version": "0.64.8", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.64.8.tgz", - "integrity": "sha512-Jg1x3TTDTkVKu5gX1pPLKdkWqDQgDPOMP0wMG8d9br9tDITisA79zJ07o8dcPJWKETsBglHYPUQRVG2fxC2V8g==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/scheduler": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", - "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==", - "dev": true - }, - "@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==" - }, - "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" - }, - "@unimodules/core": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@unimodules/core/-/core-7.1.0.tgz", - "integrity": "sha512-oLRT4Bkah3GEopkxmTgpHsRTRp+NJ1907ZjE9y/HLh32q7O/3mcbpY77Uvm+EXW0Vh14gOlU+bmkpC0hz3we0w==", - "requires": { - "compare-versions": "^3.4.0" - } - }, - "@unimodules/react-native-adapter": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@unimodules/react-native-adapter/-/react-native-adapter-6.2.2.tgz", - "integrity": "sha512-hBXL+IX3u+4TcAHu9lIItdycA7pYWZn3Tt7s5TTna9QKHjyrwo0zVss27LkpJ40tXRHyh/GJ8VzN2CD+0M5I2A==", - "requires": { - "invariant": "^2.2.4" - } - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "absolute-path": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/absolute-path/-/absolute-path-0.0.0.tgz", - "integrity": "sha1-p4di+9rftSl76ZsV01p4Wy8JW/c=" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-globals": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", - "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", - "dev": true, - "requires": { - "acorn": "^6.0.1", - "acorn-walk": "^6.0.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true - } - } - }, - "acorn-walk": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "anser": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", - "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==" - }, - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "ansi-cyan": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - }, - "ansi-fragments": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", - "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", - "requires": { - "colorette": "^1.0.7", - "slice-ansi": "^2.0.0", - "strip-ansi": "^5.0.0" - } - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" - }, - "any-base": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", - "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "available-typed-arrays": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", - "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "babel-jest": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz", - "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==", - "dev": true, - "requires": { - "@jest/transform": "^25.5.1", - "@jest/types": "^25.5.0", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz", - "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-module-resolver": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz", - "integrity": "sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==", - "requires": { - "find-babel-config": "^1.1.0", - "glob": "^7.1.2", - "pkg-up": "^2.0.0", - "reselect": "^3.0.1", - "resolve": "^1.4.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", - "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz", - "integrity": "sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.9.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", - "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2" - } - }, - "babel-plugin-react-native-web": { - "version": "0.13.18", - "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.13.18.tgz", - "integrity": "sha512-f8pAxyKqXBNRIh8l4Sqju055BNec+DQlItdtutByYxULU0iJ1F7evIYE3skPKAkTB/xJH17l+n3Z8dVabGIIGg==" - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", - "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==" - }, - "babel-preset-current-node-syntax": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz", - "integrity": "sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "babel-preset-expo": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-8.3.0.tgz", - "integrity": "sha512-KmoFiEJ0A8QUH0OTh+mj3RBvv069FQsQ1hvZDi6tVMSzrW+Y/imsJMXgVboZN+XGOYnWFaGEKQ8BqNvBX+zKjA==", - "requires": { - "@babel/plugin-proposal-decorators": "^7.6.0", - "@babel/preset-env": "^7.6.3", - "babel-plugin-module-resolver": "^3.2.0", - "babel-plugin-react-native-web": "~0.13.6", - "metro-react-native-babel-preset": "~0.59.0" - } - }, - "babel-preset-fbjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", - "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", - "requires": { - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-syntax-class-properties": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-block-scoped-functions": "^7.0.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-for-of": "^7.0.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-member-expression-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-object-super": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-property-literals": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-template-literals": "^7.0.0", - "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" - } - }, - "babel-preset-jest": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz", - "integrity": "sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^25.5.0", - "babel-preset-current-node-syntax": "^0.1.2" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big-integer": { - "version": "1.6.48", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "blueimp-md5": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.18.0.tgz", - "integrity": "sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q==" - }, - "bmp-js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", - "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" - }, - "bplist-creator": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz", - "integrity": "sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==", - "requires": { - "stream-buffers": "~2.2.0" - } - }, - "bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "requires": { - "big-integer": "^1.6.44" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" - }, - "buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "caniuse-lite": { - "version": "1.0.30001232", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001232.tgz", - "integrity": "sha512-e4Gyp7P8vqC2qV2iHA+cJNf/yqUKOShXQOJHQt81OHxlIZl/j/j3soEA0adAQi8CPUQgvOdDENyQ5kd6a6mNSg==" - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "requires": { - "rsvp": "^4.8.4" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-spinners": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", - "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==" - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", - "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", - "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" - }, - "commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "compare-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-urls/-/compare-urls-2.0.0.tgz", - "integrity": "sha512-eCJcWn2OYFEIqbm70ta7LQowJOOZZqq1a2YbbFCFI1uwSvj+TWMwXVn7vPR1ceFNcAIt5RSTDbwdlX82gYLTkA==", - "requires": { - "normalize-url": "^2.0.1" - } - }, - "compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - }, - "core-js-compat": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.13.1.tgz", - "integrity": "sha512-mdrcxc0WznfRd8ZicEZh1qVeJ2mu6bwQFh8YVUK48friy/FOwFV5EJj9/dlh+nMQ74YusdVfBFDuomKgUspxWQ==", - "requires": { - "browserslist": "^4.16.6", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "create-react-class": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.7.0.tgz", - "integrity": "sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "cross-fetch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", - "requires": { - "node-fetch": "2.6.1" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" - }, - "css-in-js-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", - "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", - "requires": { - "hyphenate-style-name": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "csstype": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", - "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", - "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "whatwg-mimetype": "^2.2.0", - "whatwg-url": "^7.0.0" - } - }, - "dayjs": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz", - "integrity": "sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==" - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-3.0.0.tgz", - "integrity": "sha512-YX2i9XjJ7h5q/aQ/IM9PEwEnDqETAIYbggmdDB3HLTlSgo1CxPsj6pvhPG68rq6SVE0+p+6Ywsm5fTYNrYtBWw==", - "requires": { - "is-obj": "^1.0.0" - } - }, - "deep-equal": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", - "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", - "requires": { - "call-bind": "^1.0.0", - "es-get-iterator": "^1.1.1", - "get-intrinsic": "^1.0.1", - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.2", - "is-regex": "^1.1.1", - "isarray": "^2.0.5", - "object-is": "^1.1.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.3", - "which-boxed-primitive": "^1.0.1", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.2" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - } - } - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "deepmerge": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz", - "integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==" - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "requires": { - "clone": "^1.0.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff-sequences": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", - "dev": true - }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "dev": true, - "requires": { - "webidl-conversions": "^4.0.2" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.3.743", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.743.tgz", - "integrity": "sha512-K2wXfo9iZQzNJNx67+Pld0DRF+9bYinj62gXCdgPhcu1vidwVuLPHQPPFnCdO55njWigXXpfBiT90jGUPbw8Zg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - } - } - }, - "error-stack-parser": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", - "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", - "requires": { - "stackframe": "^1.1.1" - } - }, - "errorhandler": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", - "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", - "requires": { - "accepts": "~1.3.7", - "escape-html": "~1.0.3" - } - }, - "es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", - "requires": { - "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.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "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.1" - } - }, - "es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - } - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - }, - "exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==" - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exif-parser": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", - "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "expect": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz", - "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-styles": "^4.0.0", - "jest-get-type": "^25.2.6", - "jest-matcher-utils": "^25.5.0", - "jest-message-util": "^25.5.0", - "jest-regex-util": "^25.2.6" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "expo": { - "version": "41.0.1", - "resolved": "https://registry.npmjs.org/expo/-/expo-41.0.1.tgz", - "integrity": "sha512-Lk4Xdst+OfsLgBNeu89hxk0qFrZnHwwXFmBbJkYLlZkdC3tvNJ8jgGHsKg6jYpsnal/z0uVc+uk2ev91qXQykg==", - "requires": { - "@babel/runtime": "^7.1.2", - "@expo/metro-config": "^0.1.63", - "@expo/vector-icons": "^12.0.4", - "@unimodules/core": "~7.1.0", - "@unimodules/react-native-adapter": "~6.2.2", - "babel-preset-expo": "~8.3.0", - "cross-spawn": "^6.0.5", - "expo-application": "~3.1.2", - "expo-asset": "~8.3.1", - "expo-constants": "~10.1.3", - "expo-error-recovery": "~2.1.0", - "expo-file-system": "~11.0.2", - "expo-font": "~9.1.0", - "expo-keep-awake": "~9.1.2", - "fbemitter": "^2.1.1", - "invariant": "^2.2.2", - "md5-file": "^3.2.3", - "pretty-format": "^26.4.0", - "react-native-safe-area-context": "3.2.0", - "serialize-error": "^2.1.0", - "uuid": "^3.4.0" - } - }, - "expo-application": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/expo-application/-/expo-application-3.1.2.tgz", - "integrity": "sha512-JZcKUpGmqzQ1zLxRxUditGzPqnPCXY6JT/Pbq4nyV4VPzjDd8wihVPuud+cuv8gHgdj8QLvKs/lcJJqN94EX5Q==" - }, - "expo-asset": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-8.3.2.tgz", - "integrity": "sha512-MKOwkkN0lnQRcOdn5moqkHPmLgFoUSIYyrvMAJ767vTXvLvZgoQgvBwqCAXsXitIwEitG0Az3XZ23SfKJpFbFg==", - "requires": { - "blueimp-md5": "^2.10.0", - "invariant": "^2.2.4", - "md5-file": "^3.2.3", - "path-browserify": "^1.0.0", - "url-parse": "^1.4.4" - } - }, - "expo-constants": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-10.1.3.tgz", - "integrity": "sha512-Eq/xeshnhSoe4ok89d5lrHvI9jq3bMe1FhJUbiHVGcGmW8mGCotwbQBIfDkkMrAKnSOwQq/Qfyg0XBxnG2XFjw==", - "requires": { - "@expo/config": "^3.3.35", - "uuid": "^3.3.2" - }, - "dependencies": { - "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "@expo/config": { - "version": "3.3.43", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-3.3.43.tgz", - "integrity": "sha512-5a78fQqTKk7RhgrW5XzHS8ylCo9YRjZrheLyVDNNfvwAD8YjeBz6bFWsItZPpAIoaDgkLh0a8uhc11DCmqoKpw==", - "requires": { - "@babel/core": "7.9.0", - "@babel/plugin-proposal-class-properties": "~7.12.13", - "@babel/preset-env": "~7.12.13", - "@babel/preset-typescript": "~7.12.13", - "@expo/config-plugins": "1.0.33", - "@expo/config-types": "^40.0.0-beta.2", - "@expo/json-file": "8.2.30", - "fs-extra": "9.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0", - "semver": "7.3.2", - "slugify": "^1.3.4" - } - }, - "@expo/config-plugins": { - "version": "1.0.33", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.33.tgz", - "integrity": "sha512-YQJop0c69LKD/6ZJJto7klS7TDmzgs44TI0Z5RBqesOjYlDwNFcQk2Rl2BaA1wlAYkH+rRrhN2+WjjSyD9HiPg==", - "requires": { - "@expo/config-types": "^40.0.0-beta.2", - "@expo/configure-splash-screen": "0.4.0", - "@expo/image-utils": "0.3.14", - "@expo/json-file": "8.2.30", - "@expo/plist": "0.0.13", - "find-up": "~5.0.0", - "fs-extra": "9.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "slash": "^3.0.0", - "xcode": "^3.0.1", - "xml2js": "^0.4.23" - } - }, - "@expo/config-types": { - "version": "40.0.0-beta.2", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-40.0.0-beta.2.tgz", - "integrity": "sha512-t9pHCQMXOP4nwd7LGXuHkLlFy0JdfknRSCAeVF4Kw2/y+5OBbR9hW9ZVnetpBf0kORrekgiI7K/qDaa3hh5+Qg==" - } - } - }, - "expo-error-recovery": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-2.1.0.tgz", - "integrity": "sha512-N5g2QKtdNntUNGQVnB/tG1jHdtJP1+kLMWDS+7ZKRcKfulm3JX/M3l460fsEtqg84n/latxPkBT0yfKw2DSq+Q==" - }, - "expo-file-system": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-11.0.2.tgz", - "integrity": "sha512-nodNvUVa+US4N4xnj5BFw8W9ZF/qCHJVC2t45cHWrBiwkVVxz45wjE7uSHUmkMWyWT7a/7AJuL3XJfYp7h90IQ==", - "requires": { - "@expo/config-plugins": "^1.0.18", - "uuid": "^3.4.0" - }, - "dependencies": { - "@expo/config-plugins": { - "version": "1.0.33", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.33.tgz", - "integrity": "sha512-YQJop0c69LKD/6ZJJto7klS7TDmzgs44TI0Z5RBqesOjYlDwNFcQk2Rl2BaA1wlAYkH+rRrhN2+WjjSyD9HiPg==", - "requires": { - "@expo/config-types": "^40.0.0-beta.2", - "@expo/configure-splash-screen": "0.4.0", - "@expo/image-utils": "0.3.14", - "@expo/json-file": "8.2.30", - "@expo/plist": "0.0.13", - "find-up": "~5.0.0", - "fs-extra": "9.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "slash": "^3.0.0", - "xcode": "^3.0.1", - "xml2js": "^0.4.23" - } - }, - "@expo/config-types": { - "version": "40.0.0-beta.2", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-40.0.0-beta.2.tgz", - "integrity": "sha512-t9pHCQMXOP4nwd7LGXuHkLlFy0JdfknRSCAeVF4Kw2/y+5OBbR9hW9ZVnetpBf0kORrekgiI7K/qDaa3hh5+Qg==" - } - } - }, - "expo-font": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-9.1.0.tgz", - "integrity": "sha512-owzbbfrQet7mawTGKMXpVCIA9k56MGhtriO41AW4Zo65dd2Ikm4LoymuHKp2ZlHuIFjRnjECKWz7RXgy/C1yAg==", - "requires": { - "fontfaceobserver": "^2.1.0" - } - }, - "expo-keep-awake": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-9.1.2.tgz", - "integrity": "sha512-CCuEOQUNLYtMA0rt0sQ9u5LlIMH7lDJG7dImoorfKMsP95yHXy8dl3oCdtaz2zbsPgggVYeom9gE+gQu+Ki4rQ==" - }, - "expo-linking": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-2.2.3.tgz", - "integrity": "sha512-1NqL8sY4EzwRPVnBxbvNKBCfsG/tNZm72tVwzjoLxhO0XA6VTtZcb72Jaku4IlqEyH0lejxV2YAU0rbLv1pAVA==", - "requires": { - "expo-constants": "~10.1.3", - "invariant": "^2.2.4", - "qs": "^6.5.0", - "url-parse": "^1.4.4" - } - }, - "expo-splash-screen": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.10.2.tgz", - "integrity": "sha512-ngelW7g5yFqk3LWbyLDDxi3LYXEfgGFCJddL/Q8S/C1pMUc5foW2j9i/q+akK8i5mjYtSx3+Bk/qbyX92QIF/w==", - "requires": { - "@expo/configure-splash-screen": "0.3.4" - }, - "dependencies": { - "@expo/configure-splash-screen": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@expo/configure-splash-screen/-/configure-splash-screen-0.3.4.tgz", - "integrity": "sha512-HsukM03X5/EXSucVsLN/oLqyFq/1jAjpADkgU1HLaezFpkr+TOquI6yDwdDp1450kcm891PE/SYJ+mCdPxzDLw==", - "requires": { - "color-string": "^1.5.3", - "commander": "^5.1.0", - "core-js": "^3.6.5", - "deep-equal": "^2.0.3", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "lodash": "^4.17.15", - "pngjs": "^5.0.0", - "xcode": "^3.0.0", - "xml-js": "^1.6.11" - } - }, - "core-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.13.1.tgz", - "integrity": "sha512-JqveUc4igkqwStL2RTRn/EPFGBOfEZHxJl/8ej1mXJR75V3go2mFF4bmUYkEIT1rveHKnkUlcJX/c+f1TyIovQ==" - } - } - }, - "expo-status-bar": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.0.4.tgz", - "integrity": "sha512-s7nc496D/Zn1NGiMJ5wu6HyIdXxbgGtmZZtbHm7rpbcmLdf28GmMSNHDx7M0t00BMhky7VAurTCUo+BJs8ugsw==" - }, - "expo-web-browser": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-9.1.0.tgz", - "integrity": "sha512-1UkOHWUBshY7n/R9xc4Q0LN0Dxqdvvotlp8sCM/6bUB/aE+9B+duoimKtUhlnzcvfAFWgF5y5x+bIf7j6PF7ig==", - "requires": { - "compare-urls": "^2.0.0" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "requires": { - "bser": "2.1.1" - } - }, - "fbemitter": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", - "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", - "requires": { - "fbjs": "^0.8.4" - } - }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - }, - "fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, - "fbjs-scripts": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fbjs-scripts/-/fbjs-scripts-1.2.0.tgz", - "integrity": "sha512-5krZ8T0Bf8uky0abPoCLrfa7Orxd8UH4Qq8hRUF2RZYNMu+FmEOrBc7Ib3YVONmxTXTlLAvyrrdrVmksDb2OqQ==", - "requires": { - "@babel/core": "^7.0.0", - "ansi-colors": "^1.0.1", - "babel-preset-fbjs": "^3.2.0", - "core-js": "^2.4.1", - "cross-spawn": "^5.1.0", - "fancy-log": "^1.3.2", - "object-assign": "^4.0.1", - "plugin-error": "^0.1.2", - "semver": "^5.1.0", - "through2": "^2.0.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } - } - }, - "file-type": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", - "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=" - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "find-babel-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz", - "integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==", - "requires": { - "json5": "^0.5.1", - "path-exists": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "fontfaceobserver": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.1.0.tgz", - "integrity": "sha512-ReOsO2F66jUa0jmv2nlM/s1MiutJx/srhAe2+TE8dJCMi02ZZOcCTxTCQFr3Yet+uODUtnr4Mewg+tNQ+4V1Ng==" - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-extra": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", - "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getenv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", - "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "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" - } - }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hermes-engine": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/hermes-engine/-/hermes-engine-0.5.1.tgz", - "integrity": "sha512-hLwqh8dejHayjlpvZY40e1aDCDvyP98cWx/L5DhAjSJLH8g4z9Tp08D7y4+3vErDsncPOdf1bxm+zUWpx0/Fxg==" - }, - "hermes-profile-transformer": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz", - "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==", - "requires": { - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "hyphenate-style-name": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", - "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "image-size": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", - "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==" - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "inline-style-prefixer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.0.tgz", - "integrity": "sha512-XTHvRUS4ZJNzC1GixJRmOlWSS45fSt+DJoyQC9ytj0WxQfcgofQtDtyKKYxHUqEsWCs+LIWftPF1ie7+i012Fg==", - "requires": { - "css-in-js-utils": "^2.0.0" - } - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" - }, - "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "optional": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==" - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==" - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", - "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" - }, - "is-weakset": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", - "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - }, - "dependencies": { - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - } - } - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest-changed-files": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.5.0.tgz", - "integrity": "sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "execa": "^3.2.0", - "throat": "^5.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "jest-config": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.5.4.tgz", - "integrity": "sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^25.5.4", - "@jest/types": "^25.5.0", - "babel-jest": "^25.5.1", - "chalk": "^3.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^25.5.0", - "jest-environment-node": "^25.5.0", - "jest-get-type": "^25.2.6", - "jest-jasmine2": "^25.5.4", - "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.5.1", - "jest-util": "^25.5.0", - "jest-validate": "^25.5.0", - "micromatch": "^4.0.2", - "pretty-format": "^25.5.0", - "realpath-native": "^2.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "jest-validate": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz", - "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "jest-get-type": "^25.2.6", - "leven": "^3.1.0", - "pretty-format": "^25.5.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-docblock": { - "version": "25.3.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.3.0.tgz", - "integrity": "sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.5.0.tgz", - "integrity": "sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "jest-get-type": "^25.2.6", - "jest-util": "^25.5.0", - "pretty-format": "^25.5.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz", - "integrity": "sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==", - "dev": true, - "requires": { - "@jest/environment": "^25.5.0", - "@jest/fake-timers": "^25.5.0", - "@jest/types": "^25.5.0", - "jest-mock": "^25.5.0", - "jest-util": "^25.5.0", - "jsdom": "^15.2.1" - }, - "dependencies": { - "@jest/fake-timers": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz", - "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "jest-message-util": "^25.5.0", - "jest-mock": "^25.5.0", - "jest-util": "^25.5.0", - "lolex": "^5.0.0" - } - }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-mock": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz", - "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0" - } - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-environment-node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.5.0.tgz", - "integrity": "sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==", - "dev": true, - "requires": { - "@jest/environment": "^25.5.0", - "@jest/fake-timers": "^25.5.0", - "@jest/types": "^25.5.0", - "jest-mock": "^25.5.0", - "jest-util": "^25.5.0", - "semver": "^6.3.0" - }, - "dependencies": { - "@jest/fake-timers": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz", - "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "jest-message-util": "^25.5.0", - "jest-mock": "^25.5.0", - "jest-util": "^25.5.0", - "lolex": "^5.0.0" - } - }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-mock": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz", - "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0" - } - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-expo": { - "version": "41.0.0", - "resolved": "https://registry.npmjs.org/jest-expo/-/jest-expo-41.0.0.tgz", - "integrity": "sha512-UGCzdWsdhmPYzWXNyfXl7Xi+6nrnqxj7Gvu8hbREFrf4hbIfIFiPdsM/cSLKtSXQpkdc0EOzXfYvpAoYVkWRAg==", - "dev": true, - "requires": { - "@expo/config": "^3.2.3", - "babel-jest": "^25.2.0", - "jest": "^25.2.0", - "jest-watch-select-projects": "^2.0.0", - "jest-watch-typeahead": "^0.5.0", - "json5": "^2.1.0", - "lodash": "^4.5.0", - "react-test-renderer": "~16.11.0" - }, - "dependencies": { - "@expo/config": { - "version": "3.3.43", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-3.3.43.tgz", - "integrity": "sha512-5a78fQqTKk7RhgrW5XzHS8ylCo9YRjZrheLyVDNNfvwAD8YjeBz6bFWsItZPpAIoaDgkLh0a8uhc11DCmqoKpw==", - "dev": true, - "requires": { - "@babel/core": "7.9.0", - "@babel/plugin-proposal-class-properties": "~7.12.13", - "@babel/preset-env": "~7.12.13", - "@babel/preset-typescript": "~7.12.13", - "@expo/config-plugins": "1.0.33", - "@expo/config-types": "^40.0.0-beta.2", - "@expo/json-file": "8.2.30", - "fs-extra": "9.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0", - "semver": "7.3.2", - "slugify": "^1.3.4" - }, - "dependencies": { - "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - } - } - }, - "@expo/config-plugins": { - "version": "1.0.33", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.33.tgz", - "integrity": "sha512-YQJop0c69LKD/6ZJJto7klS7TDmzgs44TI0Z5RBqesOjYlDwNFcQk2Rl2BaA1wlAYkH+rRrhN2+WjjSyD9HiPg==", - "dev": true, - "requires": { - "@expo/config-types": "^40.0.0-beta.2", - "@expo/configure-splash-screen": "0.4.0", - "@expo/image-utils": "0.3.14", - "@expo/json-file": "8.2.30", - "@expo/plist": "0.0.13", - "find-up": "~5.0.0", - "fs-extra": "9.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "slash": "^3.0.0", - "xcode": "^3.0.1", - "xml2js": "^0.4.23" - } - }, - "@expo/config-types": { - "version": "40.0.0-beta.2", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-40.0.0-beta.2.tgz", - "integrity": "sha512-t9pHCQMXOP4nwd7LGXuHkLlFy0JdfknRSCAeVF4Kw2/y+5OBbR9hW9ZVnetpBf0kORrekgiI7K/qDaa3hh5+Qg==", - "dev": true - }, - "@jest/console": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", - "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "jest-message-util": "^25.5.0", - "jest-util": "^25.5.0", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", - "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/types": "^25.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest/-/jest-25.5.4.tgz", - "integrity": "sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ==", - "dev": true, - "requires": { - "@jest/core": "^25.5.4", - "import-local": "^3.0.2", - "jest-cli": "^25.5.4" - }, - "dependencies": { - "jest-cli": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.5.4.tgz", - "integrity": "sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==", - "dev": true, - "requires": { - "@jest/core": "^25.5.4", - "@jest/test-result": "^25.5.0", - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^25.5.4", - "jest-util": "^25.5.0", - "jest-validate": "^25.5.0", - "prompts": "^2.0.1", - "realpath-native": "^2.0.0", - "yargs": "^15.3.1" - } - } - } - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "jest-validate": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz", - "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "jest-get-type": "^25.2.6", - "leven": "^3.1.0", - "pretty-format": "^25.5.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" - }, - "jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", - "requires": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.7", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "13.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz", - "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==", - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "jest-jasmine2": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz", - "integrity": "sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^25.5.0", - "@jest/source-map": "^25.5.0", - "@jest/test-result": "^25.5.0", - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "co": "^4.6.0", - "expect": "^25.5.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^25.5.0", - "jest-matcher-utils": "^25.5.0", - "jest-message-util": "^25.5.0", - "jest-runtime": "^25.5.4", - "jest-snapshot": "^25.5.1", - "jest-util": "^25.5.0", - "pretty-format": "^25.5.0", - "throat": "^5.0.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", - "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "jest-message-util": "^25.5.0", - "jest-util": "^25.5.0", - "slash": "^3.0.0" - } - }, - "@jest/source-map": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz", - "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", - "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/types": "^25.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz", - "integrity": "sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==", - "dev": true, - "requires": { - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-matcher-utils": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz", - "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "jest-diff": "^25.5.0", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "13.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz", - "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - } - } - }, - "jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", - "requires": { - "@jest/types": "^24.9.0" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "13.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz", - "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==", - "requires": { - "@types/yargs-parser": "*" - } - } - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz", - "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==", - "dev": true - }, - "jest-resolve": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz", - "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "browser-resolve": "^1.11.3", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.1", - "read-pkg-up": "^7.0.1", - "realpath-native": "^2.0.0", - "resolve": "^1.17.0", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz", - "integrity": "sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "jest-regex-util": "^25.2.6", - "jest-snapshot": "^25.5.1" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-runner": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.5.4.tgz", - "integrity": "sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/environment": "^25.5.0", - "@jest/test-result": "^25.5.0", - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^25.5.4", - "jest-docblock": "^25.3.0", - "jest-haste-map": "^25.5.1", - "jest-jasmine2": "^25.5.4", - "jest-leak-detector": "^25.5.0", - "jest-message-util": "^25.5.0", - "jest-resolve": "^25.5.1", - "jest-runtime": "^25.5.4", - "jest-util": "^25.5.0", - "jest-worker": "^25.5.0", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", - "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "jest-message-util": "^25.5.0", - "jest-util": "^25.5.0", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", - "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/types": "^25.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-haste-map": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", - "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "@types/graceful-fs": "^4.1.2", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-serializer": "^25.5.0", - "jest-util": "^25.5.0", - "jest-worker": "^25.5.0", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7", - "which": "^2.0.2" - } - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-serializer": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", - "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "jest-runtime": { - "version": "25.5.4", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.5.4.tgz", - "integrity": "sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/environment": "^25.5.0", - "@jest/globals": "^25.5.2", - "@jest/source-map": "^25.5.0", - "@jest/test-result": "^25.5.0", - "@jest/transform": "^25.5.1", - "@jest/types": "^25.5.0", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^25.5.4", - "jest-haste-map": "^25.5.1", - "jest-message-util": "^25.5.0", - "jest-mock": "^25.5.0", - "jest-regex-util": "^25.2.6", - "jest-resolve": "^25.5.1", - "jest-snapshot": "^25.5.1", - "jest-util": "^25.5.0", - "jest-validate": "^25.5.0", - "realpath-native": "^2.0.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.3.1" - }, - "dependencies": { - "@jest/console": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", - "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "jest-message-util": "^25.5.0", - "jest-util": "^25.5.0", - "slash": "^3.0.0" - } - }, - "@jest/source-map": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz", - "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", - "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/types": "^25.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "jest-haste-map": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz", - "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "@types/graceful-fs": "^4.1.2", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-serializer": "^25.5.0", - "jest-util": "^25.5.0", - "jest-worker": "^25.5.0", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7", - "which": "^2.0.2" - } - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-mock": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz", - "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0" - } - }, - "jest-serializer": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz", - "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "jest-validate": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz", - "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "jest-get-type": "^25.2.6", - "leven": "^3.1.0", - "pretty-format": "^25.5.0" - } - }, - "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==" - }, - "jest-snapshot": { - "version": "25.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.5.1.tgz", - "integrity": "sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/prettier": "^1.19.0", - "chalk": "^3.0.0", - "expect": "^25.5.0", - "graceful-fs": "^4.2.4", - "jest-diff": "^25.5.0", - "jest-get-type": "^25.2.6", - "jest-matcher-utils": "^25.5.0", - "jest-message-util": "^25.5.0", - "jest-resolve": "^25.5.1", - "make-dir": "^3.0.0", - "natural-compare": "^1.4.0", - "pretty-format": "^25.5.0", - "semver": "^6.3.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", - "requires": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "13.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz", - "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/yargs": { - "version": "13.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz", - "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - } - } - } - }, - "jest-watch-select-projects": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jest-watch-select-projects/-/jest-watch-select-projects-2.0.0.tgz", - "integrity": "sha512-j00nW4dXc2NiCW6znXgFLF9g8PJ0zP25cpQ1xRro/HU2GBfZQFZD0SoXnAlaoKkIY4MlfTMkKGbNXFpvCdjl1w==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "chalk": "^3.0.0", - "prompts": "^2.2.1" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "jest-watch-typeahead": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.5.0.tgz", - "integrity": "sha512-4r36w9vU8+rdg48hj0Z7TvcSqVP6Ao8dk04grlHQNgduyCB0SqrI0xWIl85ZhXrzYvxQ0N5H+rRLAejkQzEHeQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "jest-regex-util": "^25.2.1", - "jest-watcher": "^25.2.4", - "slash": "^3.0.0", - "string-length": "^3.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.5.0.tgz", - "integrity": "sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==", - "dev": true, - "requires": { - "@jest/test-result": "^25.5.0", - "@jest/types": "^25.5.0", - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "jest-util": "^25.5.0", - "string-length": "^3.1.0" - }, - "dependencies": { - "@jest/console": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz", - "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "jest-message-util": "^25.5.0", - "jest-util": "^25.5.0", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz", - "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==", - "dev": true, - "requires": { - "@jest/console": "^25.5.0", - "@jest/types": "^25.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "jest-message-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz", - "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^25.5.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "slash": "^3.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-util": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz", - "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "chalk": "^3.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "make-dir": "^3.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jetifier": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/jetifier/-/jetifier-1.6.8.tgz", - "integrity": "sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==" - }, - "jimp": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.12.1.tgz", - "integrity": "sha512-0soPJif+yjmzmOF+4cF2hyhxUWWpXpQntsm2joJXFFoRcQiPzsG4dbLKYqYPT3Fc6PjZ8MaLtCkDqqckVSfmRw==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/custom": "^0.12.1", - "@jimp/plugins": "^0.12.1", - "@jimp/types": "^0.12.1", - "regenerator-runtime": "^0.13.3" - } - }, - "jpeg-js": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz", - "integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsc-android": { - "version": "245459.0.0", - "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-245459.0.0.tgz", - "integrity": "sha512-wkjURqwaB1daNkDi2OYYbsLnIdC/lUM2nPXQKRs5pqEU9chDg435bjvo+LSaHotDENygHQDHe+ntUkkw2gwMtg==" - }, - "jsdom": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz", - "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==", - "dev": true, - "requires": { - "abab": "^2.0.0", - "acorn": "^7.1.0", - "acorn-globals": "^4.3.2", - "array-equal": "^1.0.0", - "cssom": "^0.4.1", - "cssstyle": "^2.0.0", - "data-urls": "^1.1.0", - "domexception": "^1.0.1", - "escodegen": "^1.11.1", - "html-encoding-sniffer": "^1.0.2", - "nwsapi": "^2.2.0", - "parse5": "5.1.0", - "pn": "^1.1.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.7", - "saxes": "^3.1.9", - "symbol-tree": "^3.2.2", - "tough-cookie": "^3.0.1", - "w3c-hr-time": "^1.0.1", - "w3c-xmlserializer": "^1.1.2", - "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^7.0.0", - "ws": "^7.0.0", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "load-bmfont": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", - "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", - "requires": { - "buffer-equal": "0.0.1", - "mime": "^1.3.4", - "parse-bmfont-ascii": "^1.0.3", - "parse-bmfont-binary": "^1.0.5", - "parse-bmfont-xml": "^1.1.4", - "phin": "^2.9.1", - "xhr": "^2.0.1", - "xtend": "^4.0.0" - }, - "dependencies": { - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - } - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.frompairs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.frompairs/-/lodash.frompairs-4.0.1.tgz", - "integrity": "sha1-vE5SB/onV8E25XNhTpZkUGsrG9I=" - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=" - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "requires": { - "chalk": "^2.0.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } - } - }, - "logkitty": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", - "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", - "requires": { - "ansi-fragments": "^0.2.1", - "dayjs": "^1.8.15", - "yargs": "^15.1.0" - } - }, - "lolex": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", - "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "requires": { - "tmpl": "1.0.x" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5-file": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz", - "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==", - "requires": { - "buffer-alloc": "^1.1.0" - } - }, - "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "requires": { - "readable-stream": "^2.0.1" - } - }, - "metro": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.59.0.tgz", - "integrity": "sha512-OpVgYXyuTvouusFZQJ/UYKEbwfLmialrSCUUTGTFaBor6UMUHZgXPYtK86LzesgMqRc8aiuTQVO78iKW2Iz3wg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/core": "^7.0.0", - "@babel/generator": "^7.5.0", - "@babel/parser": "^7.0.0", - "@babel/plugin-external-helpers": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "absolute-path": "^0.0.0", - "async": "^2.4.0", - "babel-preset-fbjs": "^3.3.0", - "buffer-crc32": "^0.2.13", - "chalk": "^2.4.1", - "ci-info": "^2.0.0", - "concat-stream": "^1.6.0", - "connect": "^3.6.5", - "debug": "^2.2.0", - "denodeify": "^1.2.1", - "error-stack-parser": "^2.0.6", - "eventemitter3": "^3.0.0", - "fbjs": "^1.0.0", - "fs-extra": "^1.0.0", - "graceful-fs": "^4.1.3", - "image-size": "^0.6.0", - "invariant": "^2.2.4", - "jest-haste-map": "^24.9.0", - "jest-worker": "^24.9.0", - "json-stable-stringify": "^1.0.1", - "lodash.throttle": "^4.1.1", - "merge-stream": "^1.0.1", - "metro-babel-register": "0.59.0", - "metro-babel-transformer": "0.59.0", - "metro-cache": "0.59.0", - "metro-config": "0.59.0", - "metro-core": "0.59.0", - "metro-inspector-proxy": "0.59.0", - "metro-minify-uglify": "0.59.0", - "metro-react-native-babel-preset": "0.59.0", - "metro-resolver": "0.59.0", - "metro-source-map": "0.59.0", - "metro-symbolicate": "0.59.0", - "mime-types": "2.1.11", - "mkdirp": "^0.5.1", - "node-fetch": "^2.2.0", - "nullthrows": "^1.1.1", - "resolve": "^1.5.0", - "rimraf": "^2.5.4", - "serialize-error": "^2.1.0", - "source-map": "^0.5.6", - "strip-ansi": "^4.0.0", - "temp": "0.8.3", - "throat": "^4.1.0", - "wordwrap": "^1.0.0", - "ws": "^1.1.5", - "xpipe": "^1.0.5", - "yargs": "^14.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "fbjs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz", - "integrity": "sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==", - "requires": { - "core-js": "^2.4.1", - "fbjs-css-vars": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "fs-extra": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "mime-db": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", - "integrity": "sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=" - }, - "mime-types": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", - "integrity": "sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=", - "requires": { - "mime-db": "~1.23.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "yargs": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", - "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", - "requires": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.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": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.1" - } - }, - "yargs-parser": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", - "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "metro-babel-register": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.59.0.tgz", - "integrity": "sha512-JtWc29erdsXO/V3loenXKw+aHUXgj7lt0QPaZKPpctLLy8kcEpI/8pfXXgVK9weXICCpCnYtYncIosAyzh0xjg==", - "requires": { - "@babel/core": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/register": "^7.0.0", - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } - } - }, - "metro-babel-transformer": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.59.0.tgz", - "integrity": "sha512-fdZJl8rs54GVFXokxRdD7ZrQ1TJjxWzOi/xSP25VR3E8tbm3nBZqS+/ylu643qSr/IueABR+jrlqAyACwGEf6w==", - "requires": { - "@babel/core": "^7.0.0", - "metro-source-map": "0.59.0" - } - }, - "metro-cache": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.59.0.tgz", - "integrity": "sha512-ryWNkSnpyADfRpHGb8BRhQ3+k8bdT/bsxMH2O0ntlZYZ188d8nnYWmxbRvFmEzToJxe/ol4uDw0tJFAaQsN8KA==", - "requires": { - "jest-serializer": "^24.9.0", - "metro-core": "0.59.0", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4" - } - }, - "metro-config": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.59.0.tgz", - "integrity": "sha512-MDsknFG9vZ4Nb5VR6OUDmGHaWz6oZg/FtE3up1zVBKPVRTXE1Z+k7zypnPtMXjMh3WHs/Sy4+wU1xnceE/zdnA==", - "requires": { - "cosmiconfig": "^5.0.5", - "jest-validate": "^24.9.0", - "metro": "0.59.0", - "metro-cache": "0.59.0", - "metro-core": "0.59.0" - } - }, - "metro-core": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.59.0.tgz", - "integrity": "sha512-kb5LKvV5r2pqMEzGyTid8ai2mIjW13NMduQ8oBmfha7/EPTATcTQ//s+bkhAs1toQD8vqVvjAb0cPNjWQEmcmQ==", - "requires": { - "jest-haste-map": "^24.9.0", - "lodash.throttle": "^4.1.1", - "metro-resolver": "0.59.0", - "wordwrap": "^1.0.0" - } - }, - "metro-inspector-proxy": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.59.0.tgz", - "integrity": "sha512-hPeAuQcofTOH0F+2GEZqWkvkVY1/skezSSlMocDQDaqds+Kw6JgdA7FlZXxnKmQ/jYrWUzff/pl8SUCDwuYthQ==", - "requires": { - "connect": "^3.6.5", - "debug": "^2.2.0", - "ws": "^1.1.5", - "yargs": "^14.2.0" - }, - "dependencies": { - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", - "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", - "requires": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.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": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.1" - } - }, - "yargs-parser": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", - "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "metro-minify-uglify": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.59.0.tgz", - "integrity": "sha512-7IzVgCVWZMymgZ/quieg/9v5EQ8QmZWAgDc86Zp9j0Vy6tQTjUn6jlU+YAKW3mfMEjMr6iIUzCD8YklX78tFAw==", - "requires": { - "uglify-es": "^3.1.9" - } - }, - "metro-react-native-babel-preset": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.59.0.tgz", - "integrity": "sha512-BoO6ncPfceIDReIH8pQ5tQptcGo5yRWQXJGVXfANbiKLq4tfgdZB1C1e2rMUJ6iypmeJU9dzl+EhPmIFKtgREg==", - "requires": { - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.2.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-exponentiation-operator": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-for-of": "^7.0.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-object-assign": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-regenerator": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-template-literals": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "react-refresh": "^0.4.0" - } - }, - "metro-react-native-babel-transformer": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.59.0.tgz", - "integrity": "sha512-1O3wrnMq4NcPQ1asEcl9lRDn/t+F1Oef6S9WaYVIKEhg9m/EQRGVrrTVP+R6B5Eeaj3+zNKbzM8Dx/NWy1hUbQ==", - "requires": { - "@babel/core": "^7.0.0", - "babel-preset-fbjs": "^3.3.0", - "metro-babel-transformer": "0.59.0", - "metro-react-native-babel-preset": "0.59.0", - "metro-source-map": "0.59.0" - } - }, - "metro-resolver": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.59.0.tgz", - "integrity": "sha512-lbgiumnwoVosffEI96z0FGuq1ejTorHAj3QYUPmp5dFMfitRxLP7Wm/WP9l4ZZjIptxTExsJwuEff1SLRCPD9w==", - "requires": { - "absolute-path": "^0.0.0" - } - }, - "metro-source-map": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.59.0.tgz", - "integrity": "sha512-0w5CmCM+ybSqXIjqU4RiK40t4bvANL6lafabQ2GP2XD3vSwkLY+StWzCtsb4mPuyi9R/SgoLBel+ZOXHXAH0eQ==", - "requires": { - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.59.0", - "ob1": "0.59.0", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - } - }, - "metro-symbolicate": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.59.0.tgz", - "integrity": "sha512-asLaF2A7rndrToGFIknL13aiohwPJ95RKHf0NM3hP/nipiLDoMzXT6ZnQvBqDxkUKyP+51AI75DMtb+Wcyw4Bw==", - "requires": { - "invariant": "^2.2.4", - "metro-source-map": "0.59.0", - "source-map": "^0.5.6", - "through2": "^2.0.1", - "vlq": "^1.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" - }, - "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==" - }, - "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", - "requires": { - "mime-db": "1.48.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "mockdate": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/mockdate/-/mockdate-3.0.5.tgz", - "integrity": "sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "nocache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz", - "integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==" - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" - }, - "node-notifier": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz", - "integrity": "sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.1.1", - "semver": "^6.3.0", - "shellwords": "^0.1.1", - "which": "^1.3.1" - }, - "dependencies": { - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "optional": true - } - } - }, - "node-releases": { - "version": "1.1.72", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz", - "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==" - }, - "node-stream-zip": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.13.4.tgz", - "integrity": "sha512-M2nPvnSWFFH+fgLIRZDqmhshmuzXcr+ce9BsHQX/30pXR+cEz/USMYmx9ZAFYy837W2QoDoNzhFtbZhfzaMk9A==" - }, - "normalize-css-color": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/normalize-css-color/-/normalize-css-color-1.0.2.tgz", - "integrity": "sha1-Apkel8zOxmI/5XOvu/Deah8+n40=" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - }, - "dependencies": { - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "nullthrows": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "ob1": { - "version": "0.59.0", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.59.0.tgz", - "integrity": "sha512-opXMTxyWJ9m68ZglCxwo0OPRESIC/iGmKFPXEXzMZqsVIrgoRXOHmoMDkQzz4y3irVjbyPJRAh5pI9fd0MJTFQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "omggif": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", - "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "requires": { - "is-wsl": "^1.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" - }, - "ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parse-bmfont-ascii": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", - "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" - }, - "parse-bmfont-binary": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", - "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" - }, - "parse-bmfont-xml": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", - "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", - "requires": { - "xml-parse-from-string": "^1.0.0", - "xml2js": "^0.4.5" - } - }, - "parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" - }, - "parse-png": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", - "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", - "requires": { - "pngjs": "^3.3.0" - }, - "dependencies": { - "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" - } - } - }, - "parse5": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", - "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "phin": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", - "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", - "requires": { - "pngjs": "^3.0.0" - }, - "dependencies": { - "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" - } - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "plist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz", - "integrity": "sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==", - "requires": { - "base64-js": "^1.5.1", - "xmlbuilder": "^9.0.7", - "xmldom": "^0.5.0" - }, - "dependencies": { - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" - } - } - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=" - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=" - } - } - }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", - "dev": true - }, - "pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==" - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - }, - "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-string": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", - "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", - "requires": { - "decode-uri-component": "^0.2.0", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - } - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-devtools-core": { - "version": "4.13.5", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.13.5.tgz", - "integrity": "sha512-k+P5VSKM6P22Go9IQ8dJmjj9fbztvKt1iRDI/4wS5oTvd1EnytIJMYB59wZt+D3kgp64jklNX/MRmY42xAQ08g==", - "requires": { - "shell-quote": "^1.6.1", - "ws": "^7" - }, - "dependencies": { - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" - } - } - }, - "react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "dependencies": { - "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "react-native": { - "version": "https://github.com/expo/react-native/archive/sdk-41.0.0.tar.gz", - "integrity": "sha512-3jHI2YufrJi7eIABRf/DN/I2yOkmIZ0vAyezTz+PAUJiEs4v//5LLojWEU+W53AZsnuaEMcl/4fVy4bd+OuUbA==", - "requires": { - "@babel/runtime": "^7.0.0", - "@react-native-community/cli": "^4.14.0", - "@react-native-community/cli-platform-android": "^4.13.0", - "@react-native-community/cli-platform-ios": "^4.13.0", - "abort-controller": "^3.0.0", - "anser": "^1.4.9", - "base64-js": "^1.1.2", - "event-target-shim": "^5.0.1", - "fbjs": "^1.0.0", - "fbjs-scripts": "^1.1.0", - "hermes-engine": "~0.5.0", - "invariant": "^2.2.4", - "jsc-android": "^245459.0.0", - "metro-babel-register": "0.59.0", - "metro-react-native-babel-transformer": "0.59.0", - "metro-source-map": "0.59.0", - "nullthrows": "^1.1.1", - "pretty-format": "^24.9.0", - "promise": "^8.0.3", - "prop-types": "^15.7.2", - "react-devtools-core": "^4.6.0", - "react-refresh": "^0.4.0", - "regenerator-runtime": "^0.13.2", - "scheduler": "0.19.1", - "stacktrace-parser": "^0.1.3", - "use-subscription": "^1.0.0", - "whatwg-fetch": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@react-native-community/cli": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-4.14.0.tgz", - "integrity": "sha512-EYJKBuxFxAu/iwNUfwDq41FjORpvSh1wvQ3qsHjzcR5uaGlWEOJrd3uNJDuKBAS0TVvbEesLF9NEXipjyRVr4Q==", - "requires": { - "@hapi/joi": "^15.0.3", - "@react-native-community/cli-debugger-ui": "^4.13.1", - "@react-native-community/cli-hermes": "^4.13.0", - "@react-native-community/cli-server-api": "^4.13.1", - "@react-native-community/cli-tools": "^4.13.0", - "@react-native-community/cli-types": "^4.10.1", - "chalk": "^3.0.0", - "command-exists": "^1.2.8", - "commander": "^2.19.0", - "cosmiconfig": "^5.1.0", - "deepmerge": "^3.2.0", - "envinfo": "^7.7.2", - "execa": "^1.0.0", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0", - "glob": "^7.1.3", - "graceful-fs": "^4.1.3", - "inquirer": "^3.0.6", - "leven": "^3.1.0", - "lodash": "^4.17.15", - "metro": "^0.59.0", - "metro-config": "^0.59.0", - "metro-core": "^0.59.0", - "metro-react-native-babel-transformer": "^0.59.0", - "metro-resolver": "^0.59.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "node-stream-zip": "^1.9.1", - "ora": "^3.4.0", - "pretty-format": "^25.2.0", - "semver": "^6.3.0", - "serve-static": "^1.13.1", - "strip-ansi": "^5.2.0", - "sudo-prompt": "^9.0.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - } - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" - }, - "fbjs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz", - "integrity": "sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==", - "requires": { - "core-js": "^2.4.1", - "fbjs-css-vars": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, - "dependencies": { - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - } - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - }, - "dependencies": { - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/yargs": { - "version": "13.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz", - "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } - } - }, - "promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", - "requires": { - "asap": "~2.0.6" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "react-native-gesture-handler": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.10.3.tgz", - "integrity": "sha512-cBGMi1IEsIVMgoox4RvMx7V2r6bNKw0uR1Mu1o7NbuHS6BRSVLq0dP34l2ecnPlC+jpWd3le6Yg1nrdCjby2Mw==", - "requires": { - "@egjs/hammerjs": "^2.0.17", - "fbjs": "^3.0.0", - "hoist-non-react-statics": "^3.3.0", - "invariant": "^2.2.4", - "prop-types": "^15.7.2" - }, - "dependencies": { - "fbjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz", - "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==", - "requires": { - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - } - } - }, - "react-native-iphone-x-helper": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz", - "integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==" - }, - "react-native-reanimated": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.2.0.tgz", - "integrity": "sha512-lOJDd+5w1gY6DHGXG2jD1dsjzQmXQ2699HUc3IztvI2WP4zUT+UAA+zSG+5JiBS5DUnTL8YhhkmUQmr1KNGO5w==", - "requires": { - "@babel/plugin-transform-object-assign": "^7.10.4", - "fbjs": "^3.0.0", - "mockdate": "^3.0.2", - "string-hash-64": "^1.0.3" - }, - "dependencies": { - "fbjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz", - "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==", - "requires": { - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - } - } - }, - "react-native-safe-area-context": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-3.2.0.tgz", - "integrity": "sha512-k2Nty4PwSnrg9HwrYeeE+EYqViYJoOFwEy9LxL5RIRfoqxAq/uQXNGwpUg2/u4gnKpBbEPa9eRh15KKMe/VHkA==" - }, - "react-native-screens": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.3.0.tgz", - "integrity": "sha512-ni11jC6I9cFVXdLIDwkgafDHw/STXUNzkR5Fx3w8Wikdzi8gfTEan2kiOm7aS42d2F/LXddZ6i74Z2em0L6LPQ==" - }, - "react-native-web": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.16.3.tgz", - "integrity": "sha512-Npw76F9eFmA0CdH/BVvmz8BbVhFMoQZ3CZFQmkiw1SFvM3izl3JgRz+Gvs2ov7LdBEolIXRTQMuMzUVotxE92A==", - "requires": { - "array-find-index": "^1.0.2", - "create-react-class": "^15.7.0", - "deep-assign": "^3.0.0", - "fbjs": "^3.0.0", - "hyphenate-style-name": "^1.0.4", - "inline-style-prefixer": "^6.0.0", - "normalize-css-color": "^1.0.2", - "prop-types": "^15.6.0", - "react-timer-mixin": "^0.13.4" - }, - "dependencies": { - "fbjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz", - "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==", - "requires": { - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - } - } - } - }, - "react-refresh": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz", - "integrity": "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==" - }, - "react-test-renderer": { - "version": "16.11.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.11.0.tgz", - "integrity": "sha512-nh9gDl8R4ut+ZNNb2EeKO5VMvTKxwzurbSMuGBoKtjpjbg8JK/u3eVPVNi1h1Ue+eYK9oSzJjb+K3lzLxyA4ag==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "react-is": "^16.8.6", - "scheduler": "^0.17.0" - }, - "dependencies": { - "scheduler": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.17.0.tgz", - "integrity": "sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } - } - }, - "react-timer-mixin": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/react-timer-mixin/-/react-timer-mixin-0.13.4.tgz", - "integrity": "sha512-4+ow23tp/Tv7hBM5Az5/Be/eKKF7DIvJ09voz5LyHGQaqqz9WV8YMs31eFvcYQs7d451LSg7kDJV70XYN/Ug/Q==" - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "realpath-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", - "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", - "dev": true - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" - }, - "regjsparser": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", - "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "reselect": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", - "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "requires": { - "rx-lite": "*" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", - "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", - "dev": true, - "requires": { - "xmlchars": "^2.1.1" - } - }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "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.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "serialize-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", - "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=" - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "simple-plist": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.1.1.tgz", - "integrity": "sha512-pKMCVKvZbZTsqYR6RKgLfBHkh2cV89GXcA/0CVPje3sOiNOnXA8+rp/ciAMZ7JRaUdLzlEM6JFfUn+fS6Nt3hg==", - "requires": { - "bplist-creator": "0.0.8", - "bplist-parser": "0.2.0", - "plist": "^3.0.1" - } - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "requires": { - "is-arrayish": "^0.3.1" - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "slugify": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.3.tgz", - "integrity": "sha512-/HkjRdwPY3yHJReXu38NiusZw2+LLE2SrhkWJtmlPDB1fqFSvioYj62NkPcrKiNCgRLeGcGK7QBvr1iQwybeXw==" - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", - "dev": true - }, - "split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - } - } - }, - "stackframe": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", - "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==" - }, - "stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", - "requires": { - "type-fest": "^0.7.1" - }, - "dependencies": { - "type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==" - } - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, - "stream-buffers": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=" - }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" - }, - "string-hash-64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string-hash-64/-/string-hash-64-1.0.3.tgz", - "integrity": "sha512-D5OKWKvDhyVWWn2x5Y9b+37NUllks34q1dCDhk/vYcso9fmhs+Tl3KR/gE4v5UNj2UA35cnX4KdVVGkG1deKqw==" - }, - "string-length": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", - "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", - "dev": true, - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^5.2.0" - } - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - } - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "sudo-prompt": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", - "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "temp": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", - "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", - "requires": { - "os-tmpdir": "^1.0.0", - "rimraf": "~2.2.6" - }, - "dependencies": { - "rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" - } - } - }, - "temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=" - }, - "tempy": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", - "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", - "requires": { - "temp-dir": "^1.0.0", - "type-fest": "^0.3.1", - "unique-string": "^1.0.0" - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" - }, - "timm": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", - "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==" - }, - "tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", - "dev": true, - "requires": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz", - "integrity": "sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.28", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", - "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==" - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "requires": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url-parse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", - "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "use-subscription": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", - "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", - "requires": { - "object-assign": "^4.1.1" - } - }, - "utif": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", - "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", - "requires": { - "pako": "^1.0.5" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "v8-to-istanbul": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz", - "integrity": "sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vlq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", - "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", - "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", - "dev": true, - "requires": { - "domexception": "^1.0.1", - "webidl-conversions": "^4.0.2", - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "requires": { - "makeerror": "1.0.x" - } - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "requires": { - "defaults": "^1.0.3" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "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-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "which-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", - "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "ws": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", - "requires": { - "options": ">=0.0.5", - "ultron": "1.0.x" - } - }, - "xcode": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", - "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", - "requires": { - "simple-plist": "^1.1.0", - "uuid": "^7.0.3" - }, - "dependencies": { - "uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" - } - } - }, - "xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "requires": { - "sax": "^1.2.4" - } - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xml-parse-from-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", - "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "dependencies": { - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - } - } - }, - "xmlbuilder": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", - "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "xmldoc": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", - "integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==", - "requires": { - "sax": "^1.2.1" - } - }, - "xmldom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz", - "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==" - }, - "xpipe": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/xpipe/-/xpipe-1.0.5.tgz", - "integrity": "sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98=" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "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" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - } - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" - } - } -} diff --git a/app/package.json b/app/package.json deleted file mode 100644 index 0a00186..0000000 --- a/app/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "main": "node_modules/expo/AppEntry.js", - "scripts": { - "start": "expo start", - "android": "expo start --android", - "ios": "expo start --ios", - "web": "expo start --web", - "eject": "expo eject", - "test": "jest --watchAll" - }, - "jest": { - "preset": "jest-expo" - }, - "dependencies": { - "@expo/vector-icons": "12.0.5", - "@react-native-community/masked-view": "0.1.11", - "@react-navigation/bottom-tabs": "5.11.11", - "@react-navigation/native": "5.9.4", - "@react-navigation/stack": "5.14.5", - "expo": "41.0.1", - "expo-asset": "8.3.2", - "expo-constants": "10.1.3", - "expo-font": "9.1.0", - "expo-linking": "2.2.3", - "expo-splash-screen": "0.10.2", - "expo-status-bar": "1.0.4", - "expo-web-browser": "9.1.0", - "react": "17.0.2", - "react-dom": "17.0.2", - "react-native": "https://github.com/expo/react-native/archive/sdk-41.0.0.tar.gz", - "react-native-reanimated": "2.2.0", - "react-native-gesture-handler": "1.10.3", - "react-native-safe-area-context": "3.2.0", - "react-native-screens": "3.3.0", - "react-native-web": "0.16.3" - }, - "devDependencies": { - "@babel/core": "7.14.3", - "@types/react": "17.0.8", - "@types/react-native": "0.64.8", - "jest-expo": "41.0.0", - "typescript": "4.3.2" - }, - "private": true -} diff --git a/app/screens/NotFoundScreen.tsx b/app/screens/NotFoundScreen.tsx deleted file mode 100644 index 93414a3..0000000 --- a/app/screens/NotFoundScreen.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { StackScreenProps } from "@react-navigation/stack"; -import * as React from "react"; -import { StyleSheet, Text, TouchableOpacity, View } from "react-native"; - -import { RootStackParamList } from "../types"; - -export default function NotFoundScreen({ - navigation, -}: StackScreenProps) { - return ( - - This screen doesn't exist. - navigation.replace("Root")} style={styles.link}> - Go to home screen! - - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: "#fff", - alignItems: "center", - justifyContent: "center", - padding: 20, - }, - title: { - fontSize: 20, - fontWeight: "bold", - }, - link: { - marginTop: 15, - paddingVertical: 15, - }, - linkText: { - fontSize: 14, - color: "#2e78b7", - }, -}); diff --git a/app/screens/TabOneScreen.tsx b/app/screens/TabOneScreen.tsx deleted file mode 100644 index 8de8126..0000000 --- a/app/screens/TabOneScreen.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import * as React from "react"; -import { StyleSheet } from "react-native"; - -import EditScreenInfo from "../components/EditScreenInfo"; -import { Text, View } from "../components/Themed"; - -export default function TabOneScreen() { - return ( - - Tab One - - - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - alignItems: "center", - justifyContent: "center", - }, - title: { - fontSize: 20, - fontWeight: "bold", - }, - separator: { - marginVertical: 30, - height: 1, - width: "80%", - }, -}); diff --git a/app/screens/TabTwoScreen.tsx b/app/screens/TabTwoScreen.tsx deleted file mode 100644 index 7f0cfa7..0000000 --- a/app/screens/TabTwoScreen.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import * as React from "react"; -import { StyleSheet } from "react-native"; - -import EditScreenInfo from "../components/EditScreenInfo"; -import { Text, View } from "../components/Themed"; -import type { Conversation } from "../../api/src/controller/sms"; - -export default function TabTwoScreen() { - const [conversations, setConversations] = React.useState({}); - const conversationsEntries = Object.entries(conversations); - - React.useEffect(() => { - fetch("http://192.168.1.40:3000/conversations") - .then(response => response.json()) - .then(conversations => setConversations(conversations)) - .catch(error => console.error("error", error)); - }, []); - - return ( - - Tab Two - - {conversationsEntries.map(([recipient, messages], index) => { - const lastMessage = messages[messages.length - 1]; - return ( - <> - - {recipient} - {lastMessage.content} - {new Date(lastMessage.sentAt).toDateString()} - - {index + 1 < messages.length && ( - - )} - - ) - })} - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - alignItems: "center", - justifyContent: "center", - }, - title: { - fontSize: 20, - fontWeight: "bold", - }, - separator: { - marginVertical: 30, - height: 1, - width: "80%", - }, -}); diff --git a/app/tsconfig.json b/app/tsconfig.json deleted file mode 100644 index c4a1038..0000000 --- a/app/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "expo/tsconfig.base", - "compilerOptions": { - "strict": true - } -} diff --git a/app/types.tsx b/app/types.tsx deleted file mode 100644 index 0bec539..0000000 --- a/app/types.tsx +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Learn more about using TypeScript with React Navigation: - * https://reactnavigation.org/docs/typescript/ - */ - -export type RootStackParamList = { - Root: undefined; - NotFound: undefined; -}; - -export type BottomTabParamList = { - TabOne: undefined; - TabTwo: undefined; -}; - -export type TabOneParamList = { - TabOneScreen: undefined; -}; - -export type TabTwoParamList = { - TabTwoScreen: undefined; -}; diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..5d6c41e --- /dev/null +++ b/jest.config.js @@ -0,0 +1,15 @@ +module.exports = { + collectCoverageFrom: [ + "src/**/*.{js,jsx,ts,tsx}", + "lib/**/*.{js,jsx,ts,tsx}", + ], + transform: { + "^.+\\.(js|jsx|ts|tsx)$": "/node_modules/babel-jest", + }, + transformIgnorePatterns: [ + "/node_modules/", + "/.next/", + ], + setupFilesAfterEnv: ["./jest/setup.ts"], + testEnvironment: "node", +}; diff --git a/jest/helpers.ts b/jest/helpers.ts new file mode 100644 index 0000000..b8d283a --- /dev/null +++ b/jest/helpers.ts @@ -0,0 +1,109 @@ +import type { NextApiHandler } from "next"; +import type { IncomingMessage, RequestListener, ServerResponse } from "http"; +import http from "http"; +import type { __ApiPreviewProps } from "next/dist/next-server/server/api-utils"; +import { apiResolver } from "next/dist/next-server/server/api-utils"; +import listen from "test-listen"; +import fetch from "isomorphic-fetch"; +import crypto from "crypto"; + +import CookieStore from "../lib/cookie-store"; +import Session from "../lib/session"; + +type Authentication = + | "none" + | "auth0" + | "google-oauth2" + | "facebook" + | "twitter"; + +type Params = { + method: string; + body?: any; + headers?: Record; + query?: Record; + authentication?: Authentication; +}; + +const apiPreviewProps: __ApiPreviewProps = { + previewModeEncryptionKey: crypto.randomBytes(16).toString("hex"), + previewModeId: crypto.randomBytes(32).toString("hex"), + previewModeSigningKey: crypto.randomBytes(32).toString("hex"), +}; + +export async function callApiHandler(handler: NextApiHandler, params: Params) { + const { + method = "GET", + body, + headers = {}, + query = {}, + authentication = "none", + } = params; + + const requestHandler: RequestListener = (req, res) => { + const propagateError = false; + Object.assign(req.headers, headers); + + if (req.url !== "/") { + // in these API tests, our http server uses the same handler for all routes, it has no idea about our app's routes + // when we're hitting anything else than the / route, it means that we've been redirected + const fallbackHandler: NextApiHandler = (req, res) => + res.status(200).end(); + + return apiResolver( + req, + res, + query, + fallbackHandler, + apiPreviewProps, + propagateError, + ); + } + + if (authentication !== "none") { + writeSessionToCookie(req, res, authentication); + } + + return apiResolver( + req, + res, + query, + handler, + apiPreviewProps, + propagateError, + ); + }; + + const server = http.createServer(requestHandler); + const url = await listen(server); + let fetchOptions: RequestInit = { method, redirect: "manual" }; + if (body) { + fetchOptions.body = JSON.stringify(body); + fetchOptions.headers = { "Content-Type": "application/json" }; + } + + const response = await fetch(url, fetchOptions); + server.close(); + + return response; +} + +function writeSessionToCookie( + req: IncomingMessage, + res: ServerResponse, + authentication: Authentication, +) { + const cookieStore = new CookieStore(); + const session: Session = new Session({ + id: `${authentication}|userId`, + email: "test@fss.test", + name: "Groot", + teamId: "teamId", + role: "owner", + }); + cookieStore.save(req, res, session); + + const setCookieHeader = res.getHeader("Set-Cookie") as string[]; + // write it to request headers to immediately have access to the user's session + req.headers.cookie = setCookieHeader.join(""); +} diff --git a/jest/setup.ts b/jest/setup.ts new file mode 100644 index 0000000..bd9e08b --- /dev/null +++ b/jest/setup.ts @@ -0,0 +1,24 @@ +import "@testing-library/jest-dom/extend-expect"; + +jest.mock("next/config", () => () => { + // see https://github.com/vercel/next.js/issues/4024 + const config = require("../next.config"); + + return { + serverRuntimeConfig: config.serverRuntimeConfig, + publicRuntimeConfig: config.publicRuntimeConfig, + }; +}); + +jest.mock("../lib/logger", () => ({ + child: jest.fn().mockReturnValue({ + log: jest.fn(), + error: jest.fn(), + debug: jest.fn(), + warn: jest.fn(), + }), +})); + +export function noop() { + // exported function to mark the file as a module +} diff --git a/jest/testing-library.ts b/jest/testing-library.ts new file mode 100644 index 0000000..9c7f86f --- /dev/null +++ b/jest/testing-library.ts @@ -0,0 +1 @@ +export * from "@testing-library/react"; diff --git a/lib/__tests__/session-helpers.ts b/lib/__tests__/session-helpers.ts new file mode 100644 index 0000000..3703930 --- /dev/null +++ b/lib/__tests__/session-helpers.ts @@ -0,0 +1,30 @@ +import type { NextApiHandler } from "next"; + +import { withApiAuthRequired } from "../session-helpers"; +import { callApiHandler } from "../../jest/helpers"; + +describe("session-helpers", () => { + describe("withApiAuthRequired", () => { + const basicHandler: NextApiHandler = (req, res) => + res.status(200).end(); + + test("responds 401 to unauthenticated GET", async () => { + const withAuthHandler = withApiAuthRequired(basicHandler); + const { status } = await callApiHandler(withAuthHandler, { + method: "GET", + }); + + expect(status).toBe(401); + }); + + test("responds 200 to authenticated GET", async () => { + const withAuthHandler = withApiAuthRequired(basicHandler); + const { status } = await callApiHandler(withAuthHandler, { + method: "GET", + authentication: "auth0", + }); + + expect(status).toBe(200); + }); + }); +}); diff --git a/lib/logger.ts b/lib/logger.ts new file mode 100644 index 0000000..13b46ad --- /dev/null +++ b/lib/logger.ts @@ -0,0 +1,12 @@ +import pino from "pino"; + +const appLogger = pino({ + level: "debug", + base: { + env: process.env.NODE_ENV || "NODE_ENV not set", + revision: process.env.VERCEL_GITHUB_COMMIT_SHA, + }, + prettyPrint: true, +}); + +export default appLogger; diff --git a/lib/session-helpers.ts b/lib/session-helpers.ts new file mode 100644 index 0000000..8bc2112 --- /dev/null +++ b/lib/session-helpers.ts @@ -0,0 +1,184 @@ +import type { + GetServerSideProps, + GetServerSidePropsContext, + GetServerSidePropsResult, + NextApiHandler, + NextApiRequest, + NextApiResponse, +} from "next"; +import type { User } from "@supabase/supabase-js"; + +import supabase from "../src/supabase/server"; +import appLogger from "./logger"; +import { setCookie } from "./utils/cookies"; +import { findCustomer } from "../src/database/customer"; +import { findCustomerPhoneNumber } from "../src/database/phone-number"; + +const logger = appLogger.child({ module: "session-helpers" }); + +type EmptyProps = Record; + +type SessionProps = { + user: User; +}; + +function hasProps( + result: GetServerSidePropsResult, +): result is { props: Props } { + return result.hasOwnProperty("props"); +} + +export function withPageOnboardingRequired( + getServerSideProps?: GSSPWithSession, +) { + return withPageAuthRequired( + async function wrappedGetServerSideProps(context, user) { + if (context.req.cookies.hasDoneOnboarding !== "true") { + try { + const customer = await findCustomer(user.id); + console.log("customer", customer); + if (!customer.accountSid || !customer.authToken) { + return { + redirect: { + destination: "/welcome/step-two", + permanent: false, + }, + }; + } + /*if (!customer.paddleCustomerId || !customer.paddleSubscriptionId) { + return { + redirect: { + destination: "/welcome/step-one", + permanent: false, + }, + }; + }*/ + try { + await findCustomerPhoneNumber(user.id); + } catch (error) { + console.log("error", error); + return { + redirect: { + destination: "/welcome/step-three", + permanent: false, + }, + }; + } + + setCookie({ + req: context.req, + res: context.res, + name: "hasDoneOnboarding", + value: "true", + }); + } catch (error) { + console.error("error", error); + } + } + + if (!getServerSideProps) { + return { + props: {} as Props, + }; + } + + return getServerSideProps(context, user); + }, + ); +} + +type GSSPWithSession = ( + context: GetServerSidePropsContext, + user: User, +) => GetServerSidePropsResult | Promise>; + +export function withPageAuthRequired( + getServerSideProps?: GSSPWithSession, +): GetServerSideProps & SessionProps> { + return async function wrappedGetServerSideProps(context) { + const redirectTo = `/auth/sign-in?redirectTo=${context.resolvedUrl}`; + const userResponse = await supabase.auth.api.getUserByCookie(context.req); + const user = userResponse.user!; + if (userResponse.error) { + return { + redirect: { + destination: redirectTo, + permanent: false, + }, + }; + } + + if (!getServerSideProps) { + return { + props: { user } as Props & SessionProps, + }; + } + + const getServerSidePropsResult = await getServerSideProps( + context, + user, + ); + if (!hasProps(getServerSidePropsResult)) { + return getServerSidePropsResult; + } + + return { + props: { + ...getServerSidePropsResult.props, + user, + }, + }; + }; +} + +type ApiHandlerWithAuth = ( + req: NextApiRequest, + res: NextApiResponse, + user: User, +) => void | Promise; + +export function withApiAuthRequired( + handler: ApiHandlerWithAuth, +): NextApiHandler { + return async function wrappedApiHandler(req, res) { + const userResponse = await supabase.auth.api.getUserByCookie(req); + if (userResponse.error) { + logger.error(userResponse.error.message); + return res.status(401).end(); + } + + return handler(req, res, userResponse.user!); + }; +} + +export function withPageAuthNotRequired( + getServerSideProps?: GetServerSideProps, +): GetServerSideProps { + return async function wrappedGetServerSideProps(context) { + let redirectTo: string; + if (Array.isArray(context.query.redirectTo)) { + redirectTo = context.query.redirectTo[0]; + } else { + redirectTo = context.query.redirectTo ?? "/messages"; + } + + const { user } = await supabase.auth.api.getUserByCookie(context.req); + console.log("user", user); + if (user !== null) { + console.log("redirect"); + return { + redirect: { + destination: redirectTo, + permanent: false, + }, + }; + } + + console.log("no redirect"); + if (getServerSideProps) { + return getServerSideProps(context); + } + + return { props: {} as Props }; + }; +} diff --git a/lib/utils/cookies.ts b/lib/utils/cookies.ts new file mode 100644 index 0000000..bcc8ae8 --- /dev/null +++ b/lib/utils/cookies.ts @@ -0,0 +1,79 @@ +import type { IncomingMessage, ServerResponse } from "http"; +import type { CookieSerializeOptions } from "cookie"; +import nookies from "nookies"; + +const defaultOptions: CookieSerializeOptions = { + httpOnly: true, + sameSite: "lax", + path: "/", +}; + +export function getCookies(req?: BaseParams["req"]) { + const context = buildContext({ req }); + + return nookies.get(context); +} + +type SetCookieParams = BaseParams & { + value: string; + options?: CookieSerializeOptions; +}; + +export function setCookie(params: SetCookieParams) { + const { req, res, name, value } = params; + const context = buildContext({ res }); + const options: CookieSerializeOptions = { + ...defaultOptions, + ...params.options, + secure: isSecureEnvironment(req), + }; + + return nookies.set(context, name, value, options); +} + +type DestroyCookieParams = BaseParams & { + options?: CookieSerializeOptions; +}; + +export function destroyCookie(params: DestroyCookieParams) { + const { res, name } = params; + const context = buildContext({ res }); + const options = Object.assign({}, defaultOptions, params.options); + + return nookies.destroy(context, name, options); +} + +function isSecureEnvironment(req: IncomingMessage | null | undefined): boolean { + if (process.env.NODE_ENV !== "production") { + return false; + } + + if (!req || !req.headers || !req.headers.host) { + return false; + } + + const host = + (req.headers.host.indexOf(":") > -1 && + req.headers.host.split(":")[0]) || + req.headers.host; + + return !["localhost", "127.0.0.1"].includes(host); +} + +type BaseParams = { + req?: IncomingMessage | null; + res?: ServerResponse | null; + name: string; +}; + +function buildContext({ req, res }: Pick) { + if (req !== null && typeof req !== "undefined") { + return { req }; + } + + if (res !== null && typeof res !== "undefined") { + return { res }; + } + + return null; +} diff --git a/lib/utils/hkdf.ts b/lib/utils/hkdf.ts new file mode 100644 index 0000000..8b54c4f --- /dev/null +++ b/lib/utils/hkdf.ts @@ -0,0 +1,7 @@ +import hkdf from "futoin-hkdf"; + +const BYTE_LENGTH = 32; + +export function encryption(secret: string) { + return hkdf(secret, BYTE_LENGTH, { info: "JWE CEK", hash: "SHA-256" }); +} diff --git a/next-env.d.ts b/next-env.d.ts new file mode 100644 index 0000000..c6643fd --- /dev/null +++ b/next-env.d.ts @@ -0,0 +1,3 @@ +/// +/// +/// diff --git a/next.config.js b/next.config.js new file mode 100644 index 0000000..d95df98 --- /dev/null +++ b/next.config.js @@ -0,0 +1,104 @@ +require("dotenv").config(); + + +const contentSecurityPolicy = ` + child-src 'none'; + connect-src *; + default-src 'self'; + font-src 'self'; + frame-ancestors 'none'; + img-src 'self' data:; + media-src 'none'; + script-src 'self' 'unsafe-eval' 'unsafe-inline'; + style-src 'self' 'unsafe-inline'; +`; + +const nextConfig = { + async headers() { + return [ + { + source: "/(.*)", + headers: [ + /*{ + key: "Content-Security-Policy", + value: contentSecurityPolicy.replace(/\n/g, ""), + },*/ + { + key: "Referrer-Policy", + value: "origin-when-cross-origin", + }, + { + key: "X-Content-Type-Options", + value: "nosniff", + }, + { + key: "X-DNS-Prefetch-Control", + value: "on", + }, + { + key: "Strict-Transport-Security", + value: "max-age=31536000; includeSubDomains; preload", + }, + { + key: "Permissions-Policy", + value: "interest-cohort=()", + }, + ], + }, + { + source: "/(.*).woff2", + headers: [ + { + key: "Cache-Control", + value: + "public, immutable, max-age=31536000", + }, + ], + }, + ]; + }, + serverRuntimeConfig: { + paddle: { + apiKey: process.env.PADDLE_API_KEY, + publicKey: process.env.PADDLE_PUBLIC_KEY, + }, + cookie: { + secret: process.env.SESSION_COOKIE_SECRET, + }, + auth0: { + clientSecret: process.env.AUTH0_CLIENT_SECRET, + managementClientId: process.env.AUTH0_MANAGEMENT_CLIENT_ID, + managementClientSecret: process.env.AUTH0_MANAGEMENT_CLIENT_SECRET, + }, + awsSes: { + awsRegion: process.env.AWS_SES_REGION, + accessKeyId: process.env.AWS_SES_ACCESS_KEY_ID, + secretAccessKey: process.env.AWS_SES_ACCESS_KEY_SECRET, + fromEmail: process.env.AWS_SES_FROM_EMAIL, + }, + mailChimp: { + apiKey: process.env.MAILCHIMP_API_KEY, + audienceId: process.env.MAILCHIMP_AUDIENCE_ID, + }, + supabase: { + roleKey: process.env.SUPABASE_ROLE_KEY, + }, + masterEncryptionKey: process.env.MASTER_ENCRYPTION_KEY, + }, + publicRuntimeConfig: { + paddle: { + vendorId: process.env.PADDLE_VENDOR_ID, + }, + auth0: { + domain: process.env.AUTH0_DOMAIN, + redirectUri: process.env.AUTH0_REDIRECT_URI, + clientId: process.env.AUTH0_CLIENT_ID, + }, + supabase: { + url: process.env.SUPABASE_URL, + anonKey: process.env.SUPABASE_ANON_KEY, + }, + }, +}; + +module.exports = nextConfig; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..aace524 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11912 @@ +{ + "name": "my-fullstack-serverless-app", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==" + }, + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", + "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", + "dev": true + }, + "@babel/core": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz", + "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helpers": "^7.14.6", + "@babel/parser": "^7.14.6", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", + "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "requires": { + "@babel/types": "^7.14.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", + "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", + "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", + "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", + "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", + "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==" + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true + }, + "@babel/helpers": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", + "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", + "dev": true, + "requires": { + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", + "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==" + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", + "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.7.tgz", + "integrity": "sha512-Wvzcw4mBYbTagyBVZpAJWI06auSIj033T/yNE0Zn1xcup83MieCddZA7ls3kme17L4NOGBrQ09Q+nKB41RLWBA==", + "dev": true, + "requires": { + "core-js-pure": "^3.15.0", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "requires": { + "@babel/highlight": "^7.14.5" + } + } + } + }, + "@babel/traverse": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", + "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.14.7", + "@babel/types": "^7.14.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "requires": { + "@babel/highlight": "^7.14.5" + } + } + } + }, + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@devoxa/aes-encryption": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@devoxa/aes-encryption/-/aes-encryption-1.0.3.tgz", + "integrity": "sha512-oSNSRenW0QDnEtq7yf/Rw/2BtWkPkKdHDLGZk6srsO966twt3t5u4bOrZnjqnRo/ZCqXyFas2loJz6SMUZrCNA==" + }, + "@devoxa/paddle-sdk": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@devoxa/paddle-sdk/-/paddle-sdk-0.2.1.tgz", + "integrity": "sha512-GXcrMa4+Sy7zG29QN5liZNT+GzNkZsuxe8nXn7vg0LNpw+cbjPRNuz8ow83ZzKo/nlG7Kfi5e7koRFJk3ke8pQ==", + "requires": { + "@devoxa/aes-encryption": "^1.0.2", + "dayjs": "^1.8.33", + "form-data": "^4.0.0", + "node-fetch": "^2.6.0", + "php-serialize": "^4.0.2" + } + }, + "@eslint/eslintrc": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz", + "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", + "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@fastify/ajv-compiler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-1.1.0.tgz", + "integrity": "sha512-gvCOUNpXsWrIQ3A4aXCLIdblL0tDq42BG/2Xw7oxbil9h11uow10ztS2GuFazNBfjbrsZ5nl+nPl5jDSjj5TSg==", + "requires": { + "ajv": "^6.12.6" + } + }, + "@firebase/app-types": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.2.tgz", + "integrity": "sha512-2VXvq/K+n8XMdM4L2xy5bYp2ZXMawJXluUIDzUBvMthVR+lhxK4pfFiqr1mmDbv9ydXvEAuFsD+6DpcZuJcSSw==" + }, + "@firebase/auth-interop-types": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz", + "integrity": "sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g==" + }, + "@firebase/component": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.5.4.tgz", + "integrity": "sha512-KoLDPTsvxWr6FT9kn/snffJItaWXZLHLJlZVKiiw+flKE6MVA8Eec+ctvM2zcsMZzC2Z47gFnVqywfBlOevmpQ==", + "requires": { + "@firebase/util": "1.1.0", + "tslib": "^2.1.0" + } + }, + "@firebase/database": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.10.6.tgz", + "integrity": "sha512-AGxRnKaJQd4Pq7sblrWI39XM5N2u/pZOeopMxVRja38Cubxp6P5T7lzpp0xNSOQ/RszAoHskGIlCfIz+teaXSQ==", + "requires": { + "@firebase/auth-interop-types": "0.1.6", + "@firebase/component": "0.5.4", + "@firebase/database-types": "0.7.2", + "@firebase/logger": "0.2.6", + "@firebase/util": "1.1.0", + "faye-websocket": "0.11.3", + "tslib": "^2.1.0" + } + }, + "@firebase/database-types": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.7.2.tgz", + "integrity": "sha512-cdAd/dgwvC0r3oLEDUR+ULs1vBsEvy0b27nlzKhU6LQgm9fCDzgaH9nFGv8x+S9dly4B0egAXkONkVoWcOAisg==", + "requires": { + "@firebase/app-types": "0.6.2" + } + }, + "@firebase/logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz", + "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==" + }, + "@firebase/util": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.1.0.tgz", + "integrity": "sha512-lfuSASuPKNdfebuFR8rjFamMQUPH9iiZHcKS755Rkm/5gRT0qC7BMhCh3ZkHf7NVbplzIc/GhmX2jM+igDRCag==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@fortawesome/fontawesome-common-types": { + "version": "0.2.35", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.35.tgz", + "integrity": "sha512-IHUfxSEDS9dDGqYwIW7wTN6tn/O8E0n5PcAHz9cAaBoZw6UpG20IG/YM3NNLaGPwPqgjBAFjIURzqoQs3rrtuw==" + }, + "@fortawesome/fontawesome-pro": { + "version": "file:fontawesome/fortawesome-fontawesome-pro-5.15.3.tgz", + "integrity": "sha512-zrIqXGUiKI/qyEbNJV2Zw084XF6npZR/wzYgqzbGhdRdOT3ZcdseiKUvmW5eUTEkoL9/mCdT8WIzHVvP8wfMsQ==" + }, + "@fortawesome/fontawesome-svg-core": { + "version": "1.2.35", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.35.tgz", + "integrity": "sha512-uLEXifXIL7hnh2sNZQrIJWNol7cTVIzwI+4qcBIq9QWaZqUblm0IDrtSqbNg+3SQf8SMGHkiSigD++rHmCHjBg==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, + "@fortawesome/free-brands-svg-icons": { + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.15.3.tgz", + "integrity": "sha512-1hirPcbjj72ZJtFvdnXGPbAbpn3Ox6mH3g5STbANFp3vGSiE5u5ingAKV06mK6ZVqNYxUPlh4DlTnaIvLtF2kw==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, + "@fortawesome/free-regular-svg-icons": { + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.3.tgz", + "integrity": "sha512-q4/p8Xehy9qiVTdDWHL4Z+o5PCLRChePGZRTXkl+/Z7erDVL8VcZUuqzJjs6gUz6czss4VIPBRdCz6wP37/zMQ==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, + "@fortawesome/free-solid-svg-icons": { + "version": "5.15.3", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.3.tgz", + "integrity": "sha512-XPeeu1IlGYqz4VWGRAT5ukNMd4VHUEEJ7ysZ7pSSgaEtNvSo+FLurybGJVmiqkQdK50OkSja2bfZXOeyMGRD8Q==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, + "@fortawesome/pro-duotone-svg-icons": { + "version": "file:fontawesome/fortawesome-pro-duotone-svg-icons-5.15.3.tgz", + "integrity": "sha512-5BAT6uLAcYnsM76HLrP8SRuQh+N0eMy6VriEK9l9+6Xmm966wgXR2G9NZvua+W9qVv5GbPo2pXDqY6cUa/MoyA==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, + "@fortawesome/pro-light-svg-icons": { + "version": "file:fontawesome/fortawesome-pro-light-svg-icons-5.15.3.tgz", + "integrity": "sha512-HgQSTQIYsJku91yV/1txyr6IWfnQRnCNrqAo1UtPOkG53H7JPLO6l1GDsuhwjYJSIpjmqu7llgYAFOI/5cZWJA==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, + "@fortawesome/pro-regular-svg-icons": { + "version": "file:fontawesome/fortawesome-pro-regular-svg-icons-5.15.3.tgz", + "integrity": "sha512-4CUIJWj+6ABnzYoYDECfB8hWHS/0FNeovaLqWZZMkaPfMGqC9tNSwWKZQUfBR2nwhEUeyMxtWo6mPJCh4Zz8YA==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, + "@fortawesome/pro-solid-svg-icons": { + "version": "file:fontawesome/fortawesome-pro-solid-svg-icons-5.15.3.tgz", + "integrity": "sha512-stGmfbqLu54PghoxPjQ+BjblO/13EppJ8Fn9ceGZBz8K4lesvAhdMp2hZusXUz8VPuu/3pCHI84PbJ6wOKFYhQ==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.35" + } + }, + "@fortawesome/react-fontawesome": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.14.tgz", + "integrity": "sha512-4wqNb0gRLVaBm/h+lGe8UfPPivcbuJ6ecI4hIgW0LjI7kzpYB9FkN0L9apbVzg+lsBdcTf0AlBtODjcSX5mmKA==", + "requires": { + "prop-types": "^15.7.2" + } + }, + "@fullhuman/postcss-purgecss": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-4.0.3.tgz", + "integrity": "sha512-/EnQ9UDWGGqHkn1UKAwSgh+gJHPKmD+Z+5dQ4gWT4qq2NUyez3zqAfZNwFH3eSgmgO+wjTXfhlLchx2M9/K+7Q==", + "dev": true, + "requires": { + "purgecss": "^4.0.3" + } + }, + "@google-cloud/common": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.6.0.tgz", + "integrity": "sha512-aHIFTqJZmeTNO9md8XxV+ywuvXF3xBm5WNmgWeeCK+XN5X+kGW0WEX94wGwj+/MdOnrVf4dL2RvSIt9J5yJG6Q==", + "optional": true, + "requires": { + "@google-cloud/projectify": "^2.0.0", + "@google-cloud/promisify": "^2.0.0", + "arrify": "^2.0.1", + "duplexify": "^4.1.1", + "ent": "^2.2.0", + "extend": "^3.0.2", + "google-auth-library": "^7.0.2", + "retry-request": "^4.1.1", + "teeny-request": "^7.0.0" + } + }, + "@google-cloud/firestore": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-4.13.1.tgz", + "integrity": "sha512-LtxboFZQ3MGwy1do8a0ykMJocM+TFgOpZoAihMwW498UDd641DJgJu0Kw0CD0bPpEaYUfhbeAUBq2ZO63DOz7g==", + "optional": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "functional-red-black-tree": "^1.0.1", + "google-gax": "^2.17.0", + "protobufjs": "^6.8.6" + } + }, + "@google-cloud/paginator": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.5.tgz", + "integrity": "sha512-N4Uk4BT1YuskfRhKXBs0n9Lg2YTROZc6IMpkO/8DIHODtm5s3xY8K5vVBo23v/2XulY3azwITQlYWgT4GdLsUw==", + "optional": true, + "requires": { + "arrify": "^2.0.0", + "extend": "^3.0.2" + } + }, + "@google-cloud/projectify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.0.tgz", + "integrity": "sha512-qbpidP/fOvQNz3nyabaVnZqcED1NNzf7qfeOlgtAZd9knTwY+KtsGRkYpiQzcATABy4gnGP2lousM3S0nuWVzA==", + "optional": true + }, + "@google-cloud/promisify": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.3.tgz", + "integrity": "sha512-d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw==", + "optional": true + }, + "@google-cloud/storage": { + "version": "5.8.5", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.8.5.tgz", + "integrity": "sha512-i0gB9CRwQeOBYP7xuvn14M40LhHCwMjceBjxE4CTvsqL519sVY5yVKxLiAedHWGwUZHJNRa7Q2CmNfkdRwVNPg==", + "optional": true, + "requires": { + "@google-cloud/common": "^3.6.0", + "@google-cloud/paginator": "^3.0.0", + "@google-cloud/promisify": "^2.0.0", + "arrify": "^2.0.0", + "async-retry": "^1.3.1", + "compressible": "^2.0.12", + "date-and-time": "^1.0.0", + "duplexify": "^4.0.0", + "extend": "^3.0.2", + "gaxios": "^4.0.0", + "gcs-resumable-upload": "^3.1.4", + "get-stream": "^6.0.0", + "hash-stream-validation": "^0.2.2", + "mime": "^2.2.0", + "mime-types": "^2.0.8", + "onetime": "^5.1.0", + "p-limit": "^3.0.1", + "pumpify": "^2.0.0", + "snakeize": "^0.1.0", + "stream-events": "^1.0.1", + "xdg-basedir": "^4.0.0" + } + }, + "@grpc/grpc-js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.3.4.tgz", + "integrity": "sha512-AxtZcm0mArQhY9z8T3TynCYVEaSKxNCa9mVhVwBCUnsuUEe8Zn94bPYYKVQSLt+hJJ1y0ukr3mUvtWfcATL/IQ==", + "optional": true, + "requires": { + "@types/node": ">=12.12.47" + }, + "dependencies": { + "@types/node": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==", + "optional": true + } + } + }, + "@grpc/proto-loader": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.4.tgz", + "integrity": "sha512-7xvDvW/vJEcmLUltCUGOgWRPM8Oofv0eCFSVMuKqaqWJaXSzmB+m9hiyqe34QofAl4WAzIKUZZlinIF9FOHyTQ==", + "optional": true, + "requires": { + "@types/long": "^4.0.1", + "lodash.camelcase": "^4.3.0", + "long": "^4.0.0", + "protobufjs": "^6.10.0", + "yargs": "^16.1.1" + } + }, + "@hapi/accept": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", + "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/boom": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.3.tgz", + "integrity": "sha512-RlrGyZ603hE/eRTZtTltocRm50HHmrmL3kGOP0SQ9MasazlW1mt/fkv4C5P/6rnpFXjwld/POFX1C8tMZE3ldg==", + "requires": { + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/bourne": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", + "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" + }, + "@hapi/hoek": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", + "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@headlessui/react": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.3.0.tgz", + "integrity": "sha512-2gqTO6BQ3Jr8vDX1B67n1gl6MGKTt6DBmR+H0qxwj0gTMnR2+Qpktj8alRWxsZBODyOiBb77QSQpE/6gG3MX4Q==" + }, + "@heroicons/react": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-1.0.1.tgz", + "integrity": "sha512-uikw2gKCmqnvjVxitecWfFLMOKyL9BTFcU4VM3hHj9OMwpkCr5Ke+MRMyY2/aQVmsYs4VTq7NCFX05MYwAHi3g==" + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.0.6.tgz", + "integrity": "sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.0.6", + "jest-util": "^27.0.6", + "slash": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.0.6.tgz", + "integrity": "sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow==", + "dev": true, + "requires": { + "@jest/console": "^27.0.6", + "@jest/reporters": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^27.0.6", + "jest-config": "^27.0.6", + "jest-haste-map": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-resolve-dependencies": "^27.0.6", + "jest-runner": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", + "jest-watcher": "^27.0.6", + "micromatch": "^4.0.4", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.0.6.tgz", + "integrity": "sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg==", + "dev": true, + "requires": { + "@jest/fake-timers": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/node": "*", + "jest-mock": "^27.0.6" + } + }, + "@jest/fake-timers": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.0.6.tgz", + "integrity": "sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "@sinonjs/fake-timers": "^7.0.2", + "@types/node": "*", + "jest-message-util": "^27.0.6", + "jest-mock": "^27.0.6", + "jest-util": "^27.0.6" + } + }, + "@jest/globals": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.0.6.tgz", + "integrity": "sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw==", + "dev": true, + "requires": { + "@jest/environment": "^27.0.6", + "@jest/types": "^27.0.6", + "expect": "^27.0.6" + } + }, + "@jest/reporters": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.0.6.tgz", + "integrity": "sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-util": "^27.0.6", + "jest-worker": "^27.0.6", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", + "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/source-map": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", + "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@jest/test-result": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.0.6.tgz", + "integrity": "sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w==", + "dev": true, + "requires": { + "@jest/console": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz", + "integrity": "sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA==", + "dev": true, + "requires": { + "@jest/test-result": "^27.0.6", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.0.6", + "jest-runtime": "^27.0.6" + } + }, + "@jest/transform": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.0.6.tgz", + "integrity": "sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.0.6", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-util": "^27.0.6", + "micromatch": "^4.0.4", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.6.tgz", + "integrity": "sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@mswjs/cookies": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.1.6.tgz", + "integrity": "sha512-A53XD5TOfwhpqAmwKdPtg1dva5wrng2gH5xMvklzbd9WLTSVU953eCRa8rtrrm6G7Cy60BOGsBRN89YQK0mlKA==", + "dev": true, + "requires": { + "@types/set-cookie-parser": "^2.4.0", + "set-cookie-parser": "^2.4.6" + } + }, + "@mswjs/interceptors": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.11.1.tgz", + "integrity": "sha512-ReZg+Pp5GbSrDrVZTXeV4pHC385ImHTZ7he/n3f+uRiuB9eLifdLU0xvBl9NPuy7qrMgFGvrs6k2QsiB204xaQ==", + "dev": true, + "requires": { + "@open-draft/until": "^1.0.3", + "debug": "^4.3.0", + "headers-utils": "^3.0.2", + "strict-event-emitter": "^0.2.0", + "xmldom": "^0.6.0" + } + }, + "@next/env": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-11.0.1.tgz", + "integrity": "sha512-yZfKh2U6R9tEYyNUrs2V3SBvCMufkJ07xMH5uWy8wqcl5gAXoEw6A/1LDqwX3j7pUutF9d1ZxpdGDA3Uag+aQQ==" + }, + "@next/eslint-plugin-next": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-11.0.1.tgz", + "integrity": "sha512-UzdX3y6XSrj9YuASUb/p4sRvfjP2klj2YgIOfMwrWoLTTPJQMh00hREB9Ftr7m7RIxjVSAaaLXIRLdxvq948GA==", + "dev": true + }, + "@next/polyfill-module": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-11.0.1.tgz", + "integrity": "sha512-Cjs7rrKCg4CF4Jhri8PCKlBXhszTfOQNl9AjzdNy4K5jXFyxyoSzuX2rK4IuoyE+yGp5A3XJCBEmOQ4xbUp9Mg==" + }, + "@next/react-dev-overlay": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-11.0.1.tgz", + "integrity": "sha512-lvUjMVpLsgzADs9Q8wtC5LNqvfdN+M0BDMSrqr04EDWAyyX0vURHC9hkvLbyEYWyh+WW32pwjKBXdkMnJhoqMg==", + "requires": { + "@babel/code-frame": "7.12.11", + "anser": "1.4.9", + "chalk": "4.0.0", + "classnames": "2.2.6", + "css.escape": "1.5.1", + "data-uri-to-buffer": "3.0.1", + "platform": "1.3.6", + "shell-quote": "1.7.2", + "source-map": "0.8.0-beta.0", + "stacktrace-parser": "0.1.10", + "strip-ansi": "6.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@next/react-refresh-utils": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-11.0.1.tgz", + "integrity": "sha512-K347DM6Z7gBSE+TfUaTTceWvbj0B6iNAsFZXbFZOlfg3uyz2sbKpzPYYFocCc27yjLaS8OfR8DEdS2mZXi8Saw==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", + "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@open-draft/until": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", + "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", + "dev": true + }, + "@panva/asn1.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz", + "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==" + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, + "@quirrel/ioredis-mock": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@quirrel/ioredis-mock/-/ioredis-mock-5.6.1.tgz", + "integrity": "sha512-S66lITLabNKjBA/QqCrAJDU4mbeKvwmGJuyiQlnQjdw5tTBRZLZ8uKJo3/DIDT5IGTgYJz0aTPX7CyXtq8pbEA==", + "requires": { + "fengari": "^0.1.4", + "fengari-interop": "^0.1.2", + "lodash": "^4.17.21", + "standard-as-callback": "^2.1.0" + } + }, + "@quirrel/owl": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@quirrel/owl/-/owl-0.13.3.tgz", + "integrity": "sha512-FZLAnFqlZpp5TSwzvTVu2Y/L5C5ukZp0bP6IpO7bDgTfsWJBh8Fhn5sv4dRH3amxLi0Q4HHsHxh/xlf59cailw==", + "requires": { + "ioredis": "^4.27.1", + "ioredis-mock": "^5.5.6", + "opentracing": "^0.14.5", + "pino": "^6.11.3" + } + }, + "@rushstack/eslint-patch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.0.6.tgz", + "integrity": "sha512-Myxw//kzromB9yWgS8qYGuGVf91oBUUJpNvy5eM50sqvmKLbKjwLxohJnkWGTeeI9v9IBMtPLxz5Gc60FIfvCA==", + "dev": true + }, + "@sentry/core": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.8.0.tgz", + "integrity": "sha512-vJzWt/znEB+JqVwtwfjkRrAYRN+ep+l070Ti8GhJnvwU4IDtVlV3T/jVNrj6rl6UChcczaJQMxVxtG5x0crlAA==", + "requires": { + "@sentry/hub": "6.8.0", + "@sentry/minimal": "6.8.0", + "@sentry/types": "6.8.0", + "@sentry/utils": "6.8.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/hub": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.8.0.tgz", + "integrity": "sha512-hFrI2Ss1fTov7CH64FJpigqRxH7YvSnGeqxT9Jc1BL7nzW/vgCK+Oh2mOZbosTcrzoDv+lE8ViOnSN3w/fo+rg==", + "requires": { + "@sentry/types": "6.8.0", + "@sentry/utils": "6.8.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/minimal": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.8.0.tgz", + "integrity": "sha512-MRxUKXiiYwKjp8mOQMpTpEuIby1Jh3zRTU0cmGZtfsZ38BC1JOle8xlwC4FdtOH+VvjSYnPBMya5lgNHNPUJDQ==", + "requires": { + "@sentry/hub": "6.8.0", + "@sentry/types": "6.8.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/node": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.8.0.tgz", + "integrity": "sha512-DPUtDd1rRbDJys+aZdQTScKy2Xxo4m8iSQPxzfwFROsLmzE7XhDoriDwM+l1BpiZYIhxUU2TLxDyVzmdc/TMAw==", + "requires": { + "@sentry/core": "6.8.0", + "@sentry/hub": "6.8.0", + "@sentry/tracing": "6.8.0", + "@sentry/types": "6.8.0", + "@sentry/utils": "6.8.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/tracing": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.8.0.tgz", + "integrity": "sha512-3gDkQnmOuOjHz5rY7BOatLEUksANU3efR8wuBa2ujsPQvoLSLFuyZpRjPPsxuUHQOqAYIbSNAoDloXECvQeHjw==", + "requires": { + "@sentry/hub": "6.8.0", + "@sentry/minimal": "6.8.0", + "@sentry/types": "6.8.0", + "@sentry/utils": "6.8.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/types": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.8.0.tgz", + "integrity": "sha512-PbSxqlh6Fd5thNU5f8EVYBVvX+G7XdPA+ThNb2QvSK8yv3rIf0McHTyF6sIebgJ38OYN7ZFK7vvhC/RgSAfYTA==" + }, + "@sentry/utils": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.8.0.tgz", + "integrity": "sha512-OYlI2JNrcWKMdvYbWNdQwR4QBVv2V0y5wK0U6f53nArv6RsyO5TzwRu5rMVSIZofUUqjoE5hl27jqnR+vpUrsA==", + "requires": { + "@sentry/types": "6.8.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sideway/address": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz", + "integrity": "sha512-idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "@sindresorhus/is": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz", + "integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==" + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@supabase/gotrue-js": { + "version": "1.16.6", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.16.6.tgz", + "integrity": "sha512-tLaG4G4sMW2P1hyq05Nr0jM/6AbdiWkjOPbM+QZsuVSsNbZ/z+BNxuE5q+6zHOnoP+YKEHup7x9xKR0zy2UqUQ==", + "requires": { + "cross-fetch": "^3.0.6" + } + }, + "@supabase/postgrest-js": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.33.0.tgz", + "integrity": "sha512-og6Evdkan7Qp6+tOch7Pyq+ZWMnrCQtPHWwPpsN5A3iYQSro2yn21Yvazs9qAFoWAeTGNkuTOVpShT5Mbc9WcQ==", + "requires": { + "cross-fetch": "^3.0.6" + } + }, + "@supabase/realtime-js": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.0.10.tgz", + "integrity": "sha512-ls/rHMvcasIiAoeIx86rnZePhlKuKfVdX5KDANWB/T6ZMXH59oS/uv6il2xHTo/ojn70nh3dFg1AqMsxNqm5KQ==", + "requires": { + "@types/websocket": "^1.0.1", + "websocket": "^1.0.34" + } + }, + "@supabase/storage-js": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.2.2.tgz", + "integrity": "sha512-EJ2BsfD7Mc+fXJqRef3YiWF8kg/GhBdxIil7EzmrAFBSJ3VCbN4sqzvCCUYK2dtNICUV3JOKh5SBX2RrgROIOA==", + "requires": { + "cross-fetch": "^3.1.0" + } + }, + "@supabase/supabase-js": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.18.0.tgz", + "integrity": "sha512-0gkL4oDSsTNc0t0ks3aIuIoPzlqix4Jqc9lII3cczaaN8MYjZDKTo48MkWvnwXm0pYuoS8wAoGzRjQ6llXAUHw==", + "requires": { + "@supabase/gotrue-js": "^1.16.6", + "@supabase/postgrest-js": "^0.33.0", + "@supabase/realtime-js": "^1.0.9", + "@supabase/storage-js": "^1.2.2" + } + }, + "@szmarczak/http-timer": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", + "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "@tailwindcss/forms": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.3.3.tgz", + "integrity": "sha512-U8Fi/gq4mSuaLyLtFISwuDYzPB73YzgozjxOIHsK6NXgg/IWD1FLaHbFlWmurAMyy98O+ao74ksdQefsquBV1Q==", + "dev": true, + "requires": { + "mini-svg-data-uri": "^1.2.3" + } + }, + "@tailwindcss/typography": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.4.1.tgz", + "integrity": "sha512-ovPPLUhs7zAIJfr0y1dbGlyCuPhpuv/jpBoFgqAc658DWGGrOBWBMpAWLw2KlzbNeVk4YBJMzue1ekvIbdw6XA==", + "dev": true, + "requires": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0" + } + }, + "@testing-library/dom": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.0.0.tgz", + "integrity": "sha512-Ym375MTOpfszlagRnTMO+FOfTt6gRrWiDOWmEnWLu9OvwCPOWtK6i5pBHmZ07wUJiQ7wWz0t8+ZBK2wFo2tlew==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^4.2.2", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.6", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/jest-dom": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.14.1.tgz", + "integrity": "sha512-dfB7HVIgTNCxH22M1+KU6viG5of2ldoA5ly8Ar8xkezKHKXjRvznCdbMbqjYGgO2xjRbwnR+rR8MLUIqF3kKbQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^4.2.2", + "chalk": "^3.0.0", + "css": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/react": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.0.0.tgz", + "integrity": "sha512-sh3jhFgEshFyJ/0IxGltRhwZv2kFKfJ3fN1vTZ6hhMXzz9ZbbcTgmDYM4e+zJv+oiVKKEWZPyqPAh4MQBI65gA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.0.0" + } + }, + "@testing-library/user-event": { + "version": "13.1.9", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.1.9.tgz", + "integrity": "sha512-NZr0zL2TMOs2qk+dNlqrAdbaRW5dAmYwd1yuQ4r7HpkVEOj0MWuUjDWwKhcLd/atdBy8ZSMHSKp+kXSQe47ezg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, + "@types/aria-query": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.1.tgz", + "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.14", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", + "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", + "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", + "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.0.tgz", + "integrity": "sha512-IilJZ1hJBUZwMOVDNTdflOOLzJB/ZtljYVa7k3gEZN/jqIJIPkWHC6dvbX+DD2CwZDHB9wAKzZPzzqMIkW37/w==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==" + } + } + }, + "@types/cacheable-request": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", + "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==" + } + } + }, + "@types/connect": { + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", + "requires": { + "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==" + } + } + }, + "@types/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==", + "dev": true + }, + "@types/css-font-loading-module": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/css-font-loading-module/-/css-font-loading-module-0.0.4.tgz", + "integrity": "sha512-ENdXf7MW4m9HeDojB2Ukbi7lYMIuQNBHVf98dbzaiG4EEJREBd6oleVAjrLRCrp7dm6CK1mmdmU9tcgF61acbw==", + "dev": true + }, + "@types/es6-promisify": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@types/es6-promisify/-/es6-promisify-6.0.0.tgz", + "integrity": "sha512-w3eB2FfE60gHeUTWT65G/FsTlqOAl8qZeyDGxAniF4oS7T6acQ7uvtGKQlCIQNOGh6r21A/3mBASNzy8Tbx+hg==", + "dev": true + }, + "@types/express": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.12.tgz", + "integrity": "sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-jwt": { + "version": "0.0.42", + "resolved": "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-0.0.42.tgz", + "integrity": "sha512-WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag==", + "requires": { + "@types/express": "*", + "@types/express-unless": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.22", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.22.tgz", + "integrity": "sha512-WdqmrUsRS4ootGha6tVwk/IVHM1iorU8tGehftQD2NWiPniw/sm7xdJOIlXLwqdInL9wBw/p7oO8vaYEF3NDmA==", + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==" + } + } + }, + "@types/express-unless": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@types/express-unless/-/express-unless-0.5.1.tgz", + "integrity": "sha512-5fuvg7C69lemNgl0+v+CUxDYWVPSfXHhJPst4yTLcqi4zKJpORCxnDrnnilk3k0DTq/WrAUdvXFs01+vUqUZHw==", + "requires": { + "@types/express": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/http-cache-semantics": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", + "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==" + }, + "@types/inquirer": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.2.tgz", + "integrity": "sha512-EkeX/hU0SWinA2c7Qu/+6+7KbepFPYJcjankUgtA/VSY6BlVHybL0Cgyey9PDbXwhNXnNGBLU3t+MORp23RgAw==", + "dev": true, + "requires": { + "@types/through": "*", + "rxjs": "^6.4.0" + } + }, + "@types/isomorphic-fetch": { + "version": "0.0.35", + "resolved": "https://registry.npmjs.org/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.35.tgz", + "integrity": "sha512-DaZNUvLDCAnCTjgwxgiL1eQdxIKEpNLOlTNtAgnZc50bG2copGhRrFN9/PxPBuJe+tZVLCbQ7ls0xveXVRPkvw==", + "dev": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "26.0.23", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.23.tgz", + "integrity": "sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA==", + "dev": true, + "requires": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@types/js-levenshtein": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.0.tgz", + "integrity": "sha512-14t0v1ICYRtRVcHASzes0v/O+TIeASb8aD55cWF1PidtInhFWSXcmhzhHqGjUWf9SUq1w70cvd1cWKUULubAfQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "@types/jsonwebtoken": { + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.2.tgz", + "integrity": "sha512-X8BOCkp+WJVNYCYIBugREtVZa4Y09Or9HDx6xqRZem5F8jJV8FuJgNessXyMuv9+U8pjnvdezASwU28uw+1scw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/keyv": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", + "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", + "requires": { + "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==" + } + } + }, + "@types/long": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "@types/node": { + "version": "15.12.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.4.tgz", + "integrity": "sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==" + }, + "@types/on-headers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/on-headers/-/on-headers-1.0.0.tgz", + "integrity": "sha512-m5LRgPZzWPHGoEQDbuVuduRMctCW5tDarxi9f7+rYZoJDy7nMHMMrODtqbwPpNjYc6Ilg4vL2NeYAwimJfku3w==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/pino": { + "version": "6.3.8", + "resolved": "https://registry.npmjs.org/@types/pino/-/pino-6.3.8.tgz", + "integrity": "sha512-E47CmRy1FNMaCN8r0d8ECQOjXen9O0p6GGsUjLfmawlxRKosZ82WP1oWVKj+ikTkMDHxWzN5BuKmplo44ynrIg==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/pino-pretty": "*", + "@types/pino-std-serializers": "*", + "@types/sonic-boom": "*" + } + }, + "@types/pino-pretty": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@types/pino-pretty/-/pino-pretty-4.7.0.tgz", + "integrity": "sha512-fIZ+VXf9gJoJR4tiiM7G+j/bZkPoZEfFGzA4d8tAWCTpTVyvVaBwnmdLs3wEXYpMjw8eXulrOzNCjmGHT3FgHw==", + "dev": true, + "requires": { + "@types/pino": "*" + } + }, + "@types/pino-std-serializers": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/pino-std-serializers/-/pino-std-serializers-2.4.1.tgz", + "integrity": "sha512-17XcksO47M24IVTVKPeAByWUd3Oez7EbIjXpSbzMPhXVzgjGtrOa49gKBwxH9hb8dKv58OelsWQ+A1G1l9S3wQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/prettier": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.1.tgz", + "integrity": "sha512-NVkb4p4YjI8E3O6+1m8I+8JlMpFZwfSbPGdaw0wXuyPRTEz0SLKwBUWNSO7Maoi8tQMPC8JLZNWkrcKPI7/sLA==", + "dev": true + }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", + "dev": true + }, + "@types/qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==" + }, + "@types/range-parser": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", + "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" + }, + "@types/react": { + "version": "17.0.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.11.tgz", + "integrity": "sha512-yFRQbD+whVonItSk7ZzP/L+gPTJVBkL/7shLEF+i9GC/1cV3JmUxEQz6+9ylhUpWSDuqo1N9qEvqS6vTj4USUA==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.8.tgz", + "integrity": "sha512-0ohAiJAx1DAUEcY9UopnfwCE9sSMDGnY/oXjWMax6g3RpzmTt2GMyMVAXcbn0mo8XAff0SbQJl2/SBU+hjSZ1A==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "requires": { + "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==" + } + } + }, + "@types/scheduler": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", + "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==", + "dev": true + }, + "@types/serve-static": { + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", + "requires": { + "@types/mime": "^1", + "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==" + } + } + }, + "@types/set-cookie-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.0.tgz", + "integrity": "sha512-w7BFUq81sy7H/0jN0K5cax8MwRN6NOSURpY4YuO4+mOgoicxCZ33BUYz+gyF/sUf7uDl2We2yGJfppxzEXoAXQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/sonic-boom": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@types/sonic-boom/-/sonic-boom-0.7.0.tgz", + "integrity": "sha512-AfqR0fZMoUXUNwusgXKxcE9DPlHNDHQp6nKYUd4PSRpLobF5CCevSpyTEBcVZreqaWKCnGBr9KI1fHMTttoB7A==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/test-listen": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/test-listen/-/test-listen-1.1.0.tgz", + "integrity": "sha512-y6ZfbSzYHniCeY6ZAzsQjSAdJInNVoEz4Uhsb81W+RCoNYA59yoG/+XbqPqCPj2KCU3Wa6RFWSozutkGIHIsNQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/testing-library__jest-dom": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.0.tgz", + "integrity": "sha512-l2P2GO+hFF4Liye+fAajT1qBqvZOiL79YMpEvgGs1xTK7hECxBI8Wz4J7ntACJNiJ9r0vXQqYovroXRLPDja6A==", + "dev": true, + "requires": { + "@types/jest": "*" + } + }, + "@types/through": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", + "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/websocket": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.3.tgz", + "integrity": "sha512-ZdoTSwmDsKR7l1I8fpfQtmTI/hUwlOvE3q0iyJsp4tXU0MkdrYowimDzwxjhQvxU4qjhHLd3a6ig0OXRbLgIdw==", + "requires": { + "@types/node": "*" + } + }, + "@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", + "dev": true + }, + "@typescript-eslint/parser": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.1.tgz", + "integrity": "sha512-UjrMsgnhQIIK82hXGaD+MCN8IfORS1CbMdu7VlZbYa8LCZtbZjJA26De4IPQB7XYZbL8gJ99KWNj0l6WD0guJg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.28.1", + "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/typescript-estree": "4.28.1", + "debug": "^4.3.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.1.tgz", + "integrity": "sha512-o95bvGKfss6705x7jFGDyS7trAORTy57lwJ+VsYwil/lOUxKQ9tA7Suuq+ciMhJc/1qPwB3XE2DKh9wubW8YYA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/visitor-keys": "4.28.1" + } + }, + "@typescript-eslint/types": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.1.tgz", + "integrity": "sha512-4z+knEihcyX7blAGi7O3Fm3O6YRCP+r56NJFMNGsmtdw+NCdpG5SgNz427LS9nQkRVTswZLhz484hakQwB8RRg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.1.tgz", + "integrity": "sha512-GhKxmC4sHXxHGJv8e8egAZeTZ6HI4mLU6S7FUzvFOtsk7ZIDN1ksA9r9DyOgNqowA9yAtZXV0Uiap61bIO81FQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.28.1", + "@typescript-eslint/visitor-keys": "4.28.1", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.1.tgz", + "integrity": "sha512-K4HMrdFqr9PFquPu178SaSb92CaWe2yErXyPumc8cYWxFmhgJsNY9eSePmO05j0JhBvf2Cdhptd6E6Yv9HVHcg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.28.1", + "eslint-visitor-keys": "^2.0.0" + } + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "optional": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "abstract-logging": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", + "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "anser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz", + "integrity": "sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==" + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, + "arg": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.0.tgz", + "integrity": "sha512-4P8Zm2H+BRS+c/xX1LrHw0qKpEhdlZjLCgWy+d78T9vqa2Z2SiD2wMrYuWIAFy5IZUD7nnNXroRttz+0RzlrzQ==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "args": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", + "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", + "requires": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + } + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "optional": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "requires": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "ast-types": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", + "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async-retry": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz", + "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==", + "optional": true, + "requires": { + "retry": "0.12.0" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + }, + "autoprefixer": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.6.tgz", + "integrity": "sha512-8lChSmdU6dCNMCQopIf4Pe5kipkAGj/fvTMslCsih0uHpOrXOPUEVOmYMMqmw3cekQkSD7EhIeuYl5y0BLdKqg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-lite": "^1.0.30001230", + "colorette": "^1.2.2", + "fraction.js": "^4.1.1", + "normalize-range": "^0.1.2", + "postcss-value-parser": "^4.1.0" + } + }, + "available-typed-arrays": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", + "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==" + }, + "avvio": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/avvio/-/avvio-7.2.2.tgz", + "integrity": "sha512-XW2CMCmZaCmCCsIaJaLKxAzPwF37fXi1KGxNOvedOpeisLdmxZnblGc3hpHWYnlP+KOUxZsazh43WXNHgXpbqw==", + "requires": { + "archy": "^1.0.0", + "debug": "^4.0.0", + "fastq": "^1.6.1", + "queue-microtask": "^1.1.2" + } + }, + "aws-sdk": { + "version": "2.934.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.934.0.tgz", + "integrity": "sha512-k7p08ewrKcbs0ikCLFi9OI98Iv9dMND5244xPxUIjK5BLtuT/9Gr6eSCHfN70eCQyM5Y2xG1VJP6zhpkihu9Ew==", + "requires": { + "buffer": "4.9.2", + "events": "1.1.1", + "ieee754": "1.1.13", + "jmespath": "0.15.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "uuid": "3.3.2", + "xml2js": "0.4.19" + } + }, + "axe-core": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.2.3.tgz", + "integrity": "sha512-pXnVMfJKSIWU2Ml4JHP7pZEPIrgBO1Fd3WGx+fPBsS+KRGhE4vxooD8XBGWbQOIVSZsVK7pUDBBkCicNu80yzQ==", + "dev": true + }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "babel-jest": { + "version": "27.0.5", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.0.5.tgz", + "integrity": "sha512-bTMAbpCX7ldtfbca2llYLeSFsDM257aspyAOpsdrdSrBqoLkWCy4HPYTXtXWaSLgFPjrJGACL65rzzr4RFGadw==", + "dev": true, + "requires": { + "@jest/transform": "^27.0.5", + "@jest/types": "^27.0.2", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^27.0.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz", + "integrity": "sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-superjson-next": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-superjson-next/-/babel-plugin-superjson-next-0.3.0.tgz", + "integrity": "sha512-fTE8uWUy9OJG7PkRNP094XDdieoBsZR2iatxurbNqLyd4INXpwuuQ246iLu4+dAeQHtGhOJZxsPR8KdbNvdnlQ==", + "requires": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/types": "^7.13.17", + "hoist-non-react-statics": "^3.3.2" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz", + "integrity": "sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^27.0.6", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "requires": { + "safe-buffer": "5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "big-integer": { + "version": "1.6.48", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", + "optional": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "broadcast-channel": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz", + "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", + "requires": { + "@babel/runtime": "^7.7.2", + "detect-node": "^2.1.0", + "js-sha3": "0.8.0", + "microseconds": "0.2.0", + "nano-time": "1.0.0", + "oblivious-set": "1.0.0", + "rimraf": "3.0.2", + "unload": "2.2.0" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "requires": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "bufferutil": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", + "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", + "requires": { + "node-gyp-build": "^4.2.0" + } + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "requires": { + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "dependencies": { + "dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "requires": { + "readable-stream": "1.1.x", + "streamsearch": "0.1.2" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==" + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001242", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001242.tgz", + "integrity": "sha512-KvNuZ/duufelMB3w2xtf9gEWCSxJwUgoxOx5b6ScLXC4kPc9xsczUVCPrQU26j5kOsHM4pSUL54tAZt5THQKug==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + } + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "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" + } + }, + "ci-info": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cjs-module-lexer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.1.tgz", + "integrity": "sha512-jVamGdJPDeuQilKhvVn1h3knuMOZzr8QDnpk+M9aMlCaMkTDd6fBWPhiDqFvFZ07pL0liqabAiuy8SY4jGHeaw==", + "dev": true + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", + "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", + "dev": true + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + }, + "cluster-key-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz", + "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + }, + "dependencies": { + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "color-string": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", + "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "optional": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "conditional-type-checks": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/conditional-type-checks/-/conditional-type-checks-1.0.5.tgz", + "integrity": "sha512-DkfkvmjXVe4ye4llJ1JADtO3dNvqqcQM08cA9BhNt9Oe8pyRW8X1CZyBg9Qst05bDV9BJM01KLmnFh78NcJgNg==" + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "optional": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, + "core-js-pure": { + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.15.2.tgz", + "integrity": "sha512-D42L7RYh1J2grW8ttxoY1+17Y4wXZeKe7uyplAI3FkNQyI5OgBIAjUfFiTPfL1rs0qLpxaabITNbjKl1Sp82tA==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + } + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cron-parser": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-3.5.0.tgz", + "integrity": "sha512-wyVZtbRs6qDfFd8ap457w3XVntdvqcwBGxBoTvJQH9KGVKL/fB+h2k3C8AqiVxvUQKN1Ps/Ns46CNViOpVDhfQ==", + "requires": { + "is-nan": "^1.3.2", + "luxon": "^1.26.0" + } + }, + "cross-fetch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "requires": { + "node-fetch": "2.6.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "optional": true + }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-in-js-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", + "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", + "requires": { + "hyphenate-style-name": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "css-unit-converter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", + "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==", + "dev": true + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano-preset-simple": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-simple/-/cssnano-preset-simple-2.0.0.tgz", + "integrity": "sha512-HkufSLkaBJbKBFx/7aj5HmCK9Ni/JedRQm0mT2qBzMG/dEuJOLnMt2lK6K1rwOOyV4j9aSY+knbW9WoS7BYpzg==", + "requires": { + "caniuse-lite": "^1.0.30001202" + } + }, + "cssnano-simple": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssnano-simple/-/cssnano-simple-2.0.0.tgz", + "integrity": "sha512-0G3TXaFxlh/szPEG/o3VcmCwl0N3E60XNb9YZZijew5eIs6fLjJuOPxQd9yEBaX2p/YfJtt49i4vYi38iH6/6w==", + "requires": { + "cssnano-preset-simple": "^2.0.0" + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "csstype": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "damerau-levenshtein": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz", + "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==", + "dev": true + }, + "data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + } + } + }, + "date-and-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-1.0.1.tgz", + "integrity": "sha512-7u+uNfnjWkX+YFQfivvW24TjaJG6ahvTrfw1auq7KlC7osuGcZBIWGBvB9UcENjH6JnLVhMqlRripk1dSHjAUA==", + "optional": true + }, + "dateformat": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.5.1.tgz", + "integrity": "sha512-OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q==" + }, + "dayjs": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.5.tgz", + "integrity": "sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g==" + }, + "dd-trace": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/dd-trace/-/dd-trace-0.36.1.tgz", + "integrity": "sha512-4iPy6dJxaA0Yv9rZQa7ZGaTwyPI/m1adeUUhAqAgZ+mrzyz8TNSEeqEPohzECzgxNfLDjioGryJy4TblYED9ig==", + "requires": { + "@types/node": "^10.12.18", + "form-data": "^3.0.0", + "hdr-histogram-js": "^2.0.1", + "koalas": "^1.0.2", + "limiter": "^1.1.4", + "lodash.kebabcase": "^4.1.1", + "lodash.pick": "^4.4.0", + "lodash.sortby": "^4.7.0", + "lodash.uniq": "^4.5.0", + "methods": "^1.1.2", + "module-details-from-path": "^1.0.3", + "multer": "^1.4.2", + "nan": "^2.12.1", + "node-gyp-build": "^3.8.0", + "opentracing": ">=0.12.1", + "path-to-regexp": "^0.1.2", + "performance-now": "^2.1.0", + "protobufjs": "^6.9.0", + "resolve": "^1.20.0", + "semver": "^5.5.0", + "shimmer": "1.2.1", + "source-map": "^0.7.3", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "node-gyp-build": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.9.0.tgz", + "integrity": "sha512-zLcTg6P4AbcHPq465ZMFNXx7XpKKJh+7kkN699NiQWisR2uWYOWNWqRHAmbnmKiL4e9aLSlmy5U7rEMUXV59+A==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + }, + "dependencies": { + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==" + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "denque": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", + "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dev": true, + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "dicer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", + "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "requires": { + "streamsearch": "0.1.2" + } + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-accessibility-api": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.6.tgz", + "integrity": "sha512-DplGLZd8L1lN64jlT27N9TVSESFR5STaEJvX+thCby7fuCHonfPpAlodYc3vuUYbDuDec5w8AMP7oCM5TWFsqw==", + "dev": true + }, + "domain-browser": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz", + "integrity": "sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + } + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "optional": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + }, + "duplexify": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz", + "integrity": "sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA==", + "optional": true, + "requires": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" + } + }, + "easy-table": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.1.tgz", + "integrity": "sha512-C9Lvm0WFcn2RgxbMnTbXZenMIWcBtkzMr+dWqq/JsVoGFSVUVlPqeOa5LP5kM0I3zoOazFpckOEb2/0LDFfToQ==", + "requires": { + "ansi-regex": "^3.0.0", + "wcwidth": ">=1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + } + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "electron-to-chromium": { + "version": "1.3.766", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.766.tgz", + "integrity": "sha512-u2quJ862q9reRKh/je3GXis3w38+RoXH1J9N3XjtsS6NzmUAosNsyZgUVFZPN/ZlJ3v6T0rTyZR3q/J5c6Sy5w==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "encoding-negotiator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/encoding-negotiator/-/encoding-negotiator-2.0.1.tgz", + "integrity": "sha512-GSK7qphNR4iPcejfAlZxKDoz3xMhnspwImK+Af5WhePS9jUpK/Oh7rUdyENWu+9rgDflOCTmAojBsgsvM8neAQ==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "optional": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "requires": { + "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.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "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.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" + }, + "es6-promisify": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", + "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==" + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "globals": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", + "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "eslint-config-next": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-11.0.1.tgz", + "integrity": "sha512-yy63K4Bmy8amE6VMb26CZK6G99cfVX3JaMTvuvmq/LL8/b8vKHcauUZREBTAQ+2DrIvlH4YrFXrkQ1vpYDL9Eg==", + "dev": true, + "requires": { + "@next/eslint-plugin-next": "11.0.1", + "@rushstack/eslint-patch": "^1.0.6", + "@typescript-eslint/parser": "^4.20.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-import-resolver-typescript": "^2.4.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-react": "^7.23.1", + "eslint-plugin-react-hooks": "^4.2.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-import-resolver-typescript": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.4.0.tgz", + "integrity": "sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + } + }, + "eslint-module-utils": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", + "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.23.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", + "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", + "dev": true, + "requires": { + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.1", + "find-up": "^2.0.0", + "has": "^1.0.3", + "is-core-module": "^2.4.0", + "minimatch": "^3.0.4", + "object.values": "^1.1.3", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz", + "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.11.2", + "aria-query": "^4.2.2", + "array-includes": "^3.1.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.0.2", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.6", + "emoji-regex": "^9.0.0", + "has": "^1.0.3", + "jsx-ast-utils": "^3.1.0", + "language-tags": "^1.0.5" + }, + "dependencies": { + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + } + } + }, + "eslint-plugin-react": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz", + "integrity": "sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==", + "dev": true, + "requires": { + "array-includes": "^3.1.3", + "array.prototype.flatmap": "^1.2.4", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.4", + "object.fromentries": "^2.0.4", + "object.values": "^1.1.4", + "prop-types": "^15.7.2", + "resolve": "^2.0.0-next.3", + "string.prototype.matchall": "^4.0.5" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz", + "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "optional": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "expect": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.6.tgz", + "integrity": "sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "ansi-styles": "^5.0.0", + "jest-get-type": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-regex-util": "^27.0.6" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "optional": true + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz", + "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-json-stringify": { + "version": "2.7.7", + "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.7.tgz", + "integrity": "sha512-2kiwC/hBlK7QiGALsvj0QxtYwaReLOmAwOWJIxt5WHBB9EwXsqbsu8LCel47yh8NV8CEcFmnZYcXh4BionJcwQ==", + "requires": { + "ajv": "^6.11.0", + "deepmerge": "^4.2.2", + "rfdc": "^1.2.0", + "string-similarity": "^4.0.1" + } + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fast-redact": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.1.tgz", + "integrity": "sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw==" + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, + "fast-text-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", + "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==", + "optional": true + }, + "fastify": { + "version": "3.18.1", + "resolved": "https://registry.npmjs.org/fastify/-/fastify-3.18.1.tgz", + "integrity": "sha512-OA0imy/bQCMzf7LUCb/1JI3ZSoA0Jo0MLpYULxV7gpppOpJ8NBxDp2PQoQ0FDqJevZPb7tlZf5JacIQft8x9yw==", + "requires": { + "@fastify/ajv-compiler": "^1.0.0", + "abstract-logging": "^2.0.0", + "avvio": "^7.1.2", + "fast-json-stringify": "^2.5.2", + "fastify-error": "^0.3.0", + "fastify-warning": "^0.2.0", + "find-my-way": "^4.0.0", + "flatstr": "^1.0.12", + "light-my-request": "^4.2.0", + "pino": "^6.2.1", + "proxy-addr": "^2.0.7", + "readable-stream": "^3.4.0", + "rfdc": "^1.1.4", + "secure-json-parse": "^2.0.0", + "semver": "^7.3.2", + "tiny-lru": "^7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "fastify-basic-auth": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fastify-basic-auth/-/fastify-basic-auth-2.0.0.tgz", + "integrity": "sha512-En1igGRJOKuFbHILS7Dr+CY62EOW1/cMDrDy/LuMjheuMbs+03B+hx67jByoe42aMxs6GFHkZ8i24ylxlNIeFA==", + "requires": { + "basic-auth": "^2.0.1", + "fastify-plugin": "^3.0.0", + "http-errors": "^1.7.3" + } + }, + "fastify-blipp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fastify-blipp/-/fastify-blipp-3.1.0.tgz", + "integrity": "sha512-9tmQ2ljvUKOHKSRPMx1WhkvkZrinBc9y/EwU5THO27TDB+2haZ1BfGuGB4Dsb2R6CVGpuEjh8+dneV0CfLspQw==", + "requires": { + "chalk": "^4.1.1", + "fastify-plugin": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "fastify-cors": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fastify-cors/-/fastify-cors-6.0.1.tgz", + "integrity": "sha512-eeNTdQNmBsqHL87we+X74n9+H0hTDX0cXGVdyZjGf9om2pZfigAZwuSxaUUE2pLP9tp5+rEd5kejKQ8+ZCvAoA==", + "requires": { + "fastify-plugin": "^3.0.0", + "vary": "^1.1.2" + } + }, + "fastify-error": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/fastify-error/-/fastify-error-0.3.1.tgz", + "integrity": "sha512-oCfpcsDndgnDVgiI7bwFKAun2dO+4h84vBlkWsWnz/OUK9Reff5UFoFl241xTiLeHWX/vU9zkDVXqYUxjOwHcQ==" + }, + "fastify-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-3.0.0.tgz", + "integrity": "sha512-ZdCvKEEd92DNLps5n0v231Bha8bkz1DjnPP/aEz37rz/q42Z5JVLmgnqR4DYuNn3NXAO3IDCPyRvgvxtJ4Ym4w==" + }, + "fastify-static": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/fastify-static/-/fastify-static-4.2.2.tgz", + "integrity": "sha512-C631EuGdMlUzFXuuP4SqXBoQEiit9S0uYRd97cF2mFhgStvZvQKIjtzUk/GMQu6EfEdm0ddj3UAc0C6dVeNyKA==", + "requires": { + "content-disposition": "^0.5.3", + "encoding-negotiator": "^2.0.1", + "fastify-plugin": "^3.0.0", + "glob": "^7.1.4", + "readable-stream": "^3.4.0", + "send": "^0.17.1" + } + }, + "fastify-swagger": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/fastify-swagger/-/fastify-swagger-4.8.3.tgz", + "integrity": "sha512-TZWO8o5rdcynTQ9L3F5nPPmTx08ckjO+7uzLxNJah88uYyviZg4G2cvHCohyZy0oJqm5W8NJjnJMKjRq4BGNPw==", + "requires": { + "fastify-plugin": "^3.0.0", + "fastify-static": "^4.0.0", + "js-yaml": "^4.0.0", + "json-schema-resolver": "^1.2.0", + "openapi-types": "^9.1.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "fastify-warning": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/fastify-warning/-/fastify-warning-0.2.0.tgz", + "integrity": "sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==" + }, + "fastify-websocket": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fastify-websocket/-/fastify-websocket-3.2.0.tgz", + "integrity": "sha512-O1I04Y6aV2rkO+RRMYQzIe2h7omA20p+Nk/HAdJmfHvNErY7OCani06+rDMmQCKYbZT6RWrsy13U+GrJPhSO6Q==", + "requires": { + "fastify-plugin": "^3.0.0", + "ws": "^7.4.2" + } + }, + "fastq": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", + "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fengari": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/fengari/-/fengari-0.1.4.tgz", + "integrity": "sha512-6ujqUuiIYmcgkGz8MGAdERU57EIluGGPSUgGPTsco657EHa+srq0S3/YUl/r9kx1+D+d4rGfYObd+m8K22gB1g==", + "requires": { + "readline-sync": "^1.4.9", + "sprintf-js": "^1.1.1", + "tmp": "^0.0.33" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + } + } + }, + "fengari-interop": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/fengari-interop/-/fengari-interop-0.1.2.tgz", + "integrity": "sha512-8iTvaByZVoi+lQJhHH9vC+c/Yaok9CwOqNQZN6JrVpjmWwW4dDkeblBXhnHC+BoI6eF4Cy5NKW3z6ICEjvgywQ==" + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-my-way": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-4.3.3.tgz", + "integrity": "sha512-5E4bRdaATB1MewjOCBjx4xvD205a4t2ripCnXB+YFhYEJ0NABtrcC7XLXLq0TPoFe/WYGUFqys3Qk3HCOGeNcw==", + "requires": { + "fast-decode-uri-component": "^1.0.1", + "fast-deep-equal": "^3.1.3", + "safe-regex2": "^2.0.0", + "semver-store": "^0.3.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "firebase-admin": { + "version": "9.10.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-9.10.0.tgz", + "integrity": "sha512-4mB15zkzSpnLxpBrWJr7ad68ydYB/MMkS53N2XxfFwgz9QuFVCyHhznAno6FP7v+BtZkEJPdVd36nbH1yKS1UQ==", + "requires": { + "@firebase/database": "^0.10.0", + "@firebase/database-types": "^0.7.2", + "@google-cloud/firestore": "^4.5.0", + "@google-cloud/storage": "^5.3.0", + "@types/node": ">=12.12.47", + "dicer": "^0.3.0", + "jsonwebtoken": "^8.5.1", + "jwks-rsa": "^2.0.2", + "node-forge": "^0.10.0" + }, + "dependencies": { + "@types/node": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==" + } + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatstr": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", + "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + }, + "flatted": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.0.tgz", + "integrity": "sha512-XprP7lDrVT+kE2c2YlfiV+IfS9zxukiIOvNamPNsImNhXadSsQEbosItdL9bUQlCZXR13SvPk20BjWSWLA7m4A==", + "dev": true + }, + "follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==" + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fraction.js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz", + "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "futoin-hkdf": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/futoin-hkdf/-/futoin-hkdf-1.3.3.tgz", + "integrity": "sha512-oR75fYk3B3X9/B02Y6vusrBKucrpC6VjxhRL+C6B7FwUpuSRHbhBNG3AZbcE/xPyJmEQWsyqUFp3VeNNbA3S7A==" + }, + "gaxios": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.0.tgz", + "integrity": "sha512-pHplNbslpwCLMyII/lHPWFQbJWOX0B3R1hwBEOvzYi1GmdKZruuEHK4N9V6f7tf1EaPYyF80mui1+344p6SmLg==", + "optional": true, + "requires": { + "abort-controller": "^3.0.0", + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.3.0" + } + }, + "gcp-metadata": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.0.tgz", + "integrity": "sha512-L9XQUpvKJCM76YRSmcxrR4mFPzPGsgZUH+GgHMxAET8qc6+BhRJq63RLhWakgEO2KKVgeSDVfyiNjkGSADwNTA==", + "optional": true, + "requires": { + "gaxios": "^4.0.0", + "json-bigint": "^1.0.0" + } + }, + "gcs-resumable-upload": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-3.2.1.tgz", + "integrity": "sha512-T7YPQVPFibgt6DmJVPGIgY8jHF9ycGJVDRCutwMBp/7Y2++QYEW8drL9XUdzS6ZvEiwTKvgvGMG77yb63XwSXA==", + "optional": true, + "requires": { + "abort-controller": "^3.0.0", + "configstore": "^5.0.0", + "extend": "^3.0.2", + "gaxios": "^4.0.0", + "google-auth-library": "^7.0.0", + "pumpify": "^2.0.0", + "stream-events": "^1.0.4" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-orientation": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-orientation/-/get-orientation-1.1.2.tgz", + "integrity": "sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==", + "requires": { + "stream-parser": "^0.3.1" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "requires": { + "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" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + } + } + }, + "google-auth-library": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.2.0.tgz", + "integrity": "sha512-F5mnidUaIXfZZl2FzhZOhboLNR6pIgIPrmP4QAbDKMy+kkb3GOc4r7KndAV9+Kx3VijrQTi4FI/AMLg8VWG6nw==", + "optional": true, + "requires": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^4.0.0", + "gcp-metadata": "^4.2.0", + "gtoken": "^5.0.4", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + } + }, + "google-gax": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.17.0.tgz", + "integrity": "sha512-Ze/Oq0atVNKyKvDzQFU8B82V9w36GELQruXGsiY1jnySbieZ9vS75v98V/Z10PktmSVqis4sQ+FwK2gkgwIiiw==", + "optional": true, + "requires": { + "@grpc/grpc-js": "~1.3.0", + "@grpc/proto-loader": "^0.6.1", + "@types/long": "^4.0.0", + "abort-controller": "^3.0.0", + "duplexify": "^4.0.0", + "fast-text-encoding": "^1.0.3", + "google-auth-library": "^7.0.2", + "is-stream-ended": "^0.1.4", + "node-fetch": "^2.6.1", + "object-hash": "^2.1.1", + "protobufjs": "^6.10.2", + "retry-request": "^4.0.0" + } + }, + "google-p12-pem": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.0.tgz", + "integrity": "sha512-JUtEHXL4DY/N+xhlm7TC3qL797RPAtk0ZGXNs3/gWyiDHYoA/8Rjes0pztkda+sZv4ej1EoO2KhWgW5V9KTrSQ==", + "optional": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "got": { + "version": "11.8.2", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", + "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.1", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "graphql": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.1.tgz", + "integrity": "sha512-FeTRX67T3LoE3LWAxxOlW2K3Bz+rMYAC18rRguK4wgXaTZMiJwSUwDmPFo3UadAKbzirKIg5Qy+sNJXbpPRnQw==", + "dev": true + }, + "gtoken": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.0.tgz", + "integrity": "sha512-mCcISYiaRZrJpfqOs0QWa6lfEM/C1V9ASkzFmuz43XBb5s1Vynh+CZy1ECeeJXVGx2PRByjYzb4Y4/zr1byr0w==", + "optional": true, + "requires": { + "gaxios": "^4.0.0", + "google-p12-pem": "^3.0.3", + "jws": "^4.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash-stream-validation": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.4.tgz", + "integrity": "sha512-Gjzu0Xn7IagXVkSu9cSFuK1fqzwtLwFhNhVL8IFJijRNMgUttFbBSIAzKuSIrsFMO1+g1RlsoN49zPIbwPDMGQ==", + "optional": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hdr-histogram-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.1.tgz", + "integrity": "sha512-uPZxl1dAFnjUFHWLZmt93vUUvtHeaBay9nVNHu38SdOjMSF/4KqJUqa1Seuj08ptU1rEb6AHvB41X8n/zFZ74Q==", + "requires": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "headers-utils": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/headers-utils/-/headers-utils-3.0.2.tgz", + "integrity": "sha512-xAxZkM1dRyGV2Ou5bzMxBPNLoRCjcX+ya7KSWybQD2KwLphxsapUVK6x/02o7f4VU6GPSXch9vNY2+gkU8tYWQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "image-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz", + "integrity": "sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==", + "requires": { + "queue": "6.0.2" + } + }, + "import-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", + "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", + "dev": true, + "requires": { + "import-from": "^3.0.0" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "inline-style-prefixer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.0.tgz", + "integrity": "sha512-XTHvRUS4ZJNzC1GixJRmOlWSS45fSt+DJoyQC9ytj0WxQfcgofQtDtyKKYxHUqEsWCs+LIWftPF1ie7+i012Fg==", + "requires": { + "css-in-js-utils": "^2.0.0" + } + }, + "inquirer": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.1.tgz", + "integrity": "sha512-hUDjc3vBkh/uk1gPfMAD/7Z188Q8cvTGl0nxwaCdwSbzFh6ZKkZh+s2ozVxbE5G9ZNRyeY0+lgbAIOUFsFf98w==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.3.0", + "run-async": "^2.4.0", + "rxjs": "^6.6.6", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "ioredis": { + "version": "4.27.6", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.27.6.tgz", + "integrity": "sha512-6W3ZHMbpCa8ByMyC1LJGOi7P2WiOKP9B3resoZOVLDhi+6dDBOW+KNsRq3yI36Hmnb2sifCxHX+YSarTeXh48A==", + "requires": { + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.1", + "denque": "^1.1.0", + "lodash.defaults": "^4.2.0", + "lodash.flatten": "^4.4.0", + "p-map": "^2.1.0", + "redis-commands": "1.7.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + } + }, + "ioredis-mock": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/ioredis-mock/-/ioredis-mock-5.6.0.tgz", + "integrity": "sha512-Ow+tyKdijg/gA2gSEv7lq8dLp6bO7FnwDXbJ9as37NF23XNRGMLzBc7ITaqMydfrbTodWnLcE2lKEaBs7SBpyA==", + "requires": { + "fengari": "^0.1.4", + "fengari-interop": "^0.1.2", + "lodash": "^4.17.21", + "standard-as-callback": "^2.1.0" + } + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + }, + "is-ci": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", + "dev": true, + "requires": { + "ci-info": "^3.1.1" + } + }, + "is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==" + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-generator-function": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", + "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==" + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "optional": true + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "is-stream-ended": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", + "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==", + "optional": true + }, + "is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==" + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", + "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dev": true, + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "27.0.5", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.0.5.tgz", + "integrity": "sha512-4NlVMS29gE+JOZvgmSAsz3eOjkSsHqjTajlIsah/4MVSmKvf3zFP/TvgcLoWe2UVHiE9KF741sReqhF0p4mqbQ==", + "dev": true, + "requires": { + "@jest/core": "^27.0.5", + "import-local": "^3.0.2", + "jest-cli": "^27.0.5" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-cli": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.0.6.tgz", + "integrity": "sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg==", + "dev": true, + "requires": { + "@jest/core": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "jest-config": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", + "prompts": "^2.0.1", + "yargs": "^16.0.3" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-changed-files": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.0.6.tgz", + "integrity": "sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "execa": "^5.0.0", + "throat": "^6.0.1" + } + }, + "jest-circus": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.0.6.tgz", + "integrity": "sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q==", + "dev": true, + "requires": { + "@jest/environment": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.0.6", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "pretty-format": "^27.0.6", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-config": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.0.6.tgz", + "integrity": "sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^27.0.6", + "@jest/types": "^27.0.6", + "babel-jest": "^27.0.6", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "jest-circus": "^27.0.6", + "jest-environment-jsdom": "^27.0.6", + "jest-environment-node": "^27.0.6", + "jest-get-type": "^27.0.6", + "jest-jasmine2": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-runner": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", + "micromatch": "^4.0.4", + "pretty-format": "^27.0.6" + }, + "dependencies": { + "babel-jest": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.0.6.tgz", + "integrity": "sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA==", + "dev": true, + "requires": { + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^27.0.6", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "15.0.14", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", + "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", + "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.0.6.tgz", + "integrity": "sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "chalk": "^4.0.0", + "jest-get-type": "^27.0.6", + "jest-util": "^27.0.6", + "pretty-format": "^27.0.6" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz", + "integrity": "sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw==", + "dev": true, + "requires": { + "@jest/environment": "^27.0.6", + "@jest/fake-timers": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/node": "*", + "jest-mock": "^27.0.6", + "jest-util": "^27.0.6", + "jsdom": "^16.6.0" + } + }, + "jest-environment-node": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.0.6.tgz", + "integrity": "sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w==", + "dev": true, + "requires": { + "@jest/environment": "^27.0.6", + "@jest/fake-timers": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/node": "*", + "jest-mock": "^27.0.6", + "jest-util": "^27.0.6" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "jest-haste-map": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.0.6.tgz", + "integrity": "sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.0.6", + "jest-worker": "^27.0.6", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", + "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-jasmine2": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz", + "integrity": "sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^27.0.6", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.0.6", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "pretty-format": "^27.0.6", + "throat": "^6.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz", + "integrity": "sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ==", + "dev": true, + "requires": { + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" + }, + "dependencies": { + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + } + } + }, + "jest-matcher-utils": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz", + "integrity": "sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.0.6", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "diff-sequences": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", + "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-diff": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.6.tgz", + "integrity": "sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.0.6", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" + } + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.0.6.tgz", + "integrity": "sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.0.6", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "pretty-format": "^27.0.6", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.0.6.tgz", + "integrity": "sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true + }, + "jest-regex-util": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", + "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", + "dev": true + }, + "jest-resolve": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.0.6.tgz", + "integrity": "sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "chalk": "^4.0.0", + "escalade": "^3.1.1", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", + "resolve": "^1.20.0", + "slash": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz", + "integrity": "sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-snapshot": "^27.0.6" + } + }, + "jest-runner": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.0.6.tgz", + "integrity": "sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ==", + "dev": true, + "requires": { + "@jest/console": "^27.0.6", + "@jest/environment": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-docblock": "^27.0.6", + "jest-environment-jsdom": "^27.0.6", + "jest-environment-node": "^27.0.6", + "jest-haste-map": "^27.0.6", + "jest-leak-detector": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-util": "^27.0.6", + "jest-worker": "^27.0.6", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", + "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.0.6.tgz", + "integrity": "sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q==", + "dev": true, + "requires": { + "@jest/console": "^27.0.6", + "@jest/environment": "^27.0.6", + "@jest/fake-timers": "^27.0.6", + "@jest/globals": "^27.0.6", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-mock": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^16.0.3" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-serializer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.0.6.tgz", + "integrity": "sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A==", + "dev": true, + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.0.6", + "graceful-fs": "^4.2.4", + "jest-diff": "^27.0.6", + "jest-get-type": "^27.0.6", + "jest-haste-map": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-util": "^27.0.6", + "natural-compare": "^1.4.0", + "pretty-format": "^27.0.6", + "semver": "^7.3.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "diff-sequences": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", + "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-diff": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.6.tgz", + "integrity": "sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.0.6", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" + } + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-util": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.0.6.tgz", + "integrity": "sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.0.6.tgz", + "integrity": "sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.0.6", + "leven": "^3.1.0", + "pretty-format": "^27.0.6" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watcher": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.0.6.tgz", + "integrity": "sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ==", + "dev": true, + "requires": { + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.0.6", + "string-length": "^4.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "27.0.0-next.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", + "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "@types/node": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + }, + "joi": { + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.0.tgz", + "integrity": "sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.0", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "jose": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/jose/-/jose-2.0.5.tgz", + "integrity": "sha512-BAiDNeDKTMgk4tvD0BbxJ8xHEHBZgpeRZ1zGPPsitSyMgjoMWiLGYAE7H7NpP5h0lPppQajQs871E8NHUrzVPA==", + "requires": { + "@panva/asn1.js": "^1.0.0" + } + }, + "jotai": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/jotai/-/jotai-1.1.2.tgz", + "integrity": "sha512-dni4wtgYGG+s9YbOJN7lcfrrhxiD6bH1SN00Pnl0F2htgOXmjxqkGlFzw02OK0Rw35wGNzBfDTJVtbGD9wHOhg==" + }, + "joycon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.0.1.tgz", + "integrity": "sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==" + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsdom": { + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz", + "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.5", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", + "dev": true + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "optional": true, + "requires": { + "bignumber.js": "^9.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/json-schema-resolver/-/json-schema-resolver-1.2.2.tgz", + "integrity": "sha512-sW4b4BDJzYiKpJind7l1JtH3P1yn43vCv3w51YR2Ixse5rXr006TL10gM0Ek54pET6vxwiWq5RQuIMgmH9YrrQ==", + "requires": { + "debug": "^4.1.1", + "rfdc": "^1.1.4", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "jsx-ast-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", + "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "dev": true, + "requires": { + "array-includes": "^3.1.2", + "object.assign": "^4.1.2" + } + }, + "jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "optional": true, + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jwks-rsa": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-2.0.3.tgz", + "integrity": "sha512-/rkjXRWAp0cS00tunsHResw68P5iTQru8+jHufLNv3JHc4nObFEndfEUSuPugh09N+V9XYxKUqi7QrkmCHSSSg==", + "requires": { + "@types/express-jwt": "0.0.42", + "debug": "^4.1.0", + "jose": "^2.0.5", + "limiter": "^1.1.5", + "lru-memoizer": "^2.1.2" + } + }, + "jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "optional": true, + "requires": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "keyv": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", + "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", + "requires": { + "json-buffer": "3.0.1" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "koalas": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/koalas/-/koalas-1.0.2.tgz", + "integrity": "sha1-MYQz8HQjXbePrlZhoCqMpT7ilc0=" + }, + "language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "dev": true + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dev": true, + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "light-my-request": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-4.4.1.tgz", + "integrity": "sha512-FDNRF2mYjthIRWE7O8d/X7AzDx4otQHl4/QXbu3Q/FRwBFcgb+ZoDaUd5HwN53uQXLAiw76osN+Va0NEaOW6rQ==", + "requires": { + "ajv": "^6.12.2", + "cookie": "^0.4.0", + "fastify-warning": "^0.2.0", + "readable-stream": "^3.6.0", + "set-cookie-parser": "^2.4.1" + } + }, + "lilconfig": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", + "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", + "dev": true + }, + "limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==" + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "optional": true + }, + "lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", + "dev": true + }, + "lodash.topath": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", + "integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=", + "dev": true + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "lru-memoizer": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.1.4.tgz", + "integrity": "sha512-IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ==", + "requires": { + "lodash.clonedeep": "^4.5.0", + "lru-cache": "~4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", + "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=", + "requires": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + } + } + }, + "lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=" + }, + "luxon": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.0.tgz", + "integrity": "sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ==" + }, + "lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.x" + } + }, + "match-sorter": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.0.tgz", + "integrity": "sha512-efYOf/wUpNb8FgNY+cOD2EIJI1S5I7YPKsw0LBp7wqPh5pmMS6i/wr3ZWwfwrAw1NvqTA2KUReVRWDX84lUcOQ==", + "requires": { + "@babel/runtime": "^7.12.5", + "remove-accents": "0.4.2" + } + }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "microseconds": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz", + "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "optional": true + }, + "mime-db": { + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==" + }, + "mime-types": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "requires": { + "mime-db": "1.48.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "mini-svg-data-uri": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.3.3.tgz", + "integrity": "sha512-+fA2oRcR1dJI/7ITmeQJDrYWks0wodlOz0pAEhKYJ2IVc1z0AnwJUsKY2fzFmPAM3Jo9J0rBx8JAA9QQSJ5PuA==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "modern-normalize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-1.1.0.tgz", + "integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==", + "dev": true + }, + "module-details-from-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha1-EUyUlnPiqKNenTV4hSeqN7Z52is=" + }, + "mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "msw": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/msw/-/msw-0.30.0.tgz", + "integrity": "sha512-5XtBzFln1ld4HOIn2h57yKnZq2l7QhhuVUK8ZW3VvXSeG/GFr9CtGIui8VhT6ewOfkqzdRPruVmjAK5+fAhijw==", + "dev": true, + "requires": { + "@mswjs/cookies": "^0.1.5", + "@mswjs/interceptors": "^0.11.0", + "@open-draft/until": "^1.0.3", + "@types/cookie": "^0.4.0", + "@types/inquirer": "^7.3.1", + "@types/js-levenshtein": "^1.1.0", + "chalk": "^4.1.1", + "chokidar": "^3.4.2", + "cookie": "^0.4.1", + "graphql": "^15.4.0", + "headers-utils": "^3.0.2", + "inquirer": "^8.1.0", + "js-levenshtein": "^1.1.6", + "node-fetch": "^2.6.1", + "node-match-path": "^0.6.3", + "statuses": "^2.0.0", + "strict-event-emitter": "^0.2.0", + "type-fest": "^1.1.3", + "yargs": "^17.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.2.1.tgz", + "integrity": "sha512-SbmIRuXhJs8KTneu77Ecylt9zuqL683tuiLYpTRil4H++eIhqCmx6ko6KAFem9dty8sOdnEiX7j4K1nRE628fQ==", + "dev": true + }, + "yargs": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", + "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", + "dev": true, + "requires": { + "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" + } + } + } + }, + "multer": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", + "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + }, + "nano-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz", + "integrity": "sha1-sFVPaa2J4i0JB/ehKwmTpdlhN+8=", + "requires": { + "big-integer": "^1.6.16" + } + }, + "nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==" + }, + "native-url": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.3.4.tgz", + "integrity": "sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA==", + "requires": { + "querystring": "^0.2.0" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "next": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/next/-/next-11.0.1.tgz", + "integrity": "sha512-yR7be7asNbvpVNpi6xxEg28wZ7Gqmj1nOt0sABH9qORmF3+pms2KZ7Cng33oK5nqPIzEEFJD0pp2PCe3/ueMIg==", + "requires": { + "@babel/runtime": "7.12.5", + "@hapi/accept": "5.0.2", + "@next/env": "11.0.1", + "@next/polyfill-module": "11.0.1", + "@next/react-dev-overlay": "11.0.1", + "@next/react-refresh-utils": "11.0.1", + "assert": "2.0.0", + "ast-types": "0.13.2", + "browserify-zlib": "0.2.0", + "browserslist": "4.16.6", + "buffer": "5.6.0", + "caniuse-lite": "^1.0.30001228", + "chalk": "2.4.2", + "chokidar": "3.5.1", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "cssnano-simple": "2.0.0", + "domain-browser": "4.19.0", + "encoding": "0.1.13", + "etag": "1.8.1", + "find-cache-dir": "3.3.1", + "get-orientation": "1.1.2", + "https-browserify": "1.0.0", + "image-size": "1.0.0", + "jest-worker": "27.0.0-next.5", + "native-url": "0.3.4", + "node-fetch": "2.6.1", + "node-html-parser": "1.4.9", + "node-libs-browser": "^2.2.1", + "os-browserify": "0.3.0", + "p-limit": "3.1.0", + "path-browserify": "1.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "8.2.13", + "process": "0.11.10", + "prop-types": "15.7.2", + "querystring-es3": "0.2.1", + "raw-body": "2.4.1", + "react-is": "17.0.2", + "react-refresh": "0.8.3", + "stream-browserify": "3.0.0", + "stream-http": "3.1.1", + "string_decoder": "1.3.0", + "styled-jsx": "3.3.2", + "timers-browserify": "2.0.12", + "tty-browserify": "0.0.1", + "use-subscription": "1.5.1", + "util": "0.12.3", + "vm-browserify": "1.1.2", + "watchpack": "2.1.1" + }, + "dependencies": { + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "postcss": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz", + "integrity": "sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==", + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.22", + "source-map": "^0.6.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "react-refresh": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", + "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "node-emoji": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", + "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", + "dev": true, + "requires": { + "lodash.toarray": "^4.4.0" + } + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" + }, + "node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" + }, + "node-html-parser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz", + "integrity": "sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==", + "requires": { + "he": "1.2.0" + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + } + } + }, + "node-match-path": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/node-match-path/-/node-match-path-0.6.3.tgz", + "integrity": "sha512-fB1reOHKLRZCJMAka28hIxCwQLxGmd7WewOCBDYKpyA1KXi68A7vaGgdZAPhY2E6SXoYt3KqYCCvXLJ+O0Fu/Q==", + "dev": true + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-releases": { + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==" + }, + "nookies": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/nookies/-/nookies-2.5.2.tgz", + "integrity": "sha512-x0TRSaosAEonNKyCrShoUaJ5rrT5KHRNZ5DwPCuizjgrnkpE5DRf3VL7AyyQin4htict92X1EQ7ejDbaHDVdYA==", + "requires": { + "cookie": "^0.4.1", + "set-cookie-parser": "^2.4.6" + } + }, + "normalize-css-color": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/normalize-css-color/-/normalize-css-color-1.0.2.tgz", + "integrity": "sha1-Apkel8zOxmI/5XOvu/Deah8+n40=" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" + }, + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", + "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + } + }, + "object.fromentries": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", + "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + } + }, + "object.values": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2" + } + }, + "oblivious-set": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz", + "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" + }, + "oidc-token-hash": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz", + "integrity": "sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/open/-/open-8.2.1.tgz", + "integrity": "sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "openapi-types": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-9.1.0.tgz", + "integrity": "sha512-mhXh8QN8sbErlxfxBeZ/pzgvmDn443p8CXlxwGSi2bWANZAFvjLPI0PoGjqHW+JdBbXg6uvmvM81WXaweh/SVA==" + }, + "openid-client": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-4.7.4.tgz", + "integrity": "sha512-n+RURXYuR0bBZo9i0pn+CXZSyg5JYQ1nbwEwPQvLE7EcJt/vMZ2iIMjLehl5DvCN53XUoPVZs9KAE5r6d9fxsw==", + "requires": { + "aggregate-error": "^3.1.0", + "got": "^11.8.0", + "jose": "^2.0.5", + "lru-cache": "^6.0.0", + "make-error": "^1.3.6", + "object-hash": "^2.0.1", + "oidc-token-hash": "^5.0.1" + } + }, + "opentracing": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.5.tgz", + "integrity": "sha512-XLKtEfHxqrWyF1fzxznsv78w3csW41ucHnjiKnfzZLD5FN8UBDZZL1i4q0FR29zjxXhm+2Hop+5Vr/b8tKIvEg==" + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, + "p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-gitignore": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-1.0.1.tgz", + "integrity": "sha512-UGyowyjtx26n65kdAMWhm6/3uy5uSrpcuH7tt+QEVudiBoVS+eqHxD5kbi9oWVRwj7sCzXqwuM+rUGw7earl6A==" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "php-serialize": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/php-serialize/-/php-serialize-4.0.2.tgz", + "integrity": "sha512-73K9MqCnRn07sXxOht6kVLg+fg1lf/VYpecKy4n9ABcw1PJIAWfaxuQKML27EjolGHWxlXTy3rfh59AGrcUvIA==" + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pino": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz", + "integrity": "sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==", + "requires": { + "fast-redact": "^3.0.0", + "fast-safe-stringify": "^2.0.7", + "flatstr": "^1.0.12", + "pino-std-serializers": "^3.1.0", + "quick-format-unescaped": "^4.0.3", + "sonic-boom": "^1.0.2" + } + }, + "pino-pretty": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-5.1.0.tgz", + "integrity": "sha512-fpDU80MKP59XOWxqV8crTDjRegC2fbDsA56zTr5s1guiv6QuYHILc9x1a4+o9SNPtfmF2kQdpAZS+bIExtbELQ==", + "requires": { + "@hapi/bourne": "^2.0.0", + "@types/node": "^15.3.0", + "args": "^5.0.1", + "chalk": "^4.0.0", + "dateformat": "^4.5.1", + "fast-safe-stringify": "^2.0.7", + "jmespath": "^0.15.0", + "joycon": "^3.0.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "rfdc": "^1.3.0", + "split2": "^3.1.1", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "@types/node": { + "version": "15.14.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.1.tgz", + "integrity": "sha512-wF6hazbsnwaW3GhK4jFuw5NaLDQVRQ6pWQUGAUrJzxixFkTaODSiAKMPXuHwPEPkAKQWHAzj6uJ5h+3zU9gQxg==" + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "pino-std-serializers": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", + "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + }, + "plausible-telemetry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/plausible-telemetry/-/plausible-telemetry-0.1.0.tgz", + "integrity": "sha512-wz3RTCMXGV54ilCkWRcI1gbiko8j/qH/A6402ScFUM5XY2rnqAX/Prc+i/lvHwLORL2ZLdCWvngvOpXCmmkRHQ==", + "requires": { + "cross-fetch": "^3.0.6" + } + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "pop-iterate": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pop-iterate/-/pop-iterate-1.0.1.tgz", + "integrity": "sha1-zqz9q0q/NT16DyqqLB/Hs/lBO6M=" + }, + "postcss": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.5.tgz", + "integrity": "sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA==", + "dev": true, + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" + } + }, + "postcss-js": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-3.0.3.tgz", + "integrity": "sha512-gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==", + "dev": true, + "requires": { + "camelcase-css": "^2.0.1", + "postcss": "^8.1.6" + } + }, + "postcss-load-config": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", + "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", + "dev": true, + "requires": { + "import-cwd": "^3.0.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "postcss-nested": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.5.tgz", + "integrity": "sha512-GSRXYz5bccobpTzLQZXOnSOfKl6TwVr5CyAQJUPub4nuRJSOECK5AqurxVgmtxP48p0Kc/ndY/YyS1yqldX0Ew==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "pretty-format": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.6.tgz", + "integrity": "sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "ansi-regex": "^5.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + } + } + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "prompts": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", + "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "protobufjs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", + "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "dependencies": { + "@types/node": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==" + } + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz", + "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==", + "optional": true, + "requires": { + "duplexify": "^4.1.1", + "inherits": "^2.0.3", + "pump": "^3.0.0" + } + }, + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "purgecss": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-4.0.3.tgz", + "integrity": "sha512-PYOIn5ibRIP34PBU9zohUcCI09c7drPJJtTDAc0Q6QlRz2/CHQ8ywGLdE7ZhxU2VTqB7p5wkvj5Qcm05Rz3Jmw==", + "dev": true, + "requires": { + "commander": "^6.0.0", + "glob": "^7.0.0", + "postcss": "^8.2.1", + "postcss-selector-parser": "^6.0.2" + } + }, + "q": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/q/-/q-2.0.3.tgz", + "integrity": "sha1-dbjbAlWhpa+C9Yw/Oqoe/sfQ0TQ=", + "requires": { + "asap": "^2.0.0", + "pop-iterate": "^1.0.1", + "weak-map": "^1.0.5" + } + }, + "qs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "requires": { + "inherits": "~2.0.3" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quick-format-unescaped": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", + "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "quirrel": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/quirrel/-/quirrel-1.6.2.tgz", + "integrity": "sha512-W+1IXjU4BrQS80RBvqcSnYGcmwMqGbMJ8rj6aeiHFEQyKrQxVA9ecgu4pH7vS5EZRaLu04FXdtNObc0xHF9Txg==", + "requires": { + "@babel/parser": "^7.14.7", + "@babel/traverse": "^7.14.7", + "@quirrel/ioredis-mock": "^5.6.1", + "@quirrel/owl": "^0.13.3", + "@sentry/node": "6.8.0", + "@sentry/tracing": "6.8.0", + "basic-auth": "2.0.1", + "body-parser": "1.19.0", + "chalk": "4.1.1", + "chokidar": "3.5.2", + "commander": "^8.0.0", + "conditional-type-checks": "1.0.5", + "connect": "3.7.0", + "cron-parser": "3.5.0", + "cross-fetch": "^3.1.4", + "cross-spawn": "7.0.3", + "dd-trace": "^0.36.1", + "easy-table": "1.1.1", + "expand-tilde": "2.0.2", + "fast-glob": "3.2.6", + "fastify": "3.18.1", + "fastify-basic-auth": "2.0.0", + "fastify-blipp": "3.1.0", + "fastify-cors": "6.0.1", + "fastify-plugin": "3.0.0", + "fastify-static": "^4.2.2", + "fastify-swagger": "^4.5.0", + "fastify-websocket": "3.2.0", + "ioredis": "4.27.6", + "js-yaml": "^4.1.0", + "jsonwebtoken": "^8.5.1", + "ms": "2.1.3", + "open": "8.2.1", + "opentracing": "^0.14.5", + "parse-gitignore": "1.0.1", + "pino": "6.11.3", + "plausible-telemetry": "0.1.0", + "secure-e2ee": "0.4.0", + "secure-webhooks": "^0.3.0", + "superjson": "^1.7.3", + "uuid": "^8.3.2", + "zod": "^3.0.0-alpha.29" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "commander": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.0.0.tgz", + "integrity": "sha512-Xvf85aAtu6v22+E5hfVoLHqyul/jyxh91zvqk/ioJTQuJR7Z78n7H558vMPKanPSRgIEeZemT92I2g9Y8LPbSQ==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-gui": { + "version": "0.0.0-fde89cb", + "resolved": "https://registry.npmjs.org/react-gui/-/react-gui-0.0.0-fde89cb.tgz", + "integrity": "sha512-EGgmpRt9KEjPQD/MMny0jBI29hBNhsIDZFpt+lrcI8pFJ9GLW0Wb9jjBxdSZLZoSmMDRoaPTzJ3BwzX1UnFLeA==", + "requires": { + "debounce": "^1.2.0", + "inline-style-prefixer": "^6.0.0", + "normalize-css-color": "^1.0.2" + } + }, + "react-hook-form": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.9.0.tgz", + "integrity": "sha512-1SazsTvsC5A4jLxc8fIf0bB92kEp4MGjP69k8s+2nI1spHPha5UkLwaebOXhO9vY95aGqcyBU67pRiv+6T5KZQ==" + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-query": { + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.17.2.tgz", + "integrity": "sha512-icMtYL/+jUv0Q3n8GRz6CTyMYKh+l5EBKwhkr8qhbtYRORr43YGiN6EJSyw9WFaSQ9bwD1G9ZhaFxow9NMV0Sw==", + "requires": { + "@babel/runtime": "^7.5.5", + "broadcast-channel": "^3.4.1", + "match-sorter": "^6.0.2" + } + }, + "react-refresh": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.10.0.tgz", + "integrity": "sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + } + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "readline-sync": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", + "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==" + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "redis-commands": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", + "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" + }, + "redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=" + }, + "redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=", + "requires": { + "redis-errors": "^1.0.0" + } + }, + "reduce-css-calc": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", + "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", + "dev": true, + "requires": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "remove-accents": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", + "integrity": "sha1-CkPTqq4egNuRngeuJUsoXZ4ce7U=" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-alpn": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.1.2.tgz", + "integrity": "sha512-8OyfzhAtA32LVUsJSke3auIyINcwdh5l3cvYKdKO0nvsYSKuiLfTM5i78PJswFPT8y6cPW+L1v6/hE95chcpDA==" + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "requires": { + "lowercase-keys": "^2.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", + "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==" + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "optional": true + }, + "retry-request": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.2.1.tgz", + "integrity": "sha512-afiCoZZ7D/AR2mf+9ajr75dwGFgWmPEshv3h+oKtf9P1AsHfHvcVXumdbAEq2qNy4UXFEXsEX5HpyGj4axvoaA==", + "optional": true, + "requires": { + "debug": "^4.1.1" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rootpath": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/rootpath/-/rootpath-0.1.2.tgz", + "integrity": "sha1-Wzeah9ypBum5HWkKWZQ5vvJn6ms=" + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-regex2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", + "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", + "requires": { + "ret": "~0.2.0" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "scmp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scmp/-/scmp-2.1.0.tgz", + "integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==" + }, + "secure-e2ee": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/secure-e2ee/-/secure-e2ee-0.4.0.tgz", + "integrity": "sha512-NeByVRKg6SYY5bWaUQjTD8xeInegvCKCINW53pBE7bYLp9g2a6+n+Gu9+qZhANkqF65yelX7ZvbjaN/ulHZG6Q==", + "requires": { + "base64-js": "^1.5.1", + "md5": "^2.3.0" + } + }, + "secure-json-parse": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz", + "integrity": "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==" + }, + "secure-webhooks": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/secure-webhooks/-/secure-webhooks-0.3.0.tgz", + "integrity": "sha512-UMcMEIvRHfbrAY2zhfv6ugEjkgbBXNwml50iDzq2FZBMeFoeJnfzw7RZFSUBcGG+/myfRP5A5Shw3msWdENxUA==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "semver-store": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz", + "integrity": "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "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.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "set-cookie-parser": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.4.8.tgz", + "integrity": "sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + }, + "shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "snakeize": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/snakeize/-/snakeize-0.1.0.tgz", + "integrity": "sha1-EMCI2LWOsHazIpu1oE4jLOEmQi0=", + "optional": true + }, + "sonic-boom": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", + "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "requires": { + "atomic-sleep": "^1.0.0", + "flatstr": "^1.0.12" + } + }, + "source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "requires": { + "whatwg-url": "^7.0.0" + } + }, + "source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true + }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", + "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "dev": true + }, + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "requires": { + "readable-stream": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "requires": { + "type-fest": "^0.7.1" + } + }, + "standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "optional": true, + "requires": { + "stubs": "^3.0.0" + } + }, + "stream-http": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", + "requires": { + "debug": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "optional": true + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "strict-event-emitter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.0.tgz", + "integrity": "sha512-zv7K2egoKwkQkZGEaH8m+i2D0XiKzx5jNsiSul6ja2IYFvil10A59Z9Y7PPAAe5OW53dQUf9CfsHKzjZzKkm1w==", + "dev": true, + "requires": { + "events": "^3.3.0" + }, + "dependencies": { + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + } + } + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-similarity": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz", + "integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==" + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.matchall": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", + "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.2", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", + "optional": true + }, + "styled-jsx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-3.3.2.tgz", + "integrity": "sha512-daAkGd5mqhbBhLd6jYAjYBa9LpxYCzsgo/f6qzPdFxVB8yoGbhxvzQgkC0pfmCVvW3JuAEBn0UzFLBfkHVZG1g==", + "requires": { + "@babel/types": "7.8.3", + "babel-plugin-syntax-jsx": "6.18.0", + "convert-source-map": "1.7.0", + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "string-hash": "1.1.3", + "stylis": "3.5.4", + "stylis-rule-sheet": "0.0.10" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" + }, + "stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" + }, + "superjson": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-1.7.4.tgz", + "integrity": "sha512-A6DYTe04+x4L9NPywHeGZNy6/gLe8qqKCwhEfTH9M4eXpTjiTsF83JZ3j4hwXx1ogRb4779nWxsDlJGIECOJkw==", + "requires": { + "debug": "^4.3.1", + "lodash.clonedeep": "^4.5.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "table": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.1.tgz", + "integrity": "sha512-42VLtQUOLefAvKFAQIxIZDaThq6om/PrfP0CYk3/vn+y4BMNkKnbli8ON2QCiHov4KkzOSJ/xSoBJdayiiYvVQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "tailwindcss": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-2.2.4.tgz", + "integrity": "sha512-OdBCPgazNNsknSP+JfrPzkay9aqKjhKtFhbhgxHgvEFdHy/GuRPo2SCJ4w1SFTN8H6FPI4m6qD/Jj20NWY1GkA==", + "dev": true, + "requires": { + "@fullhuman/postcss-purgecss": "^4.0.3", + "arg": "^5.0.0", + "bytes": "^3.0.0", + "chalk": "^4.1.1", + "chokidar": "^3.5.2", + "color": "^3.1.3", + "cosmiconfig": "^7.0.0", + "detective": "^5.2.0", + "didyoumean": "^1.2.1", + "dlv": "^1.1.3", + "fast-glob": "^3.2.5", + "fs-extra": "^10.0.0", + "glob-parent": "^6.0.0", + "html-tags": "^3.1.0", + "is-glob": "^4.0.1", + "lodash": "^4.17.21", + "lodash.topath": "^4.5.2", + "modern-normalize": "^1.1.0", + "node-emoji": "^1.8.1", + "normalize-path": "^3.0.0", + "object-hash": "^2.2.0", + "postcss-js": "^3.0.3", + "postcss-load-config": "^3.1.0", + "postcss-nested": "5.0.5", + "postcss-selector-parser": "^6.0.6", + "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", + "tmp": "^0.2.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "glob-parent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.0.tgz", + "integrity": "sha512-Hdd4287VEJcZXUwv1l8a+vXC1GjOQqXe+VS30w/ypihpcnu9M1n3xeYeJu5CBpeEQj2nAab2xxz28GuA3vp4Ww==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + } + } + }, + "teeny-request": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.1.1.tgz", + "integrity": "sha512-iwY6rkW5DDGq8hE2YgNQlKbptYpY5Nn2xecjQiNjOXWbKzPGUfmeUBCSQbbr306d7Z7U2N0TPl+/SwYRfua1Dg==", + "optional": true, + "requires": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "stream-events": "^1.0.5", + "uuid": "^8.0.0" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true + } + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "test-listen": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/test-listen/-/test-listen-1.1.0.tgz", + "integrity": "sha512-OyEVi981C1sb9NX1xayfgZls3p8QTDRwp06EcgxSgd1kktaENBW8dO15i8v/7Fi15j0IYQctJzk5J+hyEBId2w==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tiny-lru": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-7.0.6.tgz", + "integrity": "sha512-zNYO0Kvgn5rXzWpL0y3RS09sMK67eGaQj9805jlK9G6pSadfriTczzLHFXa/xcW4mIRfmlB9HyQ/+SgL0V1uow==" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==" + }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" + }, + "twilio": { + "version": "3.66.0", + "resolved": "https://registry.npmjs.org/twilio/-/twilio-3.66.0.tgz", + "integrity": "sha512-2jek7akXcRMusoR20EWA1+e5TQp9Ahosvo81wTUoeS7H24A1xbVQJV4LfSWQN4DLUY1oZ4d6tH2oCe/+ELcpNA==", + "requires": { + "axios": "^0.21.1", + "dayjs": "^1.8.29", + "https-proxy-agent": "^5.0.0", + "jsonwebtoken": "^8.5.1", + "lodash": "^4.17.21", + "q": "2.0.x", + "qs": "^6.9.4", + "rootpath": "^0.1.2", + "scmp": "^2.1.0", + "url-parse": "^1.5.0", + "xmlbuilder": "^13.0.2" + }, + "dependencies": { + "xmlbuilder": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", + "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==" + } + } + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.4.tgz", + "integrity": "sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "optional": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unload": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", + "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", + "requires": { + "@babel/runtime": "^7.6.2", + "detect-node": "^2.0.4" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, + "url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "url-parse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use-subscription": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", + "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", + "requires": { + "object-assign": "^4.1.1" + } + }, + "utf-8-validate": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz", + "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==", + "requires": { + "node-gyp-build": "^4.2.0" + } + }, + "util": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", + "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "v8-to-istanbul": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", + "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.x" + } + }, + "watchpack": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", + "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, + "weak-map": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz", + "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=" + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "requires": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "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-typed-array": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", + "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.2.tgz", + "integrity": "sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ==" + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "optional": true + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "xmldom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", + "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "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-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "zod": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.5.1.tgz", + "integrity": "sha512-Gg9GTai0iDHowuYM9VNhdFMmesgt44ufzqaE5CPHshpuK5fCzbibdqCnrWuYH6ZmOn/N+BlGmwZtVSijhKmhKw==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..19a22ac --- /dev/null +++ b/package.json @@ -0,0 +1,87 @@ +{ + "name": "my-fullstack-serverless-app", + "version": "1.0.0", + "scripts": { + "build": "next build", + "start": "next start", + "dev": "next", + "test": "jest --coverage", + "test:watch": "jest --watchAll", + "lint": "next lint" + }, + "dependencies": { + "@devoxa/paddle-sdk": "0.2.1", + "@fortawesome/fontawesome-pro": "file:./fontawesome/fortawesome-fontawesome-pro-5.15.3.tgz", + "@fortawesome/fontawesome-svg-core": "^1.2.35", + "@fortawesome/free-brands-svg-icons": "^5.15.3", + "@fortawesome/free-regular-svg-icons": "^5.15.3", + "@fortawesome/free-solid-svg-icons": "^5.15.3", + "@fortawesome/pro-duotone-svg-icons": "file:./fontawesome/fortawesome-pro-duotone-svg-icons-5.15.3.tgz", + "@fortawesome/pro-light-svg-icons": "file:./fontawesome/fortawesome-pro-light-svg-icons-5.15.3.tgz", + "@fortawesome/pro-regular-svg-icons": "file:./fontawesome/fortawesome-pro-regular-svg-icons-5.15.3.tgz", + "@fortawesome/pro-solid-svg-icons": "file:./fontawesome/fortawesome-pro-solid-svg-icons-5.15.3.tgz", + "@fortawesome/react-fontawesome": "^0.1.14", + "@headlessui/react": "1.3.0", + "@heroicons/react": "1.0.1", + "@supabase/supabase-js": "^1.18.0", + "aws-sdk": "2.934.0", + "axios": "0.21.1", + "babel-plugin-superjson-next": "0.3.0", + "clsx": "1.1.1", + "dotenv": "10.0.0", + "es6-promisify": "6.1.1", + "firebase-admin": "9.10.0", + "futoin-hkdf": "1.3.3", + "joi": "17.4.0", + "jose": "2.0.5", + "jotai": "^1.1.2", + "jsonwebtoken": "8.5.1", + "next": "11.0.1", + "nookies": "2.5.2", + "on-headers": "1.0.2", + "openid-client": "4.7.4", + "pino": "6.11.3", + "pino-pretty": "5.1.0", + "quirrel": "1.6.2", + "react": "17.0.2", + "react-dom": "17.0.2", + "react-gui": "^0.0.0-de24df473", + "react-hook-form": "7.9.0", + "react-query": "3.17.2", + "superjson": "1.7.4", + "twilio": "3.66.0" + }, + "devDependencies": { + "@tailwindcss/forms": "0.3.3", + "@tailwindcss/typography": "0.4.1", + "@testing-library/dom": "8.0.0", + "@testing-library/jest-dom": "5.14.1", + "@testing-library/react": "12.0.0", + "@testing-library/user-event": "13.1.9", + "@types/css-font-loading-module": "0.0.4", + "@types/es6-promisify": "6.0.0", + "@types/isomorphic-fetch": "0.0.35", + "@types/jest": "26.0.23", + "@types/jsonwebtoken": "8.5.2", + "@types/node": "15.12.4", + "@types/on-headers": "1.0.0", + "@types/pino": "6.3.8", + "@types/react": "17.0.11", + "@types/react-dom": "17.0.8", + "@types/set-cookie-parser": "2.4.0", + "@types/test-listen": "1.1.0", + "autoprefixer": "10.2.6", + "babel-jest": "27.0.5", + "eslint": "7.29.0", + "eslint-config-next": "11.0.1", + "isomorphic-fetch": "3.0.0", + "jest": "27.0.5", + "msw": "0.30.0", + "postcss": "8.3.5", + "react-refresh": "0.10.0", + "set-cookie-parser": "2.4.8", + "tailwindcss": "2.2.4", + "test-listen": "1.1.0", + "typescript": "4.3.4" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..aa92b4b --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + "tailwindcss": {}, + "autoprefixer": {}, + }, +}; diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..c2a49f4 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Allow: / diff --git a/public/static/favicon.ico b/public/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4965832f2c9b0605eaa189b7c7fb11124d24e48a GIT binary patch literal 15086 zcmeHOOH5Q(7(R0cc?bh2AT>N@1PWL!LLfZKyG5c!MTHoP7_p!sBz0k$?pjS;^lmgJ zU6^i~bWuZYHL)9$wuvEKm~qo~(5=Lvx5&Hv;?X#m}i|`yaGY4gX+&b>tew;gcnRQA1kp zBbm04SRuuE{Hn+&1wk%&g;?wja_Is#1gKoFlI7f`Gt}X*-nsMO30b_J@)EFNhzd1QM zdH&qFb9PVqQOx@clvc#KAu}^GrN`q5oP(8>m4UOcp`k&xwzkTio*p?kI4BPtIwX%B zJN69cGsm=x90<;Wmh-bs>43F}ro$}Of@8)4KHndLiR$nW?*{Rl72JPUqRr3ta6e#A z%DTEbi9N}+xPtd1juj8;(CJt3r9NOgb>KTuK|z7!JB_KsFW3(pBN4oh&M&}Nb$Ee2 z$-arA6a)CdsPj`M#1DS>fqj#KF%0q?w50GN4YbmMZIoF{e1yTR=4ablqXHBB2!`wM z1M1ke9+<);|AI;f=2^F1;G6Wfpql?1d5D4rMr?#f(=hkoH)U`6Gb)#xDLjoKjp)1;Js@2Iy5yk zMXUqj+gyk1i0yLjWS|3sM2-1ECc;MAz<4t0P53%7se$$+5Ex`L5TQO_MMXXi04UDIU+3*7Ez&X|mj9cFYBXqM{M;mw_ zpw>azP*qjMyNSD4hh)XZt$gqf8f?eRSFX8VQ4Y+H3jAtvyTrXr`qHAD6`m;aYmH2zOhJC~_*AuT} zvUxC38|JYN94i(05R)dVKgUQF$}#cxV7xZ4FULqFCNX*Forhgp*yr6;DsIk=ub0Hv zpk2L{9Q&|uI^b<6@i(Y+iSxeO_n**4nRLc`P!3ld5jL=nZRw6;DEJ*1z6Pvg+eW|$lnnjO zjd|8>6l{i~UxI244CGn2kK@cJ|#ecwgSyt&HKA2)z zrOO{op^o*-Tf7QLG>brICs=e3h z?&_`H??ONC({6I&EFhpDARyp1*&rx?EsS&c-!|F5#{PEyTX4dSaKnZX@B&JO1te63 z6gxNtWd0g?D18AXWg+DN9FTxMGDd6I@F_r8F2%Q5CJ?6B2whMPFf#C2ItU`j1PkcE zOCzoJ$F^TRd!4SUiCFXV89*Sgs%AXOrN<0{z{ddTBoTslra(aCDrGz|5f}Z$Nh3=r)RnazIv`| zHT+bG$cTwRjlWp|h`{KHBK37D#e#WcYZh5@0+@hSHgwqt14NNYYuGoDLzfl`#TC#ASuV{?RhZ5YeWaS6S=J~AOMN=kc+3)uWpxOLV<2|G zG-WMtVyorQnv$MbGT%I|9A=#oDiswmv-(nHyY`HDL+i^Dx7Cz7vu4Y4Cs|!h zkcf>a((|atH)2mj;CHj~>fu=qd$y>QwztjLQ-3_xOxTRvtU&JKfWD`2z5vz^XIPQw z-;$NA(_p^*yj6s89j8-nfkV~lXU;{=+r-cN;TtNEiv@-utM5^hX9BT5TABePhNkmSd=JM>?%!sQdCo^ z!qB!$FQ^<(F}Ajivl>Yo3rXOJbQ;CNL5##xHxwo9vM$eQ?j-!u#FFcDz-R3>sl#xJ z?xPkb7UjX}Lz2n~q@szWs*Gj#Qpf1RoGQJ<^jS8?$eI|j)$CMD)4WbYeJLP7OYE%3 z&w@hipUn`ths4Z|1RD)rMxDkY#dv`?5@qt;hhsinQiW%xKr$Z^H_un0XtHjYxY7RJ zA#9rYo&+Rkv1Gv~Tz|dGD5s)gWxEmW2#`40bcz1iX zBc}NBEHjo77VPDab-XlZ5gf=)q9x1`o}5krlaby;_hOw^jWQ{7o7z-Q{0d%g2zw}m zPdX-_nWq#j++-%PhZX67oSAj$8+BZNQIhG=y)Z#(w;Js0=T|naBPSA!4lmUd9!O#; zqy*1AfKwPjkpGnekFIA#=|t4NgZtI(l^6m zS0EeR!2D;u#7Hb*l?2h;LuQ%KKBb`1?bk}3a+5(Nq| zG@nVLmvbkk6;hXWE3K=-nUxE9Inu{gG82WVbI^_Oqhy3v#kTojfxLVON3tvfuKH-i z$lXi;Qpn!U``86{u-~B@-_F!Y>wB$uf_kB)$ zTWe8Zl`>A6NA^o1t7$mx)nASKau@X>NBOKGtkUmu@-v-og%i_{Jm4nRr$=YQlQ+Zw za{_cxRbKc8BGPycCsTo{{09%)yqW_^(~P)c6+6$x&>sekNG&pK0uFjs)n60^j?l14 zvi+AgBISu(Lb}}FRWUpiS}`G)@X!c4PKD;y=vsP3lk#?tH;0p>#3k^Vi#>|(lKLGo z*DG7(9G+*o+w6_!xQ2ezO4-EJ8V|bVeVN|4F-^n7a@F&DEKn`@0gLWE2wM$xyQ<)E zzQqX<)vReWS}c3`Ueqcw1N4ioba(Zc7VcC*zp78l@;mU+Ly#ftT5Qh4({uFL6b+xJ z`89{4aivY07{dDm)!3IM7THikJ`xdVkb-9-J*t?9O$>l3uoXlcN3e^nXLP6oP(vrWGkt8XWQ?sE-u-dct&*34=@ zlI~Qws-oqNA*it3-j;Dpz(})0Ps0V_5`$bzO{=Ra?R&?ky4}Ow&#Wo(e#^L%_|9xk zU0&|w2?hoW%Ls3k|B9fZJmz)_$Zd1t?QQwWaI(GH>g;dmte)(sR`wI66SXd;qni>g zwy72_rsuao;}ADkRK06rj#BF?TD9m!vCNeOB+W=M2FBth*cNQ)4luk?tE=vIc;~Z^4%m!Er9G|Nj96nP#HIhrbGh8 z*y}9EAM~@HgpiSo#6_ctg@Xa0q@n<3;XV-1A`%jk!oQ+8s%cr#9J{Xh{bY;#rKe+b zOJH@a{o|qI`{>cNt69#0BOVWkd)2(T#a?z&_NHT%EBTqDVk_HJb%q9AOezLz5xZ1T zvn%UAG6*-AkDZ#jVewa75}jta^%Pql&Xr|5*Ii^6ZXac@z9dpXjWVdPz7G*IIG9gR z*aCHS=(0Q)_fEJfHlCjUJe$1T|9RK!<=@$~=6vDbv2B^H#grT(MsN+6!80_<(#M`u zA7M$Y?*oT3L<+(hB7$NL7sC6u`8!gC49dRp{JA}MsOZ8oM72VUlBwy8D9PS*;_=7p zx7(G^L=Nk$FZdtBJWncost4W@2hwZ2{HalUhz0h?-QW3c=R1u6`4A$jc!LBJlZ4f} zK9X9Kj4^eJZvZ4^{SYd3;>wz~AydU+6&-eB7@2s7ubYpL&yRP0U;JK9=~32$Prh1T z{6B6=Wxo@6Gk^FZ7=!`Jo&`{X)Q5m{hR9LsLnNyIHW+k+Ksq8LYt%3PoHgZo&HEp-NbaAa#+znnOHXzdn@huIjC%|s$D}C( zS5SwYfn~I%uaULpIn=sH{f}=!YR-I%8NOdreyGD}jIVAKrzg^Kz3w%BJ=B^#wPlcu z_}N8x@iM?{7D}6S^xIBrZCMFUmj+CVy!40Yt1{5Bhf?-?;i{#l?VjpQbUCBY3vtP_6CRSEd%Xt(E z9Nj+!w$yg`krN3_RN3K!#;^4l3t*}ZM#+^pNwcbnpF#Ykz682uzg}{&B|irQ=8~W1 z{Z_iqe7b&C_f#{e-eh1)a^w}Wab8V-INeOXowyu*e6lX66J*uXZ4AIY6OB9*A>OMK zSQ8_Pa|{4}U>O7>$1=fUF%1zXCnjet46&;!RHXbcRaRAXadmkLx)v`2mK2l}}`TWz~iAR5O^1i8YO(!FD;JpPY&vu&U>%Smk+0l z5~qvY))MC^=hIyY%w*WBy$=_HLwJ#hF`b}45(@xH7(mSN&(n~!Wk|fOUCA@cwPcaa zH)b%av;Y$e0_wAE=i&Rt_1ez}Z|y{in9^ld4K`#xWZH^8+`>)kWTNrjaf-EI8HoW3 zGH<)WdEMKt@38Yoy78@#K?_RLf z@;s8IJ7Um7$_cl1|Lp#lHl?DuAFrMF{!^vwSrHmjGn*#tNu5`0U}|JtlhGMxCwi|j zmC3G2psA7Tsf4RkrCOmnvv@AERHRJv2PfCQlF?|mAU0DW&6KSKf6|=)$((=kwIXT$ zFtH)lzQ?=|=jSow`0 z^YAmqV)v;;iD^`HhV`D*be2Ewe!V0e7W%XGuOEij>J4*Do+!B-D>$SlGyB4?ki!WV z;0~C8g6YGH6KOAd@D}^h1_RrIr#FQ!L~PK5x>b~!UPbk~LrB^oMFcg1=#w8*W3}2d zv|F+HW zN0=J65Nk0O0+mc;xSzD&28h{i5$8=+mL(dFx5pySA~Y~_&|Oxt70mdu42G}{Pz>qP z2LJd7luo=Q@gfORaz%omZ&;>&NL36b8k~nK4Mo$kdk6k%LQ~Tj54AoWL1{?az@cbO z+Gt!lP#m$Rwrg>{P!QowBtj7xiyW#B?;tsk{M6<@aC^n=IdD$T-D&kH8+FT0J$t~W z7(B^<%Pa6;7(BEIeU3Q7pE*&SL1_?LLf_rl@s=B8Jme>;NkLtyVKwAMH+r{y>5=Aq z7YYv!lq<6+-zT3xGpt~i4x6(;10gExjjQkyaIsr#&%w-~rYVJ0a{WP0vx1>ABLs8e z(1xG{5ujtRiY)^whNPl^Udj|Qp{yDas@6l}HbJv!GK|)kF|#3UqFt5xg{#O9<3S#q zBB!8}%k+fq7_2?!c$lOVBBPUw=PQwj6`Qx8K!#UouN^&pO62`|z6z$NH$Wq7D_=@- zxKl)At_(8w-Hn)u;Rq%e625#6RPJGp^JD+2@;vo%;ct;8N4#MQgR}_Omch18m~Rv8 z-3H1AK2pKR`}I}J@xuMmP1(L+*{S9zb@miBo9y+NYXY7rB;6E!;Ev6Vb&E4J1ow|G zb%j%JS=5|qG#OtzHF|Zj8JJyHh!wKKM*SE&j*lP1TF#377Vy=(yZa>|m*Efjnb9!GZG(h}Vl3;;F&0Juj+fMMqD%4~s1Q zJ-DzSRzjYYN>8uF;bPF(eR)=@b#>}L6R+q$-UmG|wVQ@(}0TuOZ`Sp0Zy z=rBr0$)_}2y#z-(eo*a?zN}2>TuuW}ABA;b_h6^GhZfZ3}xhm|Dscli&Z?b4OHwEPn z`wgG2CT=VylX%B>=_bjKf(o_GXYAN6a)9f^gFIx=Ip2odciDl;#Dk$*vpt z@>7{qC3G9b;fn>&c5Elc$N?*X8K23SRA%E3`jYgCl3P%JO%mlkgxCe&l_!o}AwFEV z!YGMaIZ_STKnXYyNx&_}=MF2RnSS_^`AYe0-|&e~2d@L%v52kUza;(42bA7J$0Wvr zYk-*geab9bo`4U)<{Nv3D*GS7?~2VW^!(^?t4(tzK4B>S`T`k(5ELdV1{Kc_D}Kkw zH@<-;&Vg126I3iUuMsIGURw%HhAsxD0^UIV)!gyUgQY7)L2;kJPDdx9_dqDd$%%AHr2G;7g;yzmh)$ig?s~Hb<|=mO_1cH!TAP^kdZr zP@-`lVbC3L1*A>(hy~+B#z|qug1){=O`Jcqe{jqygu>&q5JeC*iiQLEPSh1;zNd&( z9F6h*kkyz&rZ9#QiC%JE12gtd%NMgJ=Fow{0O{fXO0o3WaO>|EI+4$(Hxv2^Q#qvv zT{-n7VDt60nro^3;c$JeQ}Y&&?B5p-El)(W1`^mr9G}b_?}#J>BnnK10Zs&)o0V2) zCpRjwQ>P?VXC^y=5U-O3Dks7LC6SZqiABrkBz`xFRZy6%C{$9k>IC&nj{0RcjCwqI zrA+QjZo?m#3fQ)GzfZ1LcXD>>K6$QD2cQMK=T&xWgT9m?BH2^*hoo*cwM$dmnWaBc zJC#PX4cCBZXsxB+G7%iw~EC)F78vYc=24q0A%!DOMt`74s? z$?ggW@ujz@R_V4nTT;SeJDuA+K-&k(tCI;sWKckC-kV&R*8CkdARl==_K~SikXMok z#2XJ`FqrA9Lb>L`Z&@Y87ElNpzXb9Knt64YAxmV)qmB@aybmx6A_wTdwQ~3`ZIB%SwGz?UDLH z1{>pEMD;M4G^1O_i39d-YU)J}SHcDY&K3RjReA2oX!55EQ_0q5Uk*}nxQY7$;4RNW z2*5kgQjVo=SFlLlq**N091W08$*H6-v3<@>GEnE0*2D*qT3?P z?06}lk=+kc?iK={J20jCQF%TwxJRuHvIR&3zQ|oPrjH-Q;5A0i6C#*>`%0E7yUblL z3sn~Ui*rhxv_SkhiF@Ak6he`F^e;jFx%h{zk7<`$ljHr{{H=sA>?ISfMdVr3^wbCE z$Fa#WIZDL6G6}tm=T5gDo{KwPM+%&x(8p-Vne+01UmaL~c-YZxU!9WIcs}}up#AIX zZ+~#iB`~;KL~e(ZFcFpz`Pir!GTJCh#-#2+{_jNj-I^0t|LEFyyP(&1UmU;lEP;0lg-)AhnLxn zp|{s3+Y4PsBxK}-nT>WuVHomc`AD=i+Z(?fncx|p>Nkd*GzpG25;24l3FQN@^;s3?Mk#K*?EO}%=l7(2$5l!F?UFdC#3z+n1vyVu8i zMZ2UUR|)vNRgBIMJNQ>|ueI4HHISG zCia}`u?-;edz&z$kM7>$KIak?hz@$^)G2-{j(MO-LcZ z7KjF&#CYwwUfDO3r=XF?6lqMa?gQ!iMpr}m2x3cG8WLEN1>dWIgZIj*Bz}G;sx;ye zWMTIh=4P>y(uF10S=rc|__vP+OGB$X+f=?!+0dMV7?Nal;-mRsRYUK$?uWOEM+sZ@ zk!KD`yzj`6Vvr}NudmQl)5>t4WE+Q!zi2`Ze>s1O=9_zaYk&eO03u+-{qaa+L}TV- zmJ&E*h>8&H5FR>I-d0Q!RP$9UBjUE1&5P6$wPYF?W6dKhxHU?aol(#2gTl19Ze>fU zBNpBD9~;3pvf+CGsa0NK3f?O~$#_6Oks;x60SJ8YkZ^qvmUt#Z@(xgSLh3->25Y2X z5D7$7WI+I6?t_%zGrCDn|D<+7cjIw=y%+EIH!w5+8-&KYs78q6=xW>K921ylK@>p| z2lz)8sUz!LFDJ_;+++SI7*Ra^cK5Mh`yeiGat;gv1R}VP85s-!77mEYgcJ&lhvuRr zKNPPXG>Iu+-O{!0t?KshT$4*30+P9}+M1A<-2|iZMJF5&@p9Wyew+C|Gvkej4Tc6o zj~Wcp)NLy#0NZxh>es&?@Cb2Eyt8MtRnJtqqsZ8vk?VX#W>j$Qt-~a2U&Cp-;d*eJ zka*%vz3Pbp^*gqVusswy1Gskb$Io(yub>$zYu@|p7o9LdUz13<@BmVe90eo1Yn`2nB zxK~CPMZW^TH}{I{NhpklI6w?c>FV)R zn_WO~dP!U+b3P(hFd`YKp)4qQUIrGUki&4As%viQKsW6;k=SF8`FntV9vyYryTk~I zdAxq_w2{f*uw!X5Vlw`f;xntE=5lw>Ka|$~$6h!WPwedKEzkB;+=J7*A|wnpjLd)o zOfiIMU|nJ5X~-d|{{=85{xEeR=^B`c%nZR$pw_h99ZTTSv|C=!ubOAah1qn-@Vn`7 zxKwBW8B-GlJN1v2R<*vY|62r5;EaRXit1ilE?;D!_cVzmRmc`(mX|&$aeO8jferjX z-<^rI4tFk7xTc&^p+dQ5ULPxl+2~WZODW8)D^{>+POqlLJn9D*HHQ7&T9De7%d3A_ zcdgg&gMO@mA!MwYk{+^2yU1~G?XO9e^z+4Gh{qn-Z9V8=YrLG%}|=Z1&_Xr6nphk zV%gHL+x)D&`@uRp6+J_jiw)~;as$HwMSjgQ<8U$_-_e|VQMyr2kSoCErB}y4lgUHNVx(-waNZU1lnmdiozc zR)fzvLti@%FQb<>Z{XXz3YViSJ+Xx4j6~%`&X9DJYVjn^3rkgQo9r*yw|z>OUAMrP zRoyB%o|!V@9g6-_Jjp`ZhzS@qR*DJ#vC?ShaZy!POkF}2j9=o>kVV~R?2LWh%b_5s zpbO%8jl}*{vEQhoWOLNQmTj9s(bZULX3B#s%V6bA?}~X!da7K@g^V$}D`d+@mt2>_ z+%u%k(<>`$%DbR4&jWc1pUdgXn=D;iRPhx%mjDyB?!X*X=%tfoqQPwS~&{1hB4XgMs*zigF*gUHg~O1^eBXgoaLT2Z{!Eu@*8 z8FTTd#XoIS`bfb@!Ngz+fA5c>#G{>4KMfymbQtv##J%%nZJVlKk?+`@tA_=E3Yn9_ zjZ7f6K1~);5+J6xon5*iZg9A|Hy^x(wl5VjtMS>b@*4|UTsF=KN#R*+75=CX_vdUv zk_!0?@h=pV_NO3`OD5j(!4I#gEi#Zp_glX&OQB9BC#okEQd7!_~ z8sD71bH|&0rEe(1?Fpxc%-M^@M%BO&uRAU4xVqpDCF|#dN`F;t%Uddm`(DkMCM-Ce zKGwh#C>9hnWW8vUqDxDa*DXy{*UpO+h>Vt$1X}{EnLmGoDjJ^(2q?rZU#^#!y$cK{ z|DmA}(Qp2T*8vJlB%g^Zkr63!2*ua{V%R>g*qmU{(K|q%ELFn9F+{Os#oWa+s3N01 zrY5H-snP6X7IVQFDrxxG-s8U~%^SC<+qi};hQRxW%a4SJPQruPG{MM}(mAg=GG+HU zqG&P1@-i_H@CUr}d{={BH)gFS>X)TfIc{=9pD9-@N}c0&Igem7FPkq)Q_b7Bo@+nh z?}jEgfBA(fht2!239_pfq|4-aBtRjei_5Vu)14zut;n}9O9bb3yjj!Pkp~Kahyp4+ zBoR;iBcd|BG{^$Ybi_HSR62`UON(_-y>+jX(09Gbq?W;Kft68rCFy)QR|9e*6U_~W zW5*`a!vjo>t3NSn7c6F=87JGRTEZ9APama&1)GCCpuzTWGW)9l6u>n&sNOr8Vc?i3-Ac)%jCcjs!r}KI!r)c+NG#9^|^`m zTKOTG5=G{0fR1ECyO0R>Lg$#ClpjMi@*xEXW?tv)oMW`s4eAJV|B6WDH+r7Enti3J zv^aCO&?>cJQ?a7BHuff(Pu9msuwhWBlYe#MRZZEKo=!#j_e(3L!7<6$g~Rj&LQJ&< zm_Y~00vy7yAu>Q&q}sGz35u!I4e*EF(%m`qu2xxm1-^fOZhW}46u|zB^bB_}NG4_F zd1W{iAW&2NL>K$Ntl$53Nx5Jdf){l#3Soh7P> z;zRp@`GQ8ibeaib1E`wB)oFO`}|d;ZptsHFI9EafkUh zXaiaOvFVXLmM}H{p~KRH2eC;ZJ*Y-DNMK898{VHkzuo>@9sAnK1bI3ZKD5YE2 zMz_H?fNT%9L&7v!jS>E|Fnct$)d2Vn!GP{qDo{k$yS#dxzM9ld0~R`_Zzuwdd|iv# za5y53NFmXfdRsDuLMK#Oqv2>Qg;Fm-Sd6`?+OguMK^P}oJTrA!k8sZ*X^Ck)&j|WJ zHa>~6tdEU#ibd@>>RGP;UZo4curiB(uFbhP>uZS4?6Yr61Ka)JFY9Fvot0y?4fY^H zRB? zt1MLy8HIONLKL3g zp@DYZNhp4d`GSaW3Ftk6onba*IHepfq_h!KW4hH8<~VVI;3bUGOp{pah5`;jv^jdQ zA0b|NTHQL{y9KBx%s>1--qLic`Rzz#TG=j$h(t1}JK0LMGZy2CMEV~;d4I#A(RhZL zd3xk4EaK8(v72rNODdI4r?ac!xFf~udg@PPv@pFit#BsjYI=T>g+vBVpyJFY(~C)z z^D-StYwfaOl#x~CZWt~nraJikzU$&hfOR2L*&gDOyX5uQr`E?|O&``a>KPlTUQ{)o z=WtOmEs^hd38k0SigimA6coIb=fZ8+h>JKG_ox2XuW~vzAtEB;0>uI{DijEZ2u72J z3JzJqvC@3x)_8vR$?!-c-!Z59<2i^yNf|)g9)-04RL@8+{t8Vq&#etpphMM-46KAHc*?g9ZX(h5rIpt&7ZsJk|_R1c$ zyb;|}xqve&2AG+xAp!aktKZCcYhWg8aCKssSN@6O`<6i=ZAi?A6ro>NPqWyOCKRHE zk<_hDVx~;#4bQcatEth}4#LMy6hg>;b2?k^%DdDwad2_UiQx z^2{}x&C6(jKZElHIi^23-%2Qw(!4WLoWP0!Hz!16YlFH}_#}_PfJwQ&Mf_mk1L5(7 z5cmmwFFwMC#cVL0iceWE-K~5gZo#S?N9+(CXx;p$3~ z2-n>?N)#}wB=lU2pa-k}Tw+jy;$&V4w}WOX#tt3t z)Tm*&Ak(3+5I|gBT9zi6rdhmd5jUEG6&fniG+%X;gm3g4Nh+R+7&%nY*~1Vv04`u) zSE5Id3PmbD5*cj}Cb7^1Zt@ONI6<8xWgH!tqFJ$)~qvSD@*WjjJD zo6Y6$-;7qacLHuaFinQsN+$VY(ToYV9?hqJ=D@$S^Y1S0q29y9{M!*0O{X$h?dHw& zyqgcROlXaov;HB;!qMG3PS7^#&nuSs+X5g2NqHq80LY|5p?Ksp(t32wkSNgqyc0)wsVDN-5pR??T0W8(mAK??Ifn^! zCB`il98^%hek!xH3uHgZRiHLvp?c9URc&&=z%n<59h~4u@UWW zA_!9TrFLVx=2y&b70q@E?aujE2DlHLmsSonPDWxwM4%dD#2iFD44P7r^P&<#TA_f; zdRaPYX#uDD`Wf$MBL@o-`wIAC=@iT6^QA9@l))&Fe4)J0Y5g>x1C%O5Weu~B&bKxsE1t{dGB`{ z#MF(kpd^oBz0lJiOV}tJnt2!PYcn)#*%gkNh+|TE+;=BD3THpb8^MaSC%pFIj%LV(FiW4$&o(gS9Ieh41^qizZMm9Mor=>mLE(Wbj4xnxJ z9)FuNGwqm-7NAGr6Oj-$Rf1kQ@CfGTcU_vewAdP1Dhq|A%Lykz603bSdkMqADS`X^tcCA4Eg=Uu}Gz{?Ewnj-y#9?V$U=`bcp8nEw#+K|;SL19E+-Nq-yh_;@8&TTgi0 zw0TsKXUX09ukFaSw_L2t4z&;Vt-`~*8>M*~ShZXuajBwqT@W1F-=irp9=l}~e7>N~ zg6it?a<|yzBZ@+bIX#AXP6Eod;1O5BZ$~@wnUv4$EICFBL{m?PEeD3e4Be?OBEkX$ zi-Pp}MaY2{_$K<(gSjq4=Q*v}Cvev}a^+2>Rc@o;ZiegCu{){f2kr?|Ke9UOrK(RF zWq1R_I@^-DdisW>AVYk$Z|&)bd7o-7<8Fydhjju5~ZoY&g2qJn~J;ElBI^2p>Q~Q#{X&8X>jb zue>#N4X*6fI|%VGXD*CoT461@t&>)40b-7s`D{7YzH2`itIQJU3E4*By$)J<6%w}i*)#+?UucNTv7Zyjj&(dz3*BFKK*x^v>yJBgbP0-d zFLI=}upxC)qT`gIqzp4eyg6^QB`e_aSW+Iu)%&20oD4yMY1fb&9fOY;d|V}rJt-@| zg$NPRt$u@cEE!H5PP`O0xwo}1d9Er$6XEAsG1d~RI!!_2l)PTh#fntJHuun;58TnT z<4v9aepfHfl@P0Yd*rbS=r;Ccu76PDSFj5UX0#i-UzG8#4m~KNdVw1W0|kVDkQ@G0 zXTno2WS52f{_-=H>W*Y~;6b%rWfYo@hOpNc|6ST~Qok?G&o$7i@ZFtG%Vi9}|#8oAG9BTF~dE}IYj`Tkk+}RQJ zi}0l;rq8mjNvM{syiNt3+4mh`E*-N^)yS-Ee7nR}>jD$DL3(0--lZL+7Y01_TW6XI zUUd-jwt9Lw6@h_TzW|E-x0J(Z{8sJ{WQSvPLvW!jMv&LJD%fV2M#O48tlRL^ zE_~y%dRtCXNLRBRD1n0=O{})9&nMN*1}R0*ES}ZS%(CqS(aDjXTu|;Q>TOkl`?aY^ zEuJU~_y%Xy83VENno-(TF6J?}Cd2PAV11LI!&mU${14!=J}$FQef!1hvsgN&o;IfEXVbW$J`CH$idsujp-C9j2eTwwGGGb|^i&o_e0Te`AE7oNA%*`Q?#{@RF@3kr{9L_<$B{y zUjgZ;Y&MV6^*{;js_kZnlU|zzn7_Z!Za`pwh~U5vey>h91F<&x@1HU6H7ZsYLzwjS`X&6`WaMhoJ6XY>kauA9aIIYVKYgtlCJ#l6s_i!0!G?_@m?#G}^Olk5RaROSy7)2TwteWcgY;y|8IsLO!9>N7`(qlaV zIf<_*GkuS5afowe8HW(kqZEtNx7mS(=9T6J{AIX0&anz)M=`ZY%7tiukp~+2S09DJ zes})*_O;;_{Lbgg@Aju-^{8bt*`4-h6V14-*PEEO9H4@IM7M(deZ)k2q=Ml9Y8I;K zbS9(zNcisv*=<9>ddEgGF!q?3Ng;pZe^|x@BpIvrtd2y3t1kW4@gHW)uM)$&X zM7Bgbw*DW-dscsFVp1SXgAX~JKLKbT<8{@x`+(N6;zcS)nocoBOx%t z_8j|^Ub)hLT1!_omL--Zt`T!r?-bk^Y>4j6F(bTu6{L} z?F5MYh|S@0Io=GBQv12p=5o?w-v~makK~@Ozl#)qi%cXMjE0RSE}dSlKOBk=J+uD@ z0+frFj*-w6V$jZ~V@wjbU(&Go93`CE=J075Wb@tiYRzqTF2RUWHiz47Zz08s({`(! zanl*{{}iXtNp-mAkR&9<`>FPfjH{^Ei21{&c1HA9gnL1l|FRTBMT70B6Ap+{yio0h zG>~9IJESq;ip|GmO}B<EDf}o#L(_5{!xj?(r#a7 z-IgY_J7ecNKW*vg71Y;R*}7Htc|UWuV8Z$6c$a0))P8F8NVraHw`cqO&>VG&eRaN( zC+m9{Il}3y@{M($iC;6Kno|KMSz0FGusO0ZeI=qY^JVT$+$_W&n>L^*~= z6EmaV@C%P2?q48th4fGP$|al{Sv#i8DU7P=Yx|BmNF)PcY|Mr5bi05M3=M6mnX%M_ zqJTm4jh~$h)wnpenXI)ILRA=MiTVEdSpQpWgb6087p2*_*HWNTv5ZkIEF=&l(A1y=V>d%5g7h5^_Zr8bmgcQaKw>(72&f8}Gl+gkqL<;R;2o zCZ6toa~7>?j?O`gd02FcO;BV6+XgoimT_uh1;z2wR1py=$~523m#^QN??fL;h_Amc zz#)404@dR<1>YcGFbsR;4F>R$_VPtY#3C?Aw+&#zCB{$`;eE*^P@(brb0fcb)Evhk$YTrbqb#9V6Os(v0e@move zA*vCJVy5D0R(CGkGPjFxHlg&IAIQQBpi01s7Pun_q+O!fo+nmQAmu)#_-19b5v$|% zjL+qK_$xxmY(}Te`Di^x%kBCbC;2d_s5~4-7-c;2xFp(AwR!qlz4>4+_z&6a_RaVG zamtESunTGW{JhUlEX(4QwZR+N_=4V)A-#AQy}X4|I8WS#cV2?&f!9QC*^ z-1)0ltb{l}*v_;p7;2j=WG2h0HkhPRe!c2(-P5SrRPRRX;Y#)k4)2#ixvVF~(seF) zcwh>(+P~8Xo7H?Jy!iKOgq#lNi}@uG)U*Wo1i5dVQ|8-PqC!yMY>+2x?Kv zxwUf^QZA{?S8m2tt!~&F@hpE+O$^ONtwH7yETd@V8GHKzf!?)Py!Ia%ill7BIi!0? zIl7j37~=u{%m3cKAq_J9&&CaKjfMmQ66B@r_9FfR0>ma~`FC6dqFe!A6$6pb|HTD! zHh>`*3}d1#anCYojenf3^-#*kv2AYn`K4KD;Ez*&Sm4Y4%H%mzMDWl?$$M7e*^Ry&+LkqeQLZOdE*x}NnEkAEJMbwIq^hXt9r< z1)(J`Fm~&ec+`zIV24qUxpVPmLv(+44?ej#Wo9iQ-H+9IYh|(v*3NBR-uAh5P#LTI zsbS4+EOxTYz+IvrbIivMPsP+3f7eA3wd*Wi%g6DEs;@QMjmM#XJk$h_DJZD1nt9H) zIZl4vRe@A1y+^*rSSRM#T;y7t;H?I>2@OiOfA`G_U5~i`2^J1`4oMvB7?jV`s|GEj zA(w(g8pOn~$Cx83CGp$3P`tZiNMQ(O$l{P_tiDacf0b%Z54|0;y1kuv$hdjUKS zbLo1v2#kwExb+!g3O*IIP*&4aGUkm>pVgyV** z8;?|K+FzFlWs_HTD=!(5o&=yIU=h*<3#V`tQPX?(uV4idbO{rO|8sv7RS5wCZCbD< zR?IUN^Iz2~-`9=q5G;sr|KF4&8;>?^q#paf<*(RbAI)9R?D^K~r!1P>qAc!&9dsx{ zCz4)Ti4fJYS^O6C&-Mw-*QXOg!C=Y9@Ly=q#3>w8nq|{O3-%BwAtU+@?j#Y?W=tB^ z2x+6305QV|WeT-_lGyXPE86&iVEliOAOF}_8WjPumPC%StK2m&J%=NO2ClaXc&TDVPrAY6kcA|N8bw<1Q$F^^^8Heb^DDF*+H`$Kv3zxUHL|1+hYJ9&3KPygx&03n7TBaZ(6Gn@a98h60|sBu>^ zsLh!WC{*aS*Jbk;1lV^Qox8*v%gW5shs#~K?Xw5-Ve=n6Um;oe({}?rDq-c3+zuAG2yDAKJ(LgwL(*?tZGeFBEBbD_IzrxMmxymJYAn^QrrqBqUgE3Qa(y#RM1OTERBI?=`^#6Rz z&S}bxM4m#F|E-U1M(~^99VTOdfkl}Ws*Mx#4nYy6;~I;Qg6Bmz|4R=1;r9z>2HVG8xSOqK&7Pf3uV5#$q7fFYNNI$@;wA01q+ycaisJD!r+8C#oMoZNi& z{YNAU+N1o{+7yNATCKN|1j~DP=)dA>PgtYwHiqbzM0ogpspp=z{QGEIF0bJEly$%M zXOy1{tH0b%PNA>>h=!IpdI;ygV&sRS?J7n?(gZ41?Ef;jeidRyh7(7D1(?g#QfiX5_Y@V%o9epj+0H~zhxz~v=7yz>(%C8lH%*TuV!QxTmS;?cjU9W z!pefAO1xa_A}q}>FS0W<4a#*|x!cWf+~VE1=6~=SR9Ti~8e%USkkzSwF{I4KRsUn@CF^N^ zOzw5*MMuV?T)OhL8Ih47H}sBEQkY+g9)Zu$;BpDShe5!4mZGcJ;1PR%<$p~ze82u= z=eN?k?{H)Pz>WEWoBnYN2Sj!c$AyDQE#pEGIPY;^6FP4}2G}kQl{;FE4E&0<&jk^% zEKdHO`*vx}t6&@lFL)i?;^KwHn3(-|fvC9pyd+~(F~ze|dZNBXvR(D4vX1^?iPA0C ztC)<>&*xXfsfuZszTZm=ykDt&(yPijzxcIV-AY_w0Alp8CVPzzH zmNA1`%sL-qNY>PzsyoUG_kp5lI_S7!XkJi`s#JrVD{U%L!)yqJ<2o`w%0jJ%)HUD)3HJZmM{U5M9eAG%`Z8%Ei{zI z+9u2YPn`}800b5Y4h04W2#F6UBqEV0XgCyt39V+c=D0U>Osb6HjmTRtdCsP>VPtyl z7`PTbJrI*m0QT!3!6*r+$t*FV;|uUy7yS<4kjn^eqaZ{WZkcl-rd9vj>eNM-N~&@b z)s5yJ8EYvKoEMQ@lYC_uTVh5lD1?;D%3b@~Yk%zkQrH)LM;kFH`tJ@$8EsX~f8gYh zF@|igHH`)ae_}KECVyxhdO;pNGci|w1L2~5M{5VYTuY9pc)QK`R<%|L(MJ=fT)AlQ zu<{y-suoy_Mqer%90Iy#Yoh*bXcgR6Vpjj{dmD=PCZ5)2_~fBAS{^d4LB6>3XciR? z5}C9dv@$IV~badpxyqb)i~5(N1NL9hD59e;qeemrCWP{y14eQn4>G zftXq*r=3aSs(X>JWMaBOrJ9r^E?8C;;xSXL5KjE+xlb)D(>tucQ4%C3XSmIwSG&i^{!QYmL2WuQe5cHr?TeSBhsANDTxgzdPbJGIq8yVC&GJ^02-W^Q zbyhKRsT=rkYA_>VS*DF!W(HJB61&Qkxh~+JfmHglDE=3_E@0sKrp77`aPZti9e7Gp z)5+UIIMCEXrP9MxVsnc;-W&uwSNyx75ssprl-=Qa9?&^)3>2(hB_D0;mHIMNhGp;Q zpLH6(+?+&SkNYe4R%FTXb*#LoL?3NEy?C3e*CFb# z0ObXI!fr^=*!ilXa4@?2B|g;HeuwXjIL(oJ6a1>W=B0Y7)ahorhXMP* zgI+TuVR3-7IqJ`K$4VMvOS0DpdTRpSE4vh>`BY`L>q zctftkj--#=yd;Ete@hy!Rau}0&IxaPV2-xOX??z&ILmPCZ}*9z-|!Lxzx2WjVaoo~ zb@JmdNQqWNxgf&Q8dMU0&pGRXt=Ec#tinxeT_iQn5cK$j*bNgORc?UI&3oNtgy&ko zvfTAfAAi5A1RH!Dji94B+aar|mM|7@u3 zw(m6Gdf|Che~st!-QBO*r+7MW=A}GxT-h9!#6f_r&bt?RFNIlw#&pu}7~ES4nI}NM)P=W9icb0-3Q_ zDW+wH4a~fvKEG0Z8>d&BGA+^ebw=!`xwoKWt1HcG(*U`iREg61Bavqm{8?o}e7Vv3 zrxY@;9;Z?E{ajpGt$l=cV74#{gpxOBV5wf$cuNHz-?s&n81y7>e`d%2H1^(yH z*+x45`GbPAaw8|;ML3gjyXa-IvkDcLY0iY@Wv?rWC$nR0%!aXiF2OeO^(2^ggGA)S zFwOv5+PPh?B9(u6tA+kQ>0$MsxYsG`xa*Svn6SvssdSshEQ>ys>gLiCQieNm2Ppc# zL*gKobz_s$D{Pte)!anJ{ zX9M1u`*N8eehhFHnO%2hiFc&R{L~uj3^i9q`Fa23tg{>3n`g!O)nsT(<`X?2RKhQQ zITjvH@7 z13M{kkv9V4I!mEg51i}avP8skl5f8gwHIQ&4l&EE0yY?NCF!!(!ea=2AeqfH&w2R% zlELgR>8t#j)%s_-O{>l~gaq~EAP&PUMIziC%DkO9z2nZ%BF;av9`JeHE8@r!+|ZfC z<7BZ7sJ%gb!pt#s5j0L}v2eR%6a^OMVU+qHB`NjD%){yfkY(Y1j67WOA%bELF(GD7 zct5ifVhDDA!jqB4u?e7@ZAkfQ^rl1WZ(M}E86qAp zY%W{v>3Q(^Oc3aLVwMXNAh5b-sZ^6dz{+ZaVUuRtw~Zgxoj(7rREH9kHgz^CH)_A~ znj2IlyMh&&@&`GN`Oqm*eG$Q4sc5!71n=ufLwt#UBTf_*c(T&|F*+Udtq_LSeM*Lo zc|iOYVlJY{HSoO%!5SIIAYh1N7bYy6@237j&01MEr;?=y^LWO%Z3>U*d5^D~<4>5X zuT?Jh&B(T{wcqk_&+?d;OCoos6yb;@Duh#7xpIIa3n$TeC6J7fVn{yWbdikrlcswk zilI@AWLVeqv$<?|c% zEJyl;7gX*Gx+sEpxKR%m(8+_I>||IeI4c1!Z&5J5)GZmFXIco*%3&v^ognFb`Eez> zn7fR*sCy;2*wY;@=bus~;Ys1^eaXHjK55huFD7FOEGV}Js{bHSC+W=~*uJ|+DA=2z zNb5(yXYNd3r1c<1$n2UzF2N%fyfaQ_dFA+=D<5er^V{Y>9l%6o~s;O zoQgYPOB_P3dCi8_zF?jnLQCFKOW(*RcIS(c^-e!+p%{b(fSXbvwu2!><^#}3YDSaN|cq4(+M6+rVm0Y1tGhy)htLzAzd&wnT$!I zu3j~@o|-SA)Q(OAs%41%!J0Qu+>h&zfXPnuXJnRJ`q1gG7|RQGhLTs>&=UnQRJDLphy`HDL_-zjCF2Aj3I${;^>tr)l#VJIfhrt{E-sNKBAG5WmLfQw zDomv!K&2{V)tes6Pe%FX8+2`r$I;>}HKhZ_YhiV|;j-(Jocj?G`;yUo8{#@g0&Z?r zxG0y2d3uFS&c3IEgX{Ccn*> zf6it%l?~UCfjs@qeHiGS+z-CnQB}}GW>X=Jg}o%;H|11fVc@px^{#>b?I3r*hs%#1D8uWTau7>zC9(Qv9-2fK#RKv0Y@?p!7*gg-co zFju{Oxouif^-QK#E2ez(5GBU8++qN5V+3x2Z=ZcD)A7rJf43guW(%0lCn*Gameg`V z$>L0;bYcq^j0}qn$7oxOW!G2!raV9M^MN{X*H8R$b+_sJ4c%%|jp)Y~{CZvbZ0wOG z4)t*=5`A3m-ZF=BxUDgHnU>JO{O1b4i3&1{w3t;6E|!uhs{~|RSx#6=)CWwA4aUyI z@c3^7He!wqot=}uMG3y23xc8v1dSGHWYb@Zlq4~+1Xk_FDRl)CYs=@&gr;vDL2(fv zLYHBr8hDZ+0hr*az$s?<#wn{YEbBEbYg!UnyfC74f^^+NcAORb^`Y8BIixr zG2fSSp2wUS>Usj%tg{`t&ZOYrH`*;V@Rq`77D2o~N}@E8!49;`2f!z#zyMw|<|cDR ziDYPs2@tk^Y*|LXaOj7X4b}8lukGbtx)IHnSdHnOttFzTCjB@Mcv#yxf}#et`2evS zVS8)k&$}^y_vSy>_)fTrU-KH-13ZttJ9f&s(z_OTGYA?GV@u`&$mG)jb{Cpxf1Ucc zWMoX&-|-c{^h-O?LkZ9ENke>GP(>zgisO*iW40}nz}4rhO;Avvpe8S0I4^9}I+g68 zABjcHuE(zJRd?#>oI9Ic$%Uf5mp9W||8gS)V~&mtGsw*BKw_9cA{1pOF(;wK2uX>h zR!cqzpJ-HX$BBhgsW{BeT|tMTx4+2|t%WL#5-ND@bkKr!sGd2GFXcF~D5bJ!uC1r! zp3WBy_~pRc&Z8YNNK%Ol1yAJXT`u4s*3{7Ls8562DdncqXf{wdzPm2l*aiM=hgMZG zkw%^8u8n%+ze!j!CG};`+<>NyqpQbJV$zC$u_mr8AgFUOAPAiISET@4RmF8sHRM8w z;74p4MW*MuA7IYqEC;zgb`|~ z?IT{V)I&C{S|=DdONJ6}JFuj$$=BB>KUYHNsKD4hoZbjoW&t*g zW*tijxpJ;1AvF5pWOC_m=q56X9ri5K1B?XK3SvgPV_$r2`r2N+_V7&!TfabHkDM+ z)4YUeX&YC}!x-%Nb$?T~^a+n5)DE~K=nVQsTLN5x76q$f2deM0Fh0SOgz%|obBWhR z{NaI)Ez)TUgbHV(5eEgq&Z3DRV>1!eWE025?yxAC+b zjAZA=LP~@NkJDmq*!N6O5Ic4Q2)N)^xAHmzN@wJ+2V8D`v#hcQof<8&_>;R=@sr|&y!toGwj(2 zb@4Zgba$7-Z-#@;F<64@v_0&d<6pusj0JJnS%iI)_8s%G*f!?9M4;p&WmMR zw~4NO`1-Zk)OX*naNqjg&6DT*?mxIV==R_dB18pXBn1V5P%@1Xjo$b(Gmye`7;25V z>Cj7fuyZkfIuA)^9gAu%%WggoMl9RLk`=~4XO>_#7^$)rb%c>gM%Ty!%FuM9ibN+o z{{x0V(A&0?14AkqV^AEShl?8c{-dNth&c=!ivEsu{5}f$X>*q{ocFtii6BlTd}J0) zkKK8TzbmQE>oEHajP(>7{>zKQ3-%wx#;`vL)tb$w*$rX_0%Q-QJwf^=;ZY!Y<^E!r zc$IpXIe!?dex)q!Ph2R`XW6sQ7gr|bJG=-nCYypRfmg{cBr-U!;lh|bqh}~Rx^mqg z_WT|O=*gH+ZONg3>|sYCT~xrBxb&NT7)zIQEI)(}-N{ z6M>{3l^l;W`gPI3&X=)&F`83|bS)=$8V-t6%}J0NEH$|;e<#w${aC?%mDm2bmRv|J zCfE5B4;pxG4Y7!%;kvh6o2VbInO5j@%8Ri-UX9PkI{njA-QnAE0z&ps?rS3Amzev!Z%?$7}+{~AjIide3?(+$o-N=7S9s?@JrL}&} zV!>-dNxxD56g@&HX^sCZ?=fm0J7Cvz$3BJ>yMY{U%H}z-#+7)5?_tVcQefNlAoHAF z;#{w?@&E;`jk)&njjEMZOB2pE=uw_kuT45qv0}#c1PXha7KmC4 zW_0jqLcK!c1KC*GKC^H_{h9Y+k|Tg?3P>c2Mm5h#o#!95lndS&;52;{C(!mm_ z%HC8a{moO)N9|J^H?MgZdd{KbsMkC~>*XaPjG~`CKR~}3{@Q8a)3s+TYvtS4)QB?W z-w}t4IIpSl{ki#*J#pkjJQ(@fNHk{G@{_8t%xSvIToWfB;91yQOV{xo*xaTpV zgCiW5cieeG!@WulEDW!uQB^YBMMI-+Og;#-ocUnWeNVTkzG}btsf1qJ60MQAZO;%iZd&^_Hp|)``|f*1oGJb;F!e;Qc~R>{A-b!}GTe|r;35mmdZaD0 zi3&ujxrw*Iym*+(`-ln+4NfR*9utjdRGcB}ks~1Ts_n2fIUZTs`ifZN_n%e59+*N5 zS2yoeKPSnf6Aj{2CTmj(<$I90Q@IaHq$0iI@_(Ism5mYW8E>(ejEfBhSjf3VW9N;S zr!tOms;T!wjFF5(%z@)%7Hx==$Ze^$_H+WHpN%S*?AD>)5Klg*4@}Ej0^RVV{ z-j20QynLJT;ewu~W`K5ry(YjE1LIwuv^ZTMj;ESn?;dP@WI8(9KuJlNoi4CL}TBY;mA3Q zC1oNT&J6!?5j2fT_41$b!Ar8XL3x{|MEf2!#^a=o!o>ggTuCnU8t-2@TvXp5Ne;-W>gS+$ts3iZH})O!XCh4oDBHQ9&DArqK)mWOI` zEL?ME`}Q0i>#JTj+^zmY?CB-f-JeMUR*NWD$SE4;-C9K)ZG^~wM@yGMEglDM*OPiL+!c>>~q`Cy8Iy(`6_JGs~2Z} zrN;_-W#&&Xj>PwzUHOr$s#3cmFJ*US-AX?{UtLLE@okB1hSk|J?PXg#CEpW!R_`(F z1#{CWOWMW03WY`5DF~Z4Bokb@f)7g*NO8VSE*|C}P( z7p)(H-sx+~&=Llz=G;=Rpp~SRIY1GmbZ6NC` zs^5+aGp9!%+tZ`p3|`Ba-mBPJSWw!c;i(b@1AFYyi@xw_L0Q|J`eXX+5pQ#3mt|3K zZ`3@D$y)9?$d1Wh(M_`JX6X`YCsD`N(W>OJC0_U=%5=aVenz5UzdtxO0T=Y}WlAlSI18bZOH%$lZbKHWhKn*mXHzkAHVkf*`y;xftm7`A1OwbO<{l3B{Ml zlv25HLKweEq*iZZ&ig>yG!yHi=^~vSF)~AV7+^1 z?_7aSiLX#dX;`C_CRMr0q&iEDc62x_(t<6iee9%oOspAU+9;v)%!!c(d~&o2Nt&=_ zl~Cv1<-eyF7VoD9@IHU!+(!`EjhP7dv#7c8bx+-tVFD);Yo5HPg@_3aajc*jJtOgfoRI?hK_O0}YK z9j=pgt$v*lvU`E~JiPJiD!d1)&7Jns4#%UFY&Z9*Gu@K|te^(4!{31egAgYO3J*`Bu_A#4xc+gD>rW}!ogIOvi z!9nbZf^7>_nIARk7@f<^yV0Z!iIGT-B!VQ7XhEcmXo4}(K+yvzQKU@4@;7^;w4fq{ z*~O_TS^JFCD7L+_J2SOe$ec()6AQ;gsaArv>6lu1LeEx9KSj=)=g84X)^_nA?s|rJ znhPcu%LZz5+;PuEs23V)g!i;t$AZPYwhC@QP@tlOwfoHhASwbAR3WHMD2PBHDpNtr zxFUmE!TCf#HRlJQG)BumvDmIPh#K)L#0GFL@2%;MRUrvSeCvr6spBI3cXGAO!a>D? z7H;Y<9NYYPQO~^)Ob0d~OvESuaD*;``l~to55F)8l0oV3n=m-8-(Vq-v!=;4zG$do zKw{Q7`8BskyRiHej--V@2^C47#Pk8T?P}X!VR#w$gH3iSBxa0C%=CT${V#AZkr!=R z^=`xq5Aea%tHTqsnRuN(St~&8FER?b0SVcoNvoH19RW;4vnqTLwHNFByrEg@&{Zz( zDd3FucNu)LML#DX{O4o5n*b3}lFA+JjzI}i&t9RP=GQN@feX=>HF|NdC|Vjmi@|Z; z{k5&WKiRD)2I9{q2lND1Dc${`mLi`X6;8t^Q_t6vgqqvQE>~>>0L<1xS=hebl(6PQfiKQze)>p_dq;-%O zPTB>+0@4cH8Yjp5GFFjhj8$O+uwGh#$%(*@Ak{%sYkIzl7-7F99ilulCWa=k5o_l3 z?S|lpT2d-J@3KW05rmmy4cG zREkwu#CAw6s}{B)W$SrCi=^o{tW8uWDag8#m>94N`(Wadh#0d&8@VK;Vy=)|Ys~i! zAds4J*P_V&mJMG$MaX;no2NfD^&d(U06-#XKd*J#b==8QlEeKI zIn>Lu>zkz8vD?!0dgrL8)|YQK8}x8K1~cIbmDU^@dwL4y*G~&D;U6~MkYNUb?i^q# z=70%~F`C9Oh%hkY9STKYWpllW#I+M42}8NWFo-B07`5tuQ$TwkBFErk^j40eicYC# zz5X6;>oh)1S=|*?UD2_D#id}~ZHiSj_gXFi!q{C|M+z+VUFX2|WU~z4nR|T=yvWUxk4S~l*qSPO!phCK+sS}tkL6l4V z9bp_lTD@Ze_sf_jnV6ZK{5A+6fIyOryS5I6v&I_5|AN5(bB{uuz=0x_WMXFi583p9! zD#>qX+6lr*V01QEIKwY5CD{l!=a&U%^f+~(3_&oU=yG)*sS%_K367v(bV939QZDXh zI6ELsU}E$d->b{`M;A!|etLCG^@bxDasxBsn*b4P}s)95UNFvhGn7Vbpc$9-wl$y zB?^<;n&WXqUL@j826x&{ZMYyEjan0aXlFkQy$ZP zujSnC9I19fwfoXNxMp;~dy$ms%5D4*Ag7FCoQJgP+Et=ANGfHB&qWU!znzHHy*a6B zb2~6@#hGA~O!wPLjK1qN2}15K)CrEDBxo)~4R?x|_XHSUcd2w=S%t^PDn!hTe?*mfg{&nt9UvqU24Lo|qfUl72gj^Y!2)!ioo(cgxXGmJHCc;xa)EhFv&s7wh(3~%(gp^#p;nLrq z$tzfnZ;9I=%e1K2jZvabV^V}^^-vH$aI1CS_U`aja`%^4vxP?d+hLw>s6>qL80N6v zui=+%nlghEZTlDmycgFT-uD!6s3oI?F_;_wdwe=%5sjz5?Ov&a@MSvBeEa+jRWbYq zV{IkqDaPXduK6%L(wqLrVvK&8@z_8^Mq~HPFZc zoPa#Yyel`n#;ClrC2P2Tu@D%?vdN_Y8GXtENldbdQ-7Qc1W+xrvc>=!u0K)Zv&%y0 zNw(%_vbrogo)Ey+u)X3gQ!K+=0M#(Cy|NBVEX$gZ<=|{6!hkkdsI$OW?SW`WW&Vz% zWF#o*0}Xj7hqGX@6-j7#^FktT4kd-9z3eH zP5fb~`*VEN{Dzv^)Ty9{CY`6BU|ab`h@e_>saY|$WHl)_A0?*wIfca+F~2Q9YPe( z5uKpUVI3jfOyrRu*j?=l@u^K|@MB!+6WNVKwU*;W{Vf-ci=ij7C>F*1lTjUWv1?Bn~C7SXJ@K*F@LDJof`|I@0K_mC&X$EUP^WMz#XvxI|Ej)V@P{Uz^gTB?} z`)}Tube6)VnfIEK0fr%L9~`&C{o{+O7L#F62%Hz4y4rP2M54oRG{C!Pp6zwk&+DrH zclod9LXH-y6b>Ae4t}ed;y!hbA0L2Fg8(IRd8z##@QBTB=-m{X>^j+q!*PPVMt1xV zB{VHo+oG(rwz#_7-T=cWNk_-(axhk;&Nm0$7F>>FKrwD#Bks^cZqFoVY~22DEQL;s z;Q}A2Tt6k}GNt{n)^S+e&jJ7>xxR^w#_C^srD>0j9WQLPZUhlOItpVa(CQm--9MnS zUJWD_NamrFtEs|U!^vzPLS2Y8ieqRDhWr!hI z$_HR^XgDlI?l+w_U*UPwckJWvr9a^GsNc%p^$rizow?xefUJNe1wzvpUXS%pP8pET zxqW0FYDYtMra7AP%H;5Vj)mlRSZ4V1qCS8NuApCO=p*iZrT;)BYMBw&ex~R90gf-% zhpkn$#fml%4PMlw-Fd3%zSUyY9Y>d`BIxh4xExZKujcyXTA$Dfde=24>1m3d)o@>` zggIJAq+(UgZe_Y3woCiG6Gu5ea)Qm^IX(L*jyb}C?)CxGBQsg2hnqUHg{r>9vP$#A zCVyt;7{e+vCq}X_)A_hCJ2@vd<32yFqFWgkK8sSXtpLvgwB4%E+px@h@zA1(dIVP5 z0c5b*6q&|)8z?mZ>}07x_sv)^GU;w)55wiq!g`W9ENasaTA074r#FmL=AIcL0`UQu z&NbQd@jzLus_LFrDrCFrgQ6zbPv!OE;tK*~^tTsJ0=EEfusadKy&o~y-1q*5D(pz1 z)ptX@x{HFn4*#%9jzCc@5sr-hWl|g{ugJ)zP9T zIEgo$C;Xg*mKlh+ArjzS?O7XK-o-IefhOfZmv2DaGcf*soWZ;5SS8(o1qpe4Fks9Azm57~NrRV2DagW7_$Zm2%O)xPe}%u?{P1+QQ8CFiqsp&(mDSZ_be8rUuZ z)`XA+VHbifLKd2-g^_GeXmdqcFRBHoc0<~4nr6`SnBDgHU#ZCbx;W%}yNs zGd&8eqx8L7HtzvQPQ)O$BDp8=Q@FtBK1f}~;O>)qB;7XbOF>DY`16@w1^Uf>E9Hy9 z#UW8kR_8lpeCgu?==p$);yX$H5vd+s0~Y1qjeA|{Ko-!FCwLLk=2?$V)1%a+mh0z( zGZVBh#un14ehDME(Q337Hhh}|3|=3*vVEA?zu=wntnp#;-5xcM6=tbPZ=XTpfH#cYdyu9tXe}4*|bmRSw82LTg-Sh7Bsovc& zeNQVL*}ukt<9R-k!FN5*r09NP!}A4=;86lW0CM7gPa@zaUhf;*hiVEEK{iD5MLQO2 z!q&ZGCuma8BGFQkFTM%bjO;)@Halap!LEzl60=OUQ+|a3WQXPow*s+5f1pdzox?4G z^8$B*vx75)bBtTUdF2`4IpDeAiS!JS526jA@AHQ;L$pKmLv%#+O?*g)XoLSi+Cut7 znn3bEZ-ib9y&iC#?+l_N=nnV>WpQ;xFK{2c3eySG3)3d+ma)@(1$)Xha2MQ$)d_S3^_>?ZE!?0q{Za0(b*n z6Id@;m#Be!;3rWN{bR_0C$dh^OV|$cBpe_+muDzGV3 z?zD#&e#g-?8t8|#wOEi3+74@o{lKQQ3E_#HQ4jEe)mAU~hGlCDc!M3`1ANt*@QSuD zsn84lIxFxE^E6xV1r?(Y_>4`(qZjiHU-i=jcWp7C`&>NN!AdB*1B5;U8XE0v?H1nW3!KZ1IQChHJoo*_ z=HPTl;0^vOfI?tWYUTZ{nKmqeXHZ%%An7YCLFnIB>zW&4l{KO81f%e{qq6Ry;7f5> z68~KCEmm(1TPf>&!2@E(chmi(f5uc+)y0Nnj9)X7lO$t%Nz;#MNceaMAuLR!jn!kU}!#L zLYG~mWucmEPcTzQm6*5$A0zw$pAEmIk}q3q}BIuSq^35 zaso5<_@iR##57#?M?xk-#0u9JQ0vBu3o5K;d`&ljX$rh&ocErt)t{14rU=eT#^_qf z*lI1Xl461rV!;aC*r%F&71Sj#x%0QU!><&l0(J*?LJ5B%&aCDnWEJPSW&|ZOvlgGN zny`{l90f(Fs0)JPy7oWnG%T)tj96$O#s6BtScw{sM2Xo)^8RHnWVE3%RykH$HKs0v zK+0mdcTpV}!o-}fN&4&H(CLm0E13Y1x}tExW~4x0q!5Bzi{X&4icEzrF}&1pOpkrOB6lo(JF7{__e;vOB92K?^_nWy47BHPeOl9jsmO{d-&3ak+qFEY znn;OVia?olhc7wKf(Mc|&Sk1>pu7(JvL1wSNogJ=F@$N1wZx$xk8sps!>t5;Y(cgH z1n*DgUTqW~>_CW~6w4eEVr`HUQ)5FkiyRvo<`-dixmTXPo~Gf(;gi*4?5Iq6q>@oa z+BYdd!8hb9A8X^>CjuoH>!2U6n0UEQK)UOZ(7yzNYGhr&D%%iLE$|#gNQzWw`yX zT;_q(FSrER&&LEtCv3fcqYrGsc0u0}>evPy-?8NODxH6AP_vsChdNyTND`)w?LcDx zNYroYq+9xv`2)=t?V=-?-Z#l1pgL)l=LI6uOr~1Y37L)0v2)W6t~PsIO9Z7nza36z zohgeYCJGJnRE`6>(pS|~kXNH<^2jBw;p0M7iQ-eUY!5bKdoTUFOPnOFOw=|APGTk| z!$d^5OR15&x~fbwZX~`@k$1!RwRG>~CQWe$wZ9~cMv8dhrY>JG-EW$KI-n)`LXVvm zf|)#{@-Xl-di!GlO4lNjsv(!Q_{23~)|rsIDJ5@N!qto>W+XzH)X%#V_c*q#+=EC7baqm+^Rft=@6}+RsLv_6EuulJQ zk|!)i{1-Y@A{rz1qSPW-(8CPNAGjd<=2+%%R9~oemWLF*E0SvJmhiosbS`FHe%uY4 zEr64{q~t;|&$gy)vb@+7zNlIbj>4irH?*U7qYCGRaM@I3Rd1g14<+PKef=!VhmrRoPU% zFDLE~l+>l4SdyoB*uVT%*M0p*i#nx9h*~^Hv%D!&{-&mf*LG+}t4xh0Xc}D$eae1+ z2>xW$6YD|~a;nTvg@iucl--L*rZ*FNM&P}hN9l7c5mJ$nFR~pS22{!c%Ocp79c>M$crmJMzV}^YEdWQjInCViGV&myi zRCrzXlQ`lHxJp;pU9F92%_Nl?NKy@>`O7Sy4ZMxJ;0?~ZmY+wCZ<*HjA69p)G**9Q z@)2bmg*v~wd9Nd%YncQg0CuQE`BZKye|hV8GS#oBR;0+*6^q1DH%(%0TM)%5@p1M3 zN1^WGDi&KwKUoFr;!Ij`eL~5hC0s3*`Q~tm6)8EeT%mBT1sTy79#@Z=n67_Q)ln+@ z{aYq7OU5oG=|kFwq4(a@HL7w|?v-ZD%dEZ4Gn7>8(_?4Ctgfu;mT=)EWL4?V4lnM# z6OGmM`$Q)g4t@J@>35`OqK>8kaLK)hfrAeTX@s?b_?6tp?q<9wRO1~V>n^nMW1A`k zpF85NHsK;!(9WQ&3lP}0=l!Y&b4(x(GqQxi6Jah(y2;xkV-Fsyi#Eh-;N8pE(+sri z3oQSx0ifT;cDjVVz~WFhBhH36arpMDOjad^XLW|rdP{nf0!-Pa}BaaCwbCGzgS&on5F!sKZv zx2Tb(R(>FA6<;JN3iK#NNivnlcE~X=3+2Az_!rMkS0-$fh6TnsEhPwp)==|g%c?N!I3{&n<)T?8*rN}D;0By0l=2SNIfhno z$-yIP#L2t&tnOUDRUdjRl5`QCHFBmbmpIQ^LbaOwjbFM$}>#GgRR zwvaeT88|mB?FRNZ;3vOo?3%Prbfb29pJIi*?k!T9)EhN}99Q415N}$M;H;luyGt7w z+>Lf_V2sH0dUqgoG`i~fjHVm&rpD|Ui0+=_=@uarv_({07$&hduxyC9@a1=jD)4EP z?Jl*ot>PVY%*b}T3L~53T}ks&!0pfi05}r>(c()kWd)FXpVI+k(9DmG&i;pM|6#V! z{tn2yUu5<5@CBdc>CH@&(0uFt{gbD?lDEJpd)(#>M%x$yB=CyRAWl8(-e&+{-Nnxn zMoQ!Uu=-;yu%C4X(2fxh0nkT)1VI!4fXWo$H^yh*s51f_KxTFWXb}{+!;gw%T}y z^n^#U2o&#!N$U$jFp?k`gw$vNfyD9|!Z2XhigDzC*BCRdF(HOzig{$?WQG%E5n>{KTB`MvwUD;CCrKA=BSTqfl)H$5Q3YK}QK@p{;2TnalP#oF5faycjVg$vn>W^` zX&~kkGw;f>lSsFuYql+|U8Cf-KAmpKNu~LJ0A)a$zp+79+F-dOA7ypEP(EAg%U;PY z4dplGV2A2x?r7<}?yT&32gKX!>-rfP_f0@XlXX%d3em`jSmcIe6AbAme@Q|P(4hTj zI~}1@bf4;bJMZe4jULvY=WvN(I>(|ukx~r9yR@U|+U)*uY0S&N$V7&6g ztKRdz&wSe-hK~jit(XNJobIfXqY5}gtYRGqb?n3}(Ll-`Ua^?vtfGS?S-#r=7@et8 zW!Co1Wk{h~k(!sN6~(&A4GG{gH=43d1~!?)bnEz+Thvx9W~v$Hb+drpVz9?It)B5xt$sN4 zE9VRNKXI<_9eLv6AB}3}QJ*o<;KxbaYEIzq$C|m`v;P^KKIjxeZ8j?(q_pMXmEK09 zJ49dJD;;(pkv`6pM;r8}%`(phUhE!X{Hit%k|5%;{liBYwM%?V_W*{!rO*G(RbaE| zzp?g1 zUQ%nPI)AILAIA-U*%IrN5Ov^$lAerELQYq@)06g7Kt3u*c`8s!3A?U9x~#&Mlvm^F zi~b6kDnOLq45<>r8cTT5MD#F`#W1*pIhzC~G?R&?GO1ZiE{!S8W}sLi71`5L^%Z-$ zW%gF$kGP79b3=_C<<~w-oot(LdUgKioS#dh zT_9HCPfz#!JoJo@e|(JU@wq4@56}Pa!2(bx|FW-k4;PI4Tdtu}ueQRz%KW~S;h|6t zlq!QRt!I5jWVc**Qsw*IfMIp#Q>Hz)=ieCFRB|e1-&JC8zG9795mdyfZbe-wSQUh+ z&0$(kbF+`Q)i$y9z=(Q!vKWgRr?GN>XqB>3Z0Px6PcNly7*Ud@bZ+@~tI)I*rk5_R zpV(I~qy5zWdb{2B{F?Q~r++Ndij`m+JVl?PaxEp(ITfegQKdGDR7W>grZVI4Wpo~AA~eFxMJ2rbaiZM;cS)R8LLQMm>gUnWmmAvx50)yuHF6{~$LQwr z=%;?y&7IRP=Ekw6C!pE}z}LtW}Z=gT(O>7t$KTH8CFY`02PYRpvJ zo&KpM6CN>rY<;Ec?|8@BRlIYlebOoaU7bZ1d$gDNH%rX7&{A_X_OC|saj)`;rhe~r zZ+hFi1Y2RHCp>0Z|1a)>T%-1CzMEC;?p4(ew!IDQXsna_^KR;c#dmW%{gZcx`g7Hf zXdQk^xy&HcG=F-8(7GUcIId5!H)hH`6Q^f`I=_EBkM}>$lWlt6*W~&X(9}G1mRIOx z+cc|L9UW{U$Y!=KW!X~~$=?)JfkVfSAFX^9t6bHr8#_xIpJzR@oc~62-u|LJC7+*l ztP?W(o2Ui1tBn=g-%z0q7uN3R9r;qed;4*W9`{hUK4JQIU?++w-`1(a-xu#9FYM&= zn&<9hpAyXW8~fHRqrv#z8UOrM@<{!iZdPL3qzm^lb0@F=D>r+gn?uXe{yjQY9Am?A z_Bg>QO2JUlfIwt=1xuSQGRykwg#@B@&~>Bw(U>q+7-2K6N)it{7f(o%QV6F z|9!{5_V)2x`slm!o%t>hVCvQODXrymyL#bf+W*Dm@!e_vclGww?y}!)mOa(y>_60S zD}5edKY`@xtu*^m694@Au3YJ!ysP(AX1$^pKIiYy#qaQST<3-F3;d=>_|pFSiPRcx z|0gADEel=~CUDQr}u>c7b8G^E;&T zD`fDm*&z<^^DN&+ADnhqrB#;R|2{+0wM)}8{kBTCZhrR`CnWX>Px%m2Io9)wd6hi9 z47X9n%a(~su559sZEwx~;2hY$?t?uL;d0UXoqCQYO#SLDNI$GW_tdDD>n@o08f3TW z@(Qo~Pi1rEl~oMKK7L`rASN?vvGVczl~7c_nEGQ~CEa?6?nTg}k@RaELwb~GOHY zecA4EKcAoF_@9+*KC1~l`}y)51bPlLpW7_wF6+6^c5qQyF)2HyMPgP?e5#0V*Cw*q zR5U)7#btjJ($LH_mYT!O%8}A?wApDZJMF!YljWqN7jwOeTx)eqt;zM)W}wPgtI6HA zX1LniZ)Zl@o(I)sv|SmiK0o(z9`#xlJC@h|IriqXl-u()9gkLr|NR){H>{)xr6o`n zobrNH6s)okRRwI5OEtMxn;UhxRi7(;-KM{V23lmW+YNPx;T9WdiP7$K-|s!tnB;O} zQPWr!ja7NEEXSvJU z*5yy<#j7{(K79J}oo7?6ehq7!dQEFyOP}`l+WJRl`~S}M*>+rm1>B8`y1^^BA+@{4 zJ9LxQd5`L{+UyRe%RMa?v)FA~+~Sw8M8{5?I&<#ArK{PxwzaQgm!@6kbp5mQebJYF z)rJ1m#f48sqtzKa=gp0JTVL7Rxuhj;^HP>-%(w%GuFu(5__lA`3RiSPw|zVO`1R-i z@5gg4Y69eTUf zZEm#B4gDD_9EMk0u10ewG#1r(9)46;bQAfSjA_b2-f@2mM%=2=<7p?@7pmgcqy@)~ z`(s{dw}_8~i`I%`xz)SRt?~FexM>_2%yk3$`~90W?znHw?sCOB7u>YA@CqCt^ges| z58mcHc=`U8iQySj=?t76q)~QjiK4XoNz(Ef^#k!lylaQ`K)Bg z&rZ@$8TNxLgij=k=}mw7GVsgvSn#;wK5gPxQFeMtm^U57syenMcx zgc7FADPzH!inSr-!B$!ZJLweIOILz}v;~e5>5Nm!)m_(s{ZRHlx7`O|$T*Pk;~-{@ zgSlWF!X;w}OU6(h$uJ`v3>OK(2$2em6j{J1kq3+x6~UNE4H$ckYXq(F5#zxGF$YW( z%fTe^BbY3XfGOfMm?|!UY2r4Rt|ks(#=+2DL(Pt(p$FPOThV zuYm)&L9G$oINNA(({*!LUbjR8OK__k0d7-k1GlRMfjcyC19z%@19z!4gS*utz&#ph zgL~%y>ppWJo%^{TAs)CMLK_d0@dzG|(#K=$IUZ*iPw@0B@XYlbp3L*-=z4+59lSVc zEiYZKG}P9s5tYGfq7ryrEdjhSIRkm~dM8w_cO!lQ@5u|`efcH$K*9$fis#@X@g96E zk%LbpDEL$&1)oVY;PWYs`QrL2IP*1M-wl0g;k6#1}?F0!arF3Zo#Aqzj3KiI7Axg`_GENG3gmC}BP%ms}x*umDm@ zZjee?2&ttfkVaSpA4pFjt*{u4&Mkpve4~3*=C@j1HMWiw)stSN& zr9LPQA`(qQP!gg@nMR>>RV$Q%I!$JL*>$Er~+eDn`WRI zd{J+@gc|Tiv*`+IArS4RYp9EO^h~Ev{}^8e%1CI4RvtFvLnE~FsF?s7;}w%;F=$Fi z%$l{JIiay=)`pgZ#j05cT9Xi)W=CjCV(glopgl=(Xm*B82dS#ubCPF-F!$H14==T&nod`&~%G{-@A8spI%4?Ss$S91dNW;8y{ zmC%>3@oUCHf0jl7I|*!_ghA{kxOobOu$NHtGz?R9!*EF+MhFMNNY!f?B`LsYRRnyi z>W4AHSQsk|g>jNPj2EWE1YrV9RC&TA$rvW9@?nZ_8hob;gQ+Snm?m5Z)0G{VF@cpy zK80CR=ao$r2y+UL!(1qmXBvU|(kv`cwZX!wXjp_;ikmKA3GM@pYD&#eSf&bvK+rC?Q66s#sIHRczvR^<)rRK>8q{025qlEzlOunF{NrXnroaM&sz!nUeNh~abE zf8pGX#c?{!qp(xu1H1O}d$9ZJX;iLWY6#e;MhN?7o!0K;kS83C<$f?17}{Kzfr=4Ix=!CnQ%GgXB?*!uj!NDH2PO zlI(z#<#D8p~F{V$`ahpK{^V?$dZRxqE0ISQofyQRDeMA{M>`=oVdsJ_S z&^a7=8z-x3rc6E^h?uG*LaFiuN|WbNx~dFis47sVss?4L8d0{Y0p+OjQ0^R@S02?zl&>hE0#ynstQtl| z431)^Qeu^g(6T%#Rn?-hs(Mt8^{BvZRAQSds{vH4>OnPSPgF}(>i*U(QNJ}j>eFhp zcdLh*XeK)?)`n55Y7w=mjUbHL3~E;`A*{MJ>QK!i{odWvIk<;==;B`PW9M~0r4Ipp zK;8-HgGwI&`VjR>Uu}K(G+%neqdxJNC*0;qPr9|AQsTydK3(FLfIhR*=UbmWeB?RL z`P%cI_puke;2SS`(HCCwlFz*CW$${$E8h32SH0&ouX(`hUU$DYyx~<{y4v(e-i7hAFZURA(*k!N*t@Kg0R|Zx%>q~3b~=habe=j6OZgvr)S}pY$M9y4;eBnMMbp%O{Qnm zD~mL}%m!?qnZW++&$=AIL3FHx$qxeT5J>^Rj!@hXup0_-R;7}(MB0|7fm902TC zaWk;v#8O}>K-JDK-#iXm(b*r{R=u+x5KS)6{If!A}Uf&GD%GKwx!D~HT*M_%qoq;!jT`&0vup1C74BmF*Y391gO;&cZn{DG3w>Zp3d1%Nr zG8Hp37q_sKFuzvxgJA1lW&ev~ugAaeLq{pO*dC9=cAWI!bX^-|Zro_y_t59DJ*5-u zC7IZ}G=hEb^EEVs{iGM{KfOXna#3%Aer|=Aw$QAu@gq_9K=P~aK0p&{`2)nL2M1_U z{lx$U5UW4lnmP@F#d`Cd_Mk*i&`->mQ3`^J%$ik3wCb31tr)%I5(exS>0^NXD%laR z-;`DW?02Q5fc>E~39vtvRs`%Xu?DceCBp&xM`x?gU%uVo4}AJYcvcXAyzoI9g7e!&NcEi%iIRl4>JK3S6jH-3giJmo zDB)m2u39G)@+F}Z&LLFt6`_`I2#qK~9*9ze_PDOzbPm6Tp2$rYgu4ji&exAHZLB}n z53t?r*XQDh>M!9u++2Xc4L<}3AOtGHUlSz}L5$`hPJ1Mp0*NG8q>!dFGOfdjEImVx z!6DCwp}=qykC(*XqlED&n`Mbg$$+Rb5w&A(`912GjK(>?-I|ygTFjx14vXlb$Je3H z7YumF8b;eADTo+LX~d*DjF|E>W?%DjV!l~OJ;ZX?$49KNW+gVJRAQ@+BzEcuVt>q^ zw*zM5Xthb4)bWXP)j#6Gavoc45m$8r;->mfo~RR&r>br846!=V&hyi=c!QKXcl$heAhX=<2_Rn0Lc|;T;lpNptqzEvI*RzK4oSeYw+Yqt4DQqi!1 zR5CKEpc>Wu7&Xw0T7IR@>V(v*Q<4VNDQQ%vB2B6@(yUHRT2$wxRh@>k73TCp~! zVEH{dfR9e*M;D0E&BEvbncgNe>EprZ=T8Q#F38~Qd4{g{Judmc2WZ#Fl<&zfz4>Hy zO-7FKHA+}Z#*QD?IAJ}RIQnan>V{0I(~;>S2btkxW=;ReoUkjIm#D~sup3#FsL5wx zAM!<_BVUE{$xXxjkGmtga9a&drBpa%G^1V6}`2pSd$>01kN|WE} z%;e9nl-cK?&O$cDH{_ozO14A~@?V{mY>S>`N1cuAs&Hgaot^B9YFfAIT zBks;Zo-t8PXOHGHL(S{|yWo>_7A&1kcXw65Ac>7oeuEL9;;*&^MsnAUf0?^c%#0dVrDn2qqc{X66%E zXfjxt?_i?^U}t`SgBF65`3Wvs1a9UFc<4LuGQYq_i^0$Qfxya_Am%rOXa$4`2}I~P zL3cI>^vv$P#+U(G|!O1}M-~C=ymE(S0ZrHmJ}8s1kOl z(L<;cA!yKBXcA#)(K~1p5$Mo+=n_%rQ5?`G#xP(hVMt8ykfnkVF~uX68pgy7CM*q1 zi4V+JX_ymVSgQ4@R+2* zm3;y?l8z_8efl67c&3ltCO6gTu>imc2(lr_DGYNE#2JcmG0ZuRn-c_)BrVixl15{x z)sl5OE4`j#FjyOnREqK`P4gMXXDln=IA8L-R1kb6iZV&^wJeJi#WyCC+-&x(#iFoU zeQ&d=?RGyn92%$7UoMx0+wFgkN7p~~24qqWkg-LX$RV=WIb_ok-W)pZqO?Z2Bk7R(8JA z`L~;=1lr4f%g=!WfsS)p)H-*efzc(V7x0Sd6}(>K?gniQyj|n%4iyCN?{ll%Q$P@` zh)IzKS;-QFTCTT6ei~gADCswq$zrHcD@Ai3Y-iuJS?;z)cPK-Tk;}{Esgz^JqS!E2 zxFKT0A0c)!0de47h!gijTx2{F(rY3b;VaTSA{yf9Pe_pRqNVdmJ;+?yB9t6CN#x1n zX@wLQh7?OCBBhlnTgrzxDpbT$rRr^~DQ<++OE5qhAD8!PdL}7avYzXcYW zvKp06q*fW>7M08KKo!CnsuXabD&Z1U3rDC%4hGcIU2Fx6|p9yJL2P~*=yK@-i~ ztrp4})H>1MyUlZQ1%`Ic!Gh(6j;-^NwX2J8h`NOXs7Kg^dX@F4PYwe03wzLjjmIIZ z##)w%_1MTb@83$9p{-Kp=yqdvQvW3ApZ57_&%g7=~P;QGVc8MWZypCZ|!i4d#WHZBLLJMow zblI?Bz?Q9t?AS46&z?R94)i!i)F;b2I;&6Rczfe|B05!xJVx3?J?YXF%aEZ#rcBkc zWNDNwPq|uknzU%O2LoeQyLJb#uy*w5^~an!g%&I*_1R~&Hhg#NkG~H6^UqpuE3u9l zT)cxBTD+GTHtjPcNOZkqo~aWGN<3P$dN5*y#fMKfZQ7DKaun+^*NFbEK}>uH3hD@M=K6vlF5ySj3%%}0`@QFD_8D(KjnBHPd znsHvU6yw;~ls{zSfNI6*-ULqb1r*FOdGbDU;^Zq=u9h0D#2B{7CkCKKZIC&0^B#Nb zoA8LsPTmJfR)WVgZc6$x?#?AE`2grLu?RQ_(ykEV^BsTa<^nxEdaCKu*TjGUEJKF6 zJ@n83BevGs&NOB0+0*2}fe}ZJj5&G6)N{|h@*=|1$z;gpr&5&`)oT1!tKNSN8trM) zcn(_T(DT0Pwn(1m|24?J0fFYwx=6%Ft~=!qt(eM|?#!$v8*g*)3Ao6@GPkcU=H};8@8%)7_6&arsQw zPQQY?Z}@X*cNg+lpJSme0ckhLtJlItN|{dDSRT&X!vT+uYEPM90~A~hDX99)sh^c1 zXq3~_G>FJz3s8>8VHay|rD92|=7R^aS=7@VidWdAtzJk#h*yq`s z@C_JBl+Ji*M9XB1yqY>fb=LXf)1!F07mE#5g_`HT@9rzvvPVPTwQKQB?0mp8Y}k6l zbmPT{tXC#4vJ?3lLOkr_A9%Kaf!V8{jm3%rTF;00OMUrtjodq=#zM(6yat66$m>5u zSnx)?IduniT?E1~)+)OK8?D;w$zu7&vV_Y7Nce20LAToXkU?+F+k149iRlg z+f24cbp_EIzgJ@PEzh%km?lZFY_sg8EawaMzxg4kWxQeptqrRWf8aQprbPh+BJH)l z;~wsh@i;to>LZy6Cx2{hkdREC91$~!Qt_cFD1Ea?84_FE1IT#u`k8V@K_#7#6dUcJ zb(juk(0k@ydOmo@?B;&V9LO#)GS9Y;e8bJ_&_#1N>Rd*+K&zed^)1|l3TQp>2N^J7 z2Rmuv<7n)_kv$7n);MZny%sW6%CJvlh!tNsdT;cg10of*9=pf>@uMei;oSgXw*g;0 zdi7c70a+<#axU(Lo21a!j?NlM0$|R_!fWqQ@c8j^wOX-)Y0*0EnK#~teNtWN1h7j@ zl7yUnRv8=g@A#m$hg<-RTm^nIo$JF-!!#)UY4B9QiVV*@iZTQ4eoMYR?c);08b*(uELAeFjxc!Qa^ ze%#UKC=bWb`^y^!4F#xJ3!~E!HwA<{Vh4`yP|c?Ojz`8MKOF!q!wi-{HOjmQ5x zmw1WGnEN3HQ5P6uMysDYyJ8I22-$`TeN$~X33N&Otgnrc-&j*JS&kUI#vdOvA!0@z ze(eZZ?b?n5M&spR+}ARzqO8l5%I>{5)i+UjxGw=r;+ zsz=Bd6d_{7*~6Rd3?Xhpu(|Oq`|w;iYL%uC2;QCNZH*6!yNa1j<-32osrw0F|B>UW zC^kR>f;_6}w8fPC?CO@j0JlO0uG$0MticKIB*Q57DOfLskSjLfC*medw|%8SOi13t zialKtdu%u$5{q?r-U-PJ$F-JJ!mL9zz}#L<8nnlGH~b)-dXu5raT0 zu+*>-v~&0hYik3sl|~MY8{7;;eGi0;r99qQlzwe_irOsz8o%y~LPy&&bja+$)wvP0HkcyP=J*7GOsG8MQL|wqnIQEDVtY82e0L|-J?!?&BD~u%y z4aF^DL~4O0@HqkJmy(E~#ehJqYDr?}Hf*yJVn1#W$+M)X?$U18LK*}_vC0bWqnCaq zE-!K-xm45yEpw!Eb=f&>IJcsgUUngg*CvUrcuU0Y*O)wz~eR~lu*BGSgZq_OgLV)z%C068^X;4%3z1RKOjrE!31psUks#f zg*;m;Qkl#KntJBBagQq1jev8HTe2n^3;8A+m@oKDf+SZrgllAB{Eh%Sj3o*Ydn91$ z;4`9V>y$4t@xY6U13QE7DY>9u1DN|lzq3ZNWw+fn(GG4Fq>3=rPlFm_Q8LER#}zUj z>c!MzTw%L;E0T1zxN$BU)sOsAntn8;NJ8h|A-sGvXhANz+G2z&jggF5e5U1;O)1oz_VZTvC9ezRfL+>v1;lUIIBID zz{bzd?jw7cl|<0)bUmQ(@kNbl7!h1PJg;z6_Cq}#g^23Frt;e3mg)`KF$PhG)>q=I ziqF_~7Nyw~bOXQ!x^3h2Y{*h)A=@DN`4wf$z)rtE8 z=u+mCJs0jrzmcX3LLVnJ*zgn88Tznt@d`XQ80X>Vz;6gW1)8XWy0PBX>G&yGFebHF z+f<{fV>i(VM#FG1EfU7UdG8wCzX4B+X!I0;sQw|~UNl4U9rDSLlDJWuf)avmvUx3K zeS1@jiY+fXxg%ErEdcw6D~hOBdXpPe^|7o`RWV(4WzI^*PCxgkK|KACTso)Anq2ay z8mbd$;;ieIs-yvR@G`WA^E*H#u~0{0G@!rZvN&;L_kRSB^6tjDMtqnI@xF=S@cAK% zSsg=0C!)HT#4QV;i)75U)Vg|`^+-9PU{p7N{OJ>aq@lH$Z5&ZdPVw+iCZ`5 zFwva=27t|pL|#pbS=5%Jcd>vfOTe!fb#3ljYfLH5-VeFZbLSK9 zT}<3X87!(nWkP=Q9YXi{R871IdqtJNRa^vON0Bf=s&@@0&Z2~0EuzsM9(7%nkOd`u z7k=e8Y4}A$Fvv=0IUFt=tyQ75F~1XmozqOm>B$d=(Vfdk?c_%zA_=WO`e0=2 z59+<4I=i{aa#-E&pJru2J@|uw6NquPnV#2|gTQz*9!R(LD>06%*dBn+Z8a+VaIF(; zSCG=z>R`-d>~v4J8<|6@t;cF4yCBe1G`UN3)k3qOYQ!OvC`=rO(G^FP)S#MZJQ$92 zD8k|dL<+XWO=n#zY3H7QxGcx46J{a0zrI8CybMG1hJiAnC%lk48-^nfY5J0{D;N)j z9NdOIDMyON>7d9qMy|u)n?QCY{N>%0wWSJpp9BhfG2v z2S$xPH5_t~hiPie5b|FNbpz6W&R^p}LL+QdIJ1G6_p#5*(Ekm0iR8&p=SjC^2grgvVm{O~$5(_Nat{!*iafXV5TLBOwwu zYa@6{c3V&xbjv~eh>qeIrWS^rEzlPoh_=wm*jEuiacbomCo?^tsOeZOrkOK$t&Wtp zWyi{NTuCGF&96B|NT0@58(GoU|H?hv@6#(B8B^Q>O5w)=)AuZRV!GOHmR< zZc1fX}Qp3K7i=I&0o)xscq$2J-X{~5?Z7eVD6fY|{ z7j0r*$f?A-oUW$nVV#+F&+yg18Kq`0tJ*ln61S8zEM{PQJgZ41+XV4A3DZ(G*mKgV z5|>=sD@j!#98XsJG}JchbLmXnTu<>XaTHvlY$+!CP-kcDZG2s}HXt-Vz=!P;2Y;Zb zw9ifLSKT_uAP*(r_8IotCA4pd&bOYSaxxa(W2{?DV~X!)rVQ-m<(gdK=wVjrJyw#7 z3)(jxTPtIS zaN=8;DSs^te+hg#m(i6pKPy7@d(2e4$b8bn=o2`i`zY?Mfd$dmG22a*{f1*pj4{WL zN0x+VIfXY-U-GqV4B%4}Ir+}e#zxE#Ep?K>$Yb@J40i~Q+u%DYq~Z^WaE3MxY0wth zH`*~97fDZ6b8Ka;fea`(EokU0W{?AuT+q+eN9O`AH~%km?paq~VR&~g-GCdcxS2C>ARK16-uz7p$(Uj=#(`hLMM%fh+U+95fM z66+EaDx14Z=UhiH5lLT?+fKzW;?a?g8a4rS+t3B)+U^0GZnvB!(t}P5@F)}R!*$qA z3ZEKU67UkRA~k)?z^QR}O6BC(SvUSaxl36c{v}f@suV9}a%V@gO$NLiO6E9jiH*lu zIhT%VW@xD*+L8*GwoB*6i-WjZXt8|bOW~uG%FQdcD{SYq3N5o-XI+(-hZ_ysAn;9d zw${cY$2%Ag~i(}XeG*J(`Ysnt^1w8O85=>IUF=F+^>3dn^(krB#5%`2L6ZwEhD z5I=JgU?dqry|+MraODneg>eQGyjn15z0CI&Ms3<$ROE8!op6FqFkaEOOlzsMYaj*` zO{#@nQ1SnCDkY5ERjOht5*~LD5KYQN`C?Ww$dlh$oTED;$Gipy8udodh`s8gQ$4}l zZgovfp*VxN5yLvas$oEd%1+D!M@IaVaBg|7m`OTg_3dYX9_V~KKjs}X89Aqo0_F_- zN@+2Ssj{SBq}fL8k=|_(t^lZjUc!9CQJg!T?NZ6|^Zcw9W1K8Pon=F~L5em{1#K!6 ziCcKdMEav*pXCw=bBQbssHp|-Y%$f^el3}tMdzo}cgiQ|bUKzsCb=ITu3pYta0Y27 zK6aKc2o8*Ja6e$8tIv(euyP1!pd)lW!s*^$Q z0L2EAR5he0;Ut!HnrUP=QlnG767n+yZYecVU>$GS;+1tlgwTVMGp@??9BzPumZILi;8vQki4u+fE7 zTvt#TkFPfigTXHfP9GC5w+}SD_(pfX61Y@UWNOUigS^>@RCre+OWmHKPva_k8vUUH zn`53OyKHjCz*_G`2-G-mKwrM((7;$c5Ihk~CUo%r1F?|sAQENtl2=cfVd=)$=torP zW-vux8mW*v9-VBw_YyD#JO@J})|M7JKu!@Md&nGY=6}wJlkqx4Gn&CrhDEP(&Ht3vZ;XLGd8^XG=Kdg2 zW}dm_rg^IF0H?306K;beK0*E}Qv%KeO$m~iBj*vsii<_iT{`(Z?!uOf^Vt*&#$dM^ z9{uUs{q&j;I)NM+H8h@}xbEAX1e(M(m7I)A!r4_ZRg*P}b0)ii9qdc-BeD(IiFLWk zG~S08d6m0<30g5wVsdTl9NXD=6s$-@m8bZlq|io#K8QZ*#C%iHR@2VOV%wH>V!kEj z(W0tp8@b6Zv$oLoD_5`d?0_hu#WvdG!_Jj_5hUQ&Sx&LvxdiXeIOWA2HCL<9$UIM4 zgYV|m7k+2@wf&pC%SIM$et*p@b&_koDZgyrqN?U{ z(I#yz@+MLl*&xEW*;n>NDkB?57>`{*jE-c7YG&GU%v>;2Dp3g0di+;pe`4s;2%tel zOsF+yEtFo9qETp5PONn#(0`-cG6$PGPYBz7bMjE4lHaukWAc0V-EoUPM z)idOi^0b6B#P$nh7xaM@NdvYe;;U5tzFCfz9c<(jH-A@($s@cLE7QMTvf73FRNgkhT#o>bycpK7ytM=Z%oBR=kyNlkX)0BHL7OO zNjN!)7wDkSk=tk3hR&F~FDYE$Tu*UQ0teY<7Wg7l2z^wQB<@k1w)?5(C;IEA9u2^k z57dfs?xpF0dSq~j)WG0aPaK5DSP`IVmLqEma#*g7mXC5{G6cb!4g@Q?>pvI zUdx}I2-$utj39kP31q;|H%eZ%Z2cP&fy52_CV?vy? zvh7pw+MCGG3NUG)+2QckCTHA&7q%IHTMPMd?D@f(gwYvRF`+jxL-jBzn?iEpy4h&Q z;ORr87)F8wCA&vij{?qo(K@=sJ2(p>dGoJQ+ilxB83|>{yseClm8T?utJG1Z2kSO} zr#(P9j)pT-G}nBjVnf0Vo$nUKzYGR77L$yTba)4Rj&}bI z>Jdy>$X_^AEY4RD#Sj(F%&HmH;oegr%r3sT#@L6?ueS}3@W}U;4|yW}N{Fd)ro~?) zF#iylSXR}I!bEEJ-@Y3%d6$sGCtLQHGmepmZZxinCBg8>MMZ=eN2&0M<|PuN#nFgt zk-z>$D8}79w8Mv}lv#Xa!B1UwI zC=w(^mHbUv_1xyLWNy0Y|8r6PuxRkouaU+?ACx?#3e6kmNhYCz8MhD{pj znH;lrbOKMQFBJFHkrK*?+EgB`#LBAke)KUY%6*;x|6M8n`}K+k_sNevy11}=Ktd}U z>0;wlwj|Ywn2Kx$)HB-`AlMyYvID88K(ZgPM~mPz^{Sv!RxFy(5=13z^>k!1YhE}p zxKlv7D@Mon)d%wIQF&p?Pw1?d8{CoYmo{&6mr9dih3NyS~9S5nOu5@6v^A@T2jzh!O3k{k3 zosJ$@u?y#IvQu$?@mF7;6&8z}MmKN(1XqEw{qkBK$kQ4&#L=Nhq;aNs&Ih+YJarl9sqn^q?lL zX5H_n^MiDx(pU{*$=52jE?=G@(l!wNK=KMbZD#XE<^!(eLB3tGdcVYPj0QC7F?}7& z2E>18D7Te15;J_MA(W|av>x}k-G<=ZTGB=dW7Dh#|9${RK)An+8dW{lT+rpnK{%8N zq$6ApH}jy!w52fCf()gZ?0)FjJ2=xtgHA26q&{l!oJX}x8lFClHM8K1xsD=kqsB~V zgRy7e$hm8-8zV9AbuwLyS?o^~B&A>a6*38t^o2Sw!#c9!rj7e)rUa35g2=y{;}ep_ z1ZG7?`DXjm#$z;p`OkD`{eJ&Pb=O(_??-jsTUq(Rxy^ci=gs+Gb@jK}(?rdFCwa+8Yg88= z-l2lsTucnmn`b9_k`zyHT8!AYb{LF_mX8FpNnP$|=h^LimZ^N8cVd9>Jd&B1 z#}QpPS_aWCMoDyzwIj5{2uMA$yyv3r=LF?zayL8lFGH}9_=oH*I|jL^-1Lrkb2n#4 zm&%2{9;RQzKCo%IVJ#~2@I7cGi=B<*T+S=cN)B()vbh#4k-F9aNX<1I|3a+KLej+6e1}3;%bni1= zmtMy`c@e`X;t%8^ab{41PVmaPLq(OPS;V>^TQc08u7f?XGbV&hbPtkmv%n{Ivum{w zq@f#^Q*lLMD3->tuBQIrzTN55N|F7Y;QLYjB-boa3^3D(78*8lz#>Awq4|g@WRW6W z+r)P$uNH6RZv2pD_PnxQtkC&j=Y>UhQO-Dqp5 z#uArCpXz}ZTM`PdCa5g+`O3B!tiQ2Hcc9qh}n5|%6IQ>mjWs;4U&M_ z`HcGI+O7Eg$53BsoJOWb`gmlmo?4}26{i|rK07bHb3RL@2Y`>igYYwVo;0y4T*xfW zkMD8SN4Z9o9nmRoOVxQ9EogVU&F735Invk?`nKZcLbWoOzibkI@E8o{OS1JZx~P>h zl3W}6597+Ug^En0^RYrz-d8ATg;8YH2WPda>t=#*2&4Rut%_4VY^@O?4K7dVhn+l} zpez;i-&bu6B~SvPcZsC1=J%O|eS2MFD0FA36J@-LMy-hXNHUqqO@lf9TzEQm>snw9 z30JMlwrZqqC(x!5?3{AoDSm2IFt&zk#14z5LQz*lHJ@3HPFu>&9me9Y5ff57T@~77 zJq9Ar&c8zMDoEq7pa6A5A1Gp8BMRRh)}eztvE9!SLfD2sgng+!-doP3Nmuj+81gZ` zo@$}%^O-+3@@KJ?OKgGTZ{UyED;L1brW!le81s=G;%y7R6N5wwb8Cwv&9|9r zu`~T*HgXc$1PmwsD~{5UxT9#~IbWrvNb}rDo3%@s2x0U%yxmU+YWemBra3Mz#O7;I zof{eC6(l+;#^}3l1cv2XeM|UDF<4)=FCQtVRcQ=qA+xK#tNHfUG{^SWkA^aphvDAo zB4aEPxhEvFbkYSo6m(eVza{mTfdhj-Nh*oM{XcvE|Ktz<8@qSSAN&19r;?A3RyHa6 z?lXp)`tE9uNi!?0Cz>vFIh{4&JCd|zl@?Kv=Zf0DGD>>Z+DQ)>Gg?Y0#PG zJz3D=+!SUU#pGhDj8oI@MVC6Ha-MLy%<~Lng z$c?GoLoQTn@Z|8NUexeA&|dxXREZX0Hsy&_DvhOtMsB660HXaN;cJr&nzwNouP62zl&1k zT0G@RSJ3V)!ujsi+;a>HSYSJiaI%0D^wqs#0p^Vealb8OUJsw55o>YX&(@8N&Egfe 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�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ⅆa2UE0{@-?#u>Xyk$ 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

xy;zH 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

Ia9FO0BpX?#5Lm(^&mewCwT;0A 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 dUY_z=m4-(2WzJL(yRP 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/static/illustrations/learn-coding.svg b/public/static/illustrations/learn-coding.svg new file mode 100644 index 0000000..68b425a --- /dev/null +++ b/public/static/illustrations/learn-coding.svg @@ -0,0 +1,386 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/static/illustrations/support-team.svg b/public/static/illustrations/support-team.svg new file mode 100644 index 0000000..66014c2 --- /dev/null +++ b/public/static/illustrations/support-team.svg @@ -0,0 +1,463 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/static/logo.svg b/public/static/logo.svg new file mode 100644 index 0000000..c326b8b --- /dev/null +++ b/public/static/logo.svg @@ -0,0 +1,31 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/__tests__/pages/__snapshots__/index.tsx.snap b/src/__tests__/pages/__snapshots__/index.tsx.snap new file mode 100644 index 0000000..c220d52 --- /dev/null +++ b/src/__tests__/pages/__snapshots__/index.tsx.snap @@ -0,0 +1,330 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`/ landing page snapshot 1`] = ` + + + +`; diff --git a/src/__tests__/pages/account/settings/index.tsx b/src/__tests__/pages/account/settings/index.tsx new file mode 100644 index 0000000..eec0e9d --- /dev/null +++ b/src/__tests__/pages/account/settings/index.tsx @@ -0,0 +1,171 @@ +/** + * @jest-environment jsdom + */ + +jest.mock("next/router", () => ({ + useRouter: jest.fn(), + withRouter: (element: ComponentType) => element, +})); + +import type { ComponentType, FunctionComponent } from "react"; +import { rest } from "msw"; +import { setupServer } from "msw/node"; +import { useRouter } from "next/router"; +import userEvent from "@testing-library/user-event"; +import { QueryClient, QueryClientProvider } from "react-query"; +import { render, waitFor, screen } from "../../../../../jest/testing-library"; + +import type { SerializedSession } from "../../../../../lib/session"; +import SettingsPage from "../../../../pages/account/settings"; +import { SessionProvider } from "../../../../session-context"; +import { SidebarProvider } from "../../../../components/layout/sidebar"; + +const consoleError = console.error; + +describe("/account/settings", () => { + type RequestBody = { + email: string; + password: string; + }; + + console.error = jest.fn(); + const mockedUseRouter = useRouter as jest.Mock< + Partial> + >; + const mockedPush = jest.fn(); + mockedUseRouter.mockImplementation(() => ({ + push: mockedPush, + pathname: "/account/settings", + })); + + const session: SerializedSession = { + user: { + id: "auth0|1234567", + email: "test@fss.dev", + name: "test", + role: "owner", + teamId: "98765", + }, + }; + const server = setupServer( + rest.get("/api/user/session", (req, res, ctx) => { + return res(ctx.status(200), ctx.json(session)); + }), + rest.post("/api/user/update-user", (req, res, ctx) => { + return res(ctx.status(200)); + }), + ); + + const queryClient = new QueryClient(); + const wrapper: FunctionComponent = ({ children }) => { + return ( + + + + {children} + + + + ); + }; + + beforeEach(() => { + mockedPush.mockClear(); + mockedUseRouter.mockClear(); + queryClient.clear(); + }); + beforeAll(() => server.listen()); + afterEach(() => server.resetHandlers()); + afterAll(() => { + server.close(); + console.error = consoleError; + }); + + test("update email only", async () => { + render(, { wrapper }); + + userEvent.type( + screen.getByLabelText("Email address"), + "test2@fss.dev{enter}", + ); + await waitFor(() => screen.getByText("Your changes have been saved.")); + }); + + test("mismatching passwords", async () => { + render(, { wrapper }); + + userEvent.type(screen.getByLabelText("New password"), "new password"); + userEvent.type( + screen.getByLabelText("Confirm new password"), + "does not match{enter}", + ); + await waitFor(() => screen.getByText("New passwords don't match")); + }); + + test("invalid email format", async () => { + server.use( + rest.post("/api/user/update-user", (req, res, ctx) => { + return res( + ctx.status(400), + ctx.json({ + statusCode: 400, + errorMessage: "Body is malformed", + }), + ); + }), + ); + + render(, { wrapper }); + + userEvent.type( + screen.getByLabelText("Email address"), + "malformed@email{enter}", + ); + await waitFor(() => screen.getByText("Body is malformed")); + }); + + test("redirect to sign in page on 401 unauthorized", async () => { + server.use( + rest.post("/api/user/update-user", (req, res, ctx) => { + return res(ctx.status(401)); + }), + ); + + render(, { wrapper }); + + userEvent.type( + screen.getByLabelText("Email address"), + "unauthorized@fss.dev{enter}", + ); + await waitFor(() => expect(mockedPush).toBeCalledTimes(1)); + await waitFor(() => expect(mockedPush).toBeCalledWith("/auth/sign-in")); + }); + + test("redirect to sign in page if user is unauthenticated", async () => { + server.use( + rest.get("/api/user/session", (req, res, ctx) => { + return res(ctx.status(401)); + }), + ); + + const wrapper: FunctionComponent = ({ children }) => { + return ( + + + + {children} + + + + ); + }; + + render(, { wrapper }); + + await waitFor(() => + expect(mockedPush).toBeCalledWith( + "/auth/sign-in?redirectTo=/account/settings", + ), + ); + }); +}); diff --git a/src/__tests__/pages/account/settings/team.tsx b/src/__tests__/pages/account/settings/team.tsx new file mode 100644 index 0000000..6e79047 --- /dev/null +++ b/src/__tests__/pages/account/settings/team.tsx @@ -0,0 +1,323 @@ +/** + * @jest-environment jsdom + */ + +jest.mock("next/router", () => ({ + useRouter: jest.fn(), + withRouter: (element: ComponentType) => element, +})); +jest.mock("../../../../database/users", () => ({ findUsersByTeam: jest.fn() })); +jest.mock("../../../../database/teams", () => ({ findTeam: jest.fn() })); + +import type { ComponentType, FunctionComponent } from "react"; +import { rest } from "msw"; +import { setupServer } from "msw/node"; +import { useRouter } from "next/router"; +import userEvent from "@testing-library/user-event"; +import { QueryClient, QueryClientProvider } from "react-query"; +import { render, waitFor, screen } from "../../../../../jest/testing-library"; +import { act, waitForElementToBeRemoved } from "@testing-library/react"; + +import type { SerializedSession } from "../../../../../lib/session"; +import Session from "../../../../../lib/session"; +import type { TeamMembers } from "../../../../pages/api/team/members"; +import TeamPage, { + getServerSideProps, +} from "../../../../pages/account/settings/team"; +import type { User } from "../../../../database/users"; +import { findUsersByTeam } from "../../../../database/users"; +import { findTeam } from "../../../../database/teams"; +import { sessionCache } from "../../../../../lib/session-helpers"; +import { SessionProvider } from "../../../../session-context"; +import { SidebarProvider } from "../../../../components/layout/sidebar"; + +describe("/account/settings/team", () => { + const mockedPush = jest.fn(); + const mockedUseRouter = useRouter as jest.Mock< + Partial> + >; + const mockedFindTeam = findTeam as jest.Mock>; + const mockedFindUsersByTeam = findUsersByTeam as jest.Mock< + ReturnType + >; + window.IntersectionObserver = jest + .fn() + .mockImplementation(() => ({ + observe: () => null, + disconnect: () => null, + })); + + const session: SerializedSession = { + user: { + id: "auth0|1234567", + email: "test@fss.dev", + name: "test", + role: "owner", + teamId: "98765", + }, + }; + const createdAt = new Date(); + const teamMembers = [ + { + ...session.user, + createdAt, + updatedAt: createdAt, + }, + ]; + const team = { + id: "98765", + subscriptionId: null, + teamMembersLimit: 2, + createdAt, + updatedAt: createdAt, + }; + const teamMembersResponse: TeamMembers = { + teamMembers, + teamMembersLimit: team.teamMembersLimit, + }; + + const server = setupServer( + rest.get("/api/user/session", (req, res, ctx) => { + return res(ctx.status(200), ctx.json(session)); + }), + rest.get("/api/team/members", (req, res, ctx) => { + return res(ctx.status(200), ctx.json(teamMembersResponse)); + }), + ); + + mockedFindUsersByTeam.mockResolvedValue(teamMembers); + mockedFindTeam.mockResolvedValue(team); + + const queryClient = new QueryClient(); + const wrapper: FunctionComponent = ({ children }) => { + return ( + + + + {children} + + + + ); + }; + + beforeEach(() => { + mockedPush.mockClear(); + mockedUseRouter.mockClear(); + mockedFindTeam.mockClear(); + mockedFindUsersByTeam.mockClear(); + mockedUseRouter.mockImplementation(() => ({ + push: mockedPush, + pathname: "/account/settings", + })); + queryClient.clear(); + }); + beforeAll(() => server.listen()); + afterEach(() => server.resetHandlers()); + afterAll(() => server.close()); + + test("list team members and display team limit", async () => { + const teamMembersLimit = team.teamMembersLimit; + + render( + , + { wrapper }, + ); + + await waitFor(() => + screen.getByText( + (_, node) => + node?.textContent === + "Your team has 1 out of 2 team members.", + ), + ); + }); + + test("invite someone", async () => { + const inviteMemberHandler = jest.fn(); + server.use( + rest.post("/api/team/invite-member", (req, res, ctx) => { + inviteMemberHandler(); + return res(ctx.status(200)); + }), + ); + + const teamMembersLimit = team.teamMembersLimit; + + await act(async () => { + render( + , + { wrapper }, + ); + + userEvent.click(screen.getByText("Invite member")); + await waitFor(() => + screen.getByText("Invite a member to your team"), + ); + userEvent.type( + screen.getByLabelText("Email address"), + "recipient@fss.dev{enter}", + ); + await waitForElementToBeRemoved( + screen.getByLabelText("Email address"), + ); + expect(inviteMemberHandler).toBeCalledTimes(1); + }); + }); + + describe("team member management", () => { + const createdAt = new Date(); + const invitedUser: User = { + id: "auth0|112233", + email: "recipient@fss.dev", + name: "recipient", + teamId: session.user.teamId, + role: "member", + pendingInvitation: true, + createdAt, + updatedAt: createdAt, + }; + const teamMembers = [ + { + ...session.user, + createdAt, + updatedAt: createdAt, + }, + invitedUser, + ]; + const team = { + id: "98765", + subscriptionId: null, + teamMembersLimit: 2, + createdAt, + updatedAt: createdAt, + }; + const teamMembersResponse: TeamMembers = { + teamMembers, + teamMembersLimit: team.teamMembersLimit, + }; + const teamMembersLimit = team.teamMembersLimit; + + server.use( + rest.get("/api/team/members", (req, res, ctx) => { + return res(ctx.status(200), ctx.json(teamMembersResponse)); + }), + ); + + test("re-send invitation", async () => { + const resendInvitationHandler = jest.fn(); + server.use( + rest.post("/api/team/resend-invitation", (req, res, ctx) => { + resendInvitationHandler(); + return res.once(ctx.status(200)); + }), + ); + + render( + , + { wrapper }, + ); + + userEvent.click( + screen.getByTestId(`manage-team-member-${invitedUser.id}`), + ); + userEvent.click(screen.getByText("Re-send invitation")); + await waitFor(() => + expect(resendInvitationHandler).toBeCalledTimes(1), + ); + }); + + test("cancel invitation", async () => { + const cancelInvitationHandler = jest.fn(); + server.use( + rest.post("/api/team/remove-member", (req, res, ctx) => { + cancelInvitationHandler(); + return res.once(ctx.status(200)); + }), + ); + + render( + , + { wrapper }, + ); + + // await waitFor(() => screen.getByText((_, node) => node?.textContent === "Your team has 2 out of 2 team members.")); + userEvent.click( + screen.getByTestId(`manage-team-member-${invitedUser.id}`), + ); + userEvent.click(screen.getByText("Cancel invitation")); + userEvent.click(screen.getByText("Remove from my team")); + await waitFor(() => + expect(cancelInvitationHandler).toBeCalledTimes(1), + ); + await waitFor(() => + screen.getByText( + (_, node) => + node?.textContent === + "Your team has 1 out of 2 team members.", + ), + ); + }); + }); + + describe("getServerSideProps", () => { + const context: any = { + req: {}, + res: {}, + resolvedUrl: "/account/settings/team", + }; + sessionCache.set(context.req, context.req, new Session(session.user)); + + test("return team members and team limit", async () => { + const serverSideProps = await getServerSideProps(context); + // @ts-ignore + delete serverSideProps.props._superjson; + expect(serverSideProps).toStrictEqual({ + props: { + session: { + accessToken: null, + accessTokenExpiresAt: null, + accessTokenScope: null, + idToken: null, + refreshToken: null, + user: { + email: "test@fss.dev", + id: "auth0|1234567", + name: "test", + role: "owner", + teamId: "98765", + }, + }, + teamMembers: [ + { + createdAt: createdAt.toISOString(), + email: "test@fss.dev", + id: "auth0|1234567", + name: "test", + role: "owner", + teamId: "98765", + updatedAt: createdAt.toISOString(), + }, + ], + teamMembersLimit: 2, + }, + }); + }); + }); +}); diff --git a/src/__tests__/pages/api/auth/sign-in.ts b/src/__tests__/pages/api/auth/sign-in.ts new file mode 100644 index 0000000..8d91d6d --- /dev/null +++ b/src/__tests__/pages/api/auth/sign-in.ts @@ -0,0 +1,221 @@ +jest.mock("../../../../pages/api/user/_auth0", () => ({ + getAppMetadata: jest.fn(), + setAppMetadata: jest.fn(), +})); +jest.mock("../../../../database/users", () => ({ + findUser: jest.fn(), + createUser: jest.fn(), +})); +jest.mock("../../../../pages/api/_send-email", () => ({ + sendEmail: jest.fn(), +})); +jest.mock("../../../../database/teams", () => ({ createTeam: jest.fn() })); + +import { parse } from "set-cookie-parser"; + +import { callApiHandler } from "../../../../../jest/helpers"; +import signInHandler from "../../../../pages/api/auth/sign-in"; +import { sessionName } from "../../../../../lib/cookie-store"; +import { sendEmail } from "../../../../pages/api/_send-email"; +import { findUser, createUser } from "../../../../database/users"; +import { createTeam } from "../../../../database/teams"; +import { getAppMetadata } from "../../../../pages/api/user/_auth0"; + +describe("/api/auth/sign-in", () => { + const mockedSendEmail = sendEmail as jest.Mock< + ReturnType + >; + const mockedGetAppMetadata = getAppMetadata as jest.Mock< + ReturnType + >; + const mockedFindUser = findUser as jest.Mock>; + const mockedCreateUser = createUser as jest.Mock< + ReturnType + >; + const mockedCreateTeam = createTeam as jest.Mock< + ReturnType + >; + + beforeEach(() => { + mockedFindUser.mockClear(); + mockedCreateUser.mockClear(); + mockedGetAppMetadata.mockClear(); + mockedSendEmail.mockClear(); + mockedCreateTeam.mockClear(); + }); + + test("responds 405 to GET", async () => { + const response = await callApiHandler(signInHandler, { method: "GET" }); + expect(response.status).toBe(405); + }); + + test("responds 400 to POST with malformed body", async () => { + const response = await callApiHandler(signInHandler, { + method: "POST", + }); + expect(response.status).toBe(400); + }); + + test("responds 200 to POST with body from email login", async () => { + mockedFindUser.mockResolvedValue({ + id: "auth0|1234567", + teamId: "98765", + role: "owner", + email: "test@fss.dev", + name: "Groot", + createdAt: new Date(), + updatedAt: new Date(), + }); + mockedGetAppMetadata.mockResolvedValue({ teamId: "98765" }); + + const body = { + accessToken: + "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL21va2h0YXIuZXUuYXV0aDAuY29tLyIsInN1YiI6ImF1dGgwfDEyMzQ1NjciLCJhdWQiOlsiaHR0cHM6Ly9tb2todGFyLmV1LmF1dGgwLmNvbS9hcGkvdjIvIiwiaHR0cHM6Ly9tb2todGFyLmV1LmF1dGgwLmNvbS91c2VyaW5mbyJdLCJpYXQiOjE2MTkzMDMyNDUsImV4cCI6MTYxOTM4OTY0NSwiYXpwIjoiZUVWZm5rNkRCN2JDMzNOdUFvd3VjNTRmdXZZQm9OODQiLCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIHJlYWQ6Y3VycmVudF91c2VyIHVwZGF0ZTpjdXJyZW50X3VzZXJfbWV0YWRhdGEgZGVsZXRlOmN1cnJlbnRfdXNlcl9tZXRhZGF0YSBjcmVhdGU6Y3VycmVudF91c2VyX21ldGFkYXRhIGNyZWF0ZTpjdXJyZW50X3VzZXJfZGV2aWNlX2NyZWRlbnRpYWxzIGRlbGV0ZTpjdXJyZW50X3VzZXJfZGV2aWNlX2NyZWRlbnRpYWxzIHVwZGF0ZTpjdXJyZW50X3VzZXJfaWRlbnRpdGllcyBvZmZsaW5lX2FjY2VzcyIsImd0eSI6InBhc3N3b3JkIn0", + idToken: + "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJuaWNrbmFtZSI6InRlc3QiLCJuYW1lIjoiR3Jvb3QiLCJwaWN0dXJlIjoiaHR0cHM6Ly9zLmdyYXZhdGFyLmNvbS9hdmF0YXIvYTNiNWU5MjkzYWE1MjE1MTUxZTdjOWVhM2FlZjE4MGQ/cz00ODAmcj1wZyZkPWh0dHBzJTNBJTJGJTJGY2RuLmF1dGgwLmNvbSUyRmF2YXRhcnMlMkZnci5wbmciLCJ1cGRhdGVkX2F0IjoiMjAyMS0wNC0yNFQyMjoyNzoyNS43ODlaIiwiZW1haWwiOiJ0ZXN0QGZzcy5kZXYiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6Ly9tb2todGFyLmV1LmF1dGgwLmNvbS8iLCJzdWIiOiJhdXRoMHwxMjM0NTY3IiwiYXVkIjoiZUVWZm5rNkRCN2JDMzNOdUFvd3VjNTRmdXZZQm9OODQiLCJpYXQiOjE2MTkzMDMyNDUsImV4cCI6MTYxOTMzOTI0NX0", + scope: + "openid profile email read:current_user update:current_user_metadata delete:current_user_metadata create:current_user_metadata create:current_user_device_credentials delete:current_user_device_credentials update:current_user_identities offline_access", + tokenType: "Bearer", + refreshToken: + "v1.Mb2-7pHz02BMS63hMwHhjFCq5KPy0L29ZENzKIr-KaIFuSxhqDvLTac-ZLwrbQR6KOYRq21d5R5QLvZfeKZMCGM", + expiresIn: 86400, + }; + const response = await callApiHandler(signInHandler, { + method: "POST", + body, + }); + expect(response.status).toBe(200); + + const setCookieHeader = response.headers.get("set-cookie")!; + const parsedCookies = parse(setCookieHeader); + const cookieHasSession = parsedCookies.some((cookie) => + cookie.name.match(`^${sessionName}(?:\\.\\d)?$`), + ); + expect(cookieHasSession).toBe(true); + }); + + test("responds 200 to POST with body from 3rd party provider login", async () => { + mockedFindUser.mockResolvedValue({ + id: "google-oauth2|103423079071922868186", + teamId: "98765", + role: "owner", + email: "fss.user@gmail.com", + name: "FSS User", + createdAt: new Date(), + updatedAt: new Date(), + }); + mockedGetAppMetadata.mockResolvedValue({ teamId: "98765" }); + + const body = { + accessToken: + "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL21va2h0YXIuZXUuYXV0aDAuY29tLyIsInN1YiI6Imdvb2dsZS1vYXV0aDJ8MTAzNDIzMDc5MDcxOTIyODY4MTg2IiwiYXVkIjpbImh0dHBzOi8vbW9raHRhci5ldS5hdXRoMC5jb20vYXBpL3YyLyIsImh0dHBzOi8vbW9raHRhci5ldS5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNjEzMjI4ODY4LCJleHAiOjE2MTMyMzYwNjgsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgb2ZmbGluZV9hY2Nlc3MifQ", + idToken: + "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJnaXZlbl9uYW1lIjoiRlNTIiwiZmFtaWx5X25hbWUiOiJVc2VyIiwibmlja25hbWUiOiJmc3MudXNlciIsIm5hbWUiOiJGU1MgVXNlciIsInBpY3R1cmUiOiJodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vLXgycjhsd0ptUGpNL0FBQUFBQUFBQUFJL0FBQUFBQUFBQUFBL0FNWnV1Y25xLWFocW4tR2VyTHhwakEzODZDbi1kUEtyWkEvczk2LWMvcGhvdG8uanBnIiwibG9jYWxlIjoiZW4iLCJ1cGRhdGVkX2F0IjoiMjAyMS0wMi0xM1QxNTowNzo0OC4zNDlaIiwiZW1haWwiOiJmc3MudXNlckBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6Ly9tb2todGFyLmV1LmF1dGgwLmNvbS8iLCJzdWIiOiJnb29nbGUtb2F1dGgyfDEwMzQyMzA3OTA3MTkyMjg2ODE4NiIsImF1ZCI6ImF1ZGllbmNlIiwiaWF0IjoxNjEzMjI4ODY4LCJleHAiOjE2MTMyNjQ4NjgsImF0X2hhc2giOiJiQnFSWVlNUWJzUW5od1R5dGR0SmZBIiwibm9uY2UiOiJDeXJuVm1PU3Q0b0pwWkFDaTQwaXU1YUxON3JGM0JrayJ9.G-mNH6NegAJvaX77nijdrBAXJtNbwzyzLSFLvZOuRMojTxHaecwQyPw4oyj98fVx4K7Wvv7XuyTRcP54DsAiyXwaFCyCdU_X0aE058gmXxmD89udd2yWnz24DgjrNmR2EPqcXRZ5eqNH4_XtfhQAtUWhGpvBbmuLfrMphJLfzWn8rMJP185ahTosjrKl8Hun4nRb3IGYQcfOZzDv8JTki8p38tnVIxZA5QBXNDSxNYaoc2u6QsAd8srQ2aScotPuNG82YAECdQ6ySc-ODGtMQsCr3CwqHVhqUD2nyQtuZ1iiMKCcBKHGCVcuMvibKjKrAV-rFAiYccZ3b-AsmB_u6w", + idTokenPayload: { + given_name: "FSS", + family_name: "User", + nickname: "fss.user", + name: "FSS User", + picture: + "https://lh3.googleusercontent.com/-x2r8lwJmPjM/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnq-ahqn-GerLxpjA386Cn-dPKrZA/s96-c/photo.jpg", + locale: "en", + updated_at: "2021-02-13T15:07:48.349Z", + email: "fss.user@gmail.com", + email_verified: true, + iss: "https://mokhtar.eu.auth0.com/", + sub: "google-oauth2|103423079071922868186", + aud: "audience", + iat: 1613228868, + exp: 1613264868, + at_hash: "bBqRYYMQbsQnhwTytdtJfA", + nonce: "CyrnVmOSt4oJpZACi40iu5aLN7rF3Bkk", + }, + appState: null, + refreshToken: null, + state: "xKre8N8V5iq4s4e6GPYvwpRc00WtIn7u", + expiresIn: 7200, + tokenType: "Bearer", + scope: "openid profile email offline_access", + }; + const response = await callApiHandler(signInHandler, { + method: "POST", + body, + }); + expect(response.status).toBe(200); + + const setCookieHeader = response.headers.get("set-cookie")!; + const parsedCookies = parse(setCookieHeader); + const cookieHasSession = parsedCookies.some((cookie) => + cookie.name.match(`^${sessionName}(?:\\.\\d)?$`), + ); + expect(cookieHasSession).toBe(true); + }); + + test("responds 200 to POST with body from 3rd party provider login for the first time", async () => { + mockedFindUser.mockResolvedValue(undefined); + mockedCreateTeam.mockResolvedValue({ + id: "98765", + subscriptionId: null, + teamMembersLimit: 1, + createdAt: new Date(), + updatedAt: new Date(), + }); + mockedCreateUser.mockResolvedValue({ + id: "google-oauth2|103423079071922868186", + teamId: "98765", + role: "owner", + email: "fss.user@gmail.com", + name: "FSS User", + createdAt: new Date(), + updatedAt: new Date(), + }); + + const body = { + accessToken: + "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL21va2h0YXIuZXUuYXV0aDAuY29tLyIsInN1YiI6Imdvb2dsZS1vYXV0aDJ8MTAzNDIzMDc5MDcxOTIyODY4MTg2IiwiYXVkIjpbImh0dHBzOi8vbW9raHRhci5ldS5hdXRoMC5jb20vYXBpL3YyLyIsImh0dHBzOi8vbW9raHRhci5ldS5hdXRoMC5jb20vdXNlcmluZm8iXSwiaWF0IjoxNjEzMjI4ODY4LCJleHAiOjE2MTMyMzYwNjgsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwgb2ZmbGluZV9hY2Nlc3MifQ", + idToken: + "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJnaXZlbl9uYW1lIjoiRlNTIiwiZmFtaWx5X25hbWUiOiJVc2VyIiwibmlja25hbWUiOiJmc3MudXNlciIsIm5hbWUiOiJGU1MgVXNlciIsInBpY3R1cmUiOiJodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vLXgycjhsd0ptUGpNL0FBQUFBQUFBQUFJL0FBQUFBQUFBQUFBL0FNWnV1Y25xLWFocW4tR2VyTHhwakEzODZDbi1kUEtyWkEvczk2LWMvcGhvdG8uanBnIiwibG9jYWxlIjoiZW4iLCJ1cGRhdGVkX2F0IjoiMjAyMS0wMi0xM1QxNTowNzo0OC4zNDlaIiwiZW1haWwiOiJmc3MudXNlckBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6Ly9tb2todGFyLmV1LmF1dGgwLmNvbS8iLCJzdWIiOiJnb29nbGUtb2F1dGgyfDEwMzQyMzA3OTA3MTkyMjg2ODE4NiIsImF1ZCI6ImF1ZGllbmNlIiwiaWF0IjoxNjEzMjI4ODY4LCJleHAiOjE2MTMyNjQ4NjgsImF0X2hhc2giOiJiQnFSWVlNUWJzUW5od1R5dGR0SmZBIiwibm9uY2UiOiJDeXJuVm1PU3Q0b0pwWkFDaTQwaXU1YUxON3JGM0JrayJ9.G-mNH6NegAJvaX77nijdrBAXJtNbwzyzLSFLvZOuRMojTxHaecwQyPw4oyj98fVx4K7Wvv7XuyTRcP54DsAiyXwaFCyCdU_X0aE058gmXxmD89udd2yWnz24DgjrNmR2EPqcXRZ5eqNH4_XtfhQAtUWhGpvBbmuLfrMphJLfzWn8rMJP185ahTosjrKl8Hun4nRb3IGYQcfOZzDv8JTki8p38tnVIxZA5QBXNDSxNYaoc2u6QsAd8srQ2aScotPuNG82YAECdQ6ySc-ODGtMQsCr3CwqHVhqUD2nyQtuZ1iiMKCcBKHGCVcuMvibKjKrAV-rFAiYccZ3b-AsmB_u6w", + idTokenPayload: { + given_name: "FSS", + family_name: "User", + nickname: "fss.user", + name: "FSS User", + picture: + "https://lh3.googleusercontent.com/-x2r8lwJmPjM/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucnq-ahqn-GerLxpjA386Cn-dPKrZA/s96-c/photo.jpg", + locale: "en", + updated_at: "2021-02-13T15:07:48.349Z", + email: "fss.user@gmail.com", + email_verified: true, + iss: "https://mokhtar.eu.auth0.com/", + sub: "google-oauth2|103423079071922868186", + aud: "audience", + iat: 1613228868, + exp: 1613264868, + at_hash: "bBqRYYMQbsQnhwTytdtJfA", + nonce: "CyrnVmOSt4oJpZACi40iu5aLN7rF3Bkk", + }, + appState: null, + refreshToken: null, + state: "xKre8N8V5iq4s4e6GPYvwpRc00WtIn7u", + expiresIn: 7200, + tokenType: "Bearer", + scope: "openid profile email offline_access", + }; + const response = await callApiHandler(signInHandler, { + method: "POST", + body, + }); + expect(response.status).toBe(200); + expect(mockedSendEmail).toBeCalledTimes(1); + expect(mockedSendEmail.mock.calls[0][0].recipients[0]).toBe( + "fss.user@gmail.com", + ); + + const setCookieHeader = response.headers.get("set-cookie")!; + const parsedCookies = parse(setCookieHeader); + const cookieHasSession = parsedCookies.some((cookie) => + cookie.name.match(`^${sessionName}(?:\\.\\d)?$`), + ); + expect(cookieHasSession).toBe(true); + }); +}); diff --git a/src/__tests__/pages/api/auth/sign-up.ts b/src/__tests__/pages/api/auth/sign-up.ts new file mode 100644 index 0000000..324fad1 --- /dev/null +++ b/src/__tests__/pages/api/auth/sign-up.ts @@ -0,0 +1,95 @@ +jest.mock("../../../../pages/api/user/_auth0", () => ({ + setAppMetadata: jest.fn(), +})); +jest.mock("../../../../pages/api/_send-email", () => ({ + sendEmail: jest.fn(), +})); +jest.mock("../../../../database/users", () => ({ createUser: jest.fn() })); +jest.mock("../../../../database/teams", () => ({ createTeam: jest.fn() })); + +import { parse } from "set-cookie-parser"; + +import { callApiHandler } from "../../../../../jest/helpers"; +import signUpHandler from "../../../../pages/api/auth/sign-up"; +import { sessionName } from "../../../../../lib/cookie-store"; +import { sendEmail } from "../../../../pages/api/_send-email"; +import { createUser } from "../../../../database/users"; +import { createTeam } from "../../../../database/teams"; + +describe("/api/auth/sign-up", () => { + const mockedSendEmail = sendEmail as jest.Mock< + ReturnType + >; + const mockedCreateUser = createUser as jest.Mock< + ReturnType + >; + const mockedCreateTeam = createTeam as jest.Mock< + ReturnType + >; + + beforeEach(() => { + mockedSendEmail.mockClear(); + mockedCreateUser.mockClear(); + mockedCreateTeam.mockClear(); + }); + + test("responds 405 to GET", async () => { + const response = await callApiHandler(signUpHandler, { method: "GET" }); + expect(response.status).toBe(405); + }); + + test("responds 400 to POST with malformed body", async () => { + const response = await callApiHandler(signUpHandler, { + method: "POST", + }); + expect(response.status).toBe(400); + }); + + test("responds 200 to POST with body from email login", async () => { + mockedCreateUser.mockResolvedValue({ + id: "auth0|1234567", + teamId: "98765", + role: "owner", + email: "test@fss.dev", + name: "Groot", + createdAt: new Date(), + updatedAt: new Date(), + }); + mockedCreateTeam.mockResolvedValue({ + id: "98765", + subscriptionId: null, + teamMembersLimit: 1, + createdAt: new Date(), + updatedAt: new Date(), + }); + + const body = { + accessToken: + "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL21va2h0YXIuZXUuYXV0aDAuY29tLyIsInN1YiI6ImF1dGgwfDEyMzQ1NjciLCJhdWQiOlsiaHR0cHM6Ly9tb2todGFyLmV1LmF1dGgwLmNvbS9hcGkvdjIvIiwiaHR0cHM6Ly9tb2todGFyLmV1LmF1dGgwLmNvbS91c2VyaW5mbyJdLCJpYXQiOjE2MTkzMDMyNDUsImV4cCI6MTYxOTM4OTY0NSwiYXpwIjoiZUVWZm5rNkRCN2JDMzNOdUFvd3VjNTRmdXZZQm9OODQiLCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIGVtYWlsIHJlYWQ6Y3VycmVudF91c2VyIHVwZGF0ZTpjdXJyZW50X3VzZXJfbWV0YWRhdGEgZGVsZXRlOmN1cnJlbnRfdXNlcl9tZXRhZGF0YSBjcmVhdGU6Y3VycmVudF91c2VyX21ldGFkYXRhIGNyZWF0ZTpjdXJyZW50X3VzZXJfZGV2aWNlX2NyZWRlbnRpYWxzIGRlbGV0ZTpjdXJyZW50X3VzZXJfZGV2aWNlX2NyZWRlbnRpYWxzIHVwZGF0ZTpjdXJyZW50X3VzZXJfaWRlbnRpdGllcyBvZmZsaW5lX2FjY2VzcyIsImd0eSI6InBhc3N3b3JkIn0", + idToken: + "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJuaWNrbmFtZSI6InRlc3QiLCJuYW1lIjoiR3Jvb3QiLCJwaWN0dXJlIjoiaHR0cHM6Ly9zLmdyYXZhdGFyLmNvbS9hdmF0YXIvYTNiNWU5MjkzYWE1MjE1MTUxZTdjOWVhM2FlZjE4MGQ/cz00ODAmcj1wZyZkPWh0dHBzJTNBJTJGJTJGY2RuLmF1dGgwLmNvbSUyRmF2YXRhcnMlMkZnci5wbmciLCJ1cGRhdGVkX2F0IjoiMjAyMS0wNC0yNFQyMjoyNzoyNS43ODlaIiwiZW1haWwiOiJ0ZXN0QGZzcy5kZXYiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6Ly9tb2todGFyLmV1LmF1dGgwLmNvbS8iLCJzdWIiOiJhdXRoMHwxMjM0NTY3IiwiYXVkIjoiZUVWZm5rNkRCN2JDMzNOdUFvd3VjNTRmdXZZQm9OODQiLCJpYXQiOjE2MTkzMDMyNDUsImV4cCI6MTYxOTMzOTI0NX0", + scope: + "openid profile email read:current_user update:current_user_metadata delete:current_user_metadata create:current_user_metadata create:current_user_device_credentials delete:current_user_device_credentials update:current_user_identities offline_access", + tokenType: "Bearer", + refreshToken: + "v1.Mb2-7pHz02BMS63hMwHhjFCq5KPy0L29ZENzKIr-KaIFuSxhqDvLTac-ZLwrbQR6KOYRq21d5R5QLvZfeKZMCGM", + expiresIn: 86400, + }; + const response = await callApiHandler(signUpHandler, { + method: "POST", + body, + }); + expect(response.status).toBe(200); + expect(mockedSendEmail).toBeCalledTimes(1); + expect(mockedSendEmail.mock.calls[0][0].recipients[0]).toBe( + "test@fss.dev", + ); + + const setCookieHeader = response.headers.get("set-cookie")!; + const parsedCookies = parse(setCookieHeader); + const cookieHasSession = parsedCookies.some((cookie) => + cookie.name.match(`^${sessionName}(?:\\.\\d)?$`), + ); + expect(cookieHasSession).toBe(true); + }); +}); diff --git a/src/__tests__/pages/api/subscription/_subscription-created.ts b/src/__tests__/pages/api/subscription/_subscription-created.ts new file mode 100644 index 0000000..5499b1a --- /dev/null +++ b/src/__tests__/pages/api/subscription/_subscription-created.ts @@ -0,0 +1,164 @@ +jest.mock("../../../../database/teams", () => ({ + findTeam: jest.fn(), + updateTeam: jest.fn(), +})); +jest.mock("../../../../database/subscriptions", () => ({ + ...jest.requireActual("../../../../database/subscriptions"), + createSubscription: jest.fn(), + findTeamSubscription: jest.fn(), + updateSubscription: jest.fn(), +})); +jest.mock("../../../../pages/api/_send-email", () => ({ + sendEmail: jest.fn(), +})); +jest.mock("../../../../subscription/plans", () => ({ + PAID_PLANS: { + "229": { teamMembersLimit: 2 }, + }, +})); + +import { subscriptionCreatedHandler } from "../../../../pages/api/subscription/_subscription-created"; +import { callApiHandler } from "../../../../../jest/helpers"; +import { findTeam, updateTeam } from "../../../../database/teams"; +import { + createSubscription, + findUserSubscription, + updateSubscription, +} from "../../../../database/subscriptions"; +import { sendEmail } from "../../../../pages/api/_send-email"; + +describe("subscription_created webhook event", () => { + const mockedSendEmail = sendEmail as jest.Mock< + ReturnType + >; + const mockedFindTeam = findTeam as jest.Mock>; + const mockedUpdateTeam = updateTeam as jest.Mock< + ReturnType + >; + const mockedCreateSubscription = createSubscription as jest.Mock< + ReturnType + >; + const mockedFindTeamSubscription = findUserSubscription as jest.Mock< + ReturnType + >; + const mockedUpdateSubscription = updateSubscription as jest.Mock< + ReturnType + >; + + mockedSendEmail.mockResolvedValue(); + + beforeEach(() => { + mockedSendEmail.mockClear(); + mockedFindTeam.mockClear(); + mockedUpdateTeam.mockClear(); + mockedCreateSubscription.mockClear(); + mockedFindTeamSubscription.mockClear(); + mockedUpdateSubscription.mockClear(); + }); + + test("responds 400 to malformed event", async () => { + const { status } = await callApiHandler(subscriptionCreatedHandler, { + method: "POST", + body: {}, + }); + expect(status).toBe(400); + }); + + test("responds 404 to valid event with unknown team", async () => { + const teamId = "123"; + const subscriptionId = "222"; + const planId = "229"; + + const event = { + alert_id: 1789225139, + alert_name: "subscription_created", + cancel_url: + "https://checkout.paddle.com/subscription/cancel?user=4&subscription=9&hash=098bc6b2f641b4f7595fead9f566682f8c512eb0", + checkout_id: "4-d4d49ef5de45892-d6b186adb1", + currency: "GBP", + email: "reichert.arnaldo@example.net", + event_time: "2021-05-07 13:50:58", + linked_subscriptions: "6, 8, 7", + marketing_consent: undefined, + next_bill_date: "2021-06-02", + passthrough: `{"teamId":"${teamId}"}`, + quantity: 16, + source: "Activation", + status: "active", + subscription_id: subscriptionId, + subscription_plan_id: planId, + unit_price: "unit_price", + update_url: + "https://checkout.paddle.com/subscription/update?user=6&subscription=5&hash=018ca7a6b63aaf4c68b7405735084788a3cdd5c6", + user_id: "9", + p_signature: + "Pi/tWLioiCwtTa5HU7N29H1AEDXhfH6+YiBGzu4jxqmXOHZXWVQz0sFMkh4z3Ykp79WgChanGm6kysHk96eGGgM5cg7Y6TCXYFnwHhQdNkkQTPpNrDGbKXdJxj7JJNqa0JxTamMRIXi0o6Azdr2rOgvm+6jQ/FULtZxyqUJSlnm9UrC/QKwPpajtIMUvZy4uSUZnGQl5ynisoyazfFMN3YJ5TMDm0K5Yxx6RC0b+G5AItub900s3jjr41VYhm7svwE/jUCeeNoKT/CIrvBDgWTrqdQYVscTtiSkss9DguDA8yWx2jmzR+fobIxunH3EZ5j7dPFu8WgYtfxeeaaKyChXdl0ubjw2Jwq9PfXjClZnQj6zcEi947329oXN42/lD9FCDbiDkzIiOvOH+RNc3pbPTFfWekcHsc4GEfs2u0ahQ8SbEsLNkki+zF2kaUZrP3qGALnUeHqdSfqivwlEzrb8Qu0Kj6VZfA4zMyAGwgIi2UOFTbXpdck1VJAc0+nafGom9gqTtmqRHwaroKGNKJ7t7AIgjcHZ8I8cgM5Q+OB1i7/JF8aA/WMe4jTdprxeda1XYHCHop+lmwFcSbCc95ZTeD+A0XyGB824eBNU4VTeWfvGhrFNU94qKZXWSq29fl04XaI3hKS1fGbERJ3dz5DUyEU9KpBjSQ+h2MKdbCNw=", + }; + + mockedFindTeam.mockResolvedValueOnce(undefined); + + const { status } = await callApiHandler(subscriptionCreatedHandler, { + method: "POST", + body: event, + }); + + expect(status).toBe(404); + expect(mockedCreateSubscription).toHaveBeenCalledTimes(0); + }); + + test("responds 200 to valid event", async () => { + const teamId = "123"; + const subscriptionId = "222"; + const planId = "229"; + + const event = { + alert_id: 1789225139, + alert_name: "subscription_created", + cancel_url: + "https://checkout.paddle.com/subscription/cancel?user=4&subscription=9&hash=098bc6b2f641b4f7595fead9f566682f8c512eb0", + checkout_id: "4-d4d49ef5de45892-d6b186adb1", + currency: "GBP", + email: "reichert.arnaldo@example.net", + event_time: "2021-05-07 13:50:58", + linked_subscriptions: "6, 8, 7", + marketing_consent: undefined, + next_bill_date: "2021-06-02", + passthrough: `{"teamId":"${teamId}"}`, + quantity: 16, + source: "Activation", + status: "active", + subscription_id: subscriptionId, + subscription_plan_id: planId, + unit_price: "unit_price", + update_url: + "https://checkout.paddle.com/subscription/update?user=6&subscription=5&hash=018ca7a6b63aaf4c68b7405735084788a3cdd5c6", + user_id: "9", + p_signature: + "Pi/tWLioiCwtTa5HU7N29H1AEDXhfH6+YiBGzu4jxqmXOHZXWVQz0sFMkh4z3Ykp79WgChanGm6kysHk96eGGgM5cg7Y6TCXYFnwHhQdNkkQTPpNrDGbKXdJxj7JJNqa0JxTamMRIXi0o6Azdr2rOgvm+6jQ/FULtZxyqUJSlnm9UrC/QKwPpajtIMUvZy4uSUZnGQl5ynisoyazfFMN3YJ5TMDm0K5Yxx6RC0b+G5AItub900s3jjr41VYhm7svwE/jUCeeNoKT/CIrvBDgWTrqdQYVscTtiSkss9DguDA8yWx2jmzR+fobIxunH3EZ5j7dPFu8WgYtfxeeaaKyChXdl0ubjw2Jwq9PfXjClZnQj6zcEi947329oXN42/lD9FCDbiDkzIiOvOH+RNc3pbPTFfWekcHsc4GEfs2u0ahQ8SbEsLNkki+zF2kaUZrP3qGALnUeHqdSfqivwlEzrb8Qu0Kj6VZfA4zMyAGwgIi2UOFTbXpdck1VJAc0+nafGom9gqTtmqRHwaroKGNKJ7t7AIgjcHZ8I8cgM5Q+OB1i7/JF8aA/WMe4jTdprxeda1XYHCHop+lmwFcSbCc95ZTeD+A0XyGB824eBNU4VTeWfvGhrFNU94qKZXWSq29fl04XaI3hKS1fGbERJ3dz5DUyEU9KpBjSQ+h2MKdbCNw=", + }; + + mockedFindTeam.mockResolvedValueOnce({ + id: teamId, + subscriptionId: null, + teamMembersLimit: 1, + createdAt: new Date(), + updatedAt: new Date(), + }); + + const { status } = await callApiHandler(subscriptionCreatedHandler, { + method: "POST", + body: event, + }); + + expect(status).toBe(200); + expect(mockedCreateSubscription).toHaveBeenCalledTimes(1); + expect(mockedUpdateTeam).toHaveBeenCalledWith({ + id: teamId, + subscriptionId, + teamMembersLimit: 2, + }); + expect(mockedSendEmail.mock.calls[0][0].recipients).toStrictEqual([ + event.email, + ]); + }); +}); diff --git a/src/__tests__/pages/api/subscription/webhook.ts b/src/__tests__/pages/api/subscription/webhook.ts new file mode 100644 index 0000000..64a8640 --- /dev/null +++ b/src/__tests__/pages/api/subscription/webhook.ts @@ -0,0 +1,111 @@ +jest.mock( + "../../../../pages/api/subscription/_subscription-payment-succeeded", + () => ({ + subscriptionPaymentSucceededHandler: jest.fn(), + }), +); + +import type { NextApiResponse } from "next"; + +import { subscriptionPaymentSucceededHandler } from "../../../../pages/api/subscription/_subscription-payment-succeeded"; +import { callApiHandler } from "../../../../../jest/helpers"; +import webhookHandler from "../../../../pages/api/subscription/webhook"; + +describe("/api/subscription/webhook", () => { + const mockedSubscriptionPaymentSucceededHandler = subscriptionPaymentSucceededHandler as jest.Mock< + ReturnType + >; + mockedSubscriptionPaymentSucceededHandler.mockImplementation( + async (_, res: NextApiResponse) => res.status(200).end(), + ); + + beforeEach(() => { + mockedSubscriptionPaymentSucceededHandler.mockClear(); + }); + + test("responds 405 to GET", async () => { + const { status } = await callApiHandler(webhookHandler, { + method: "GET", + }); + expect(status).toBe(405); + }); + + test("responds 500 to POST with invalid webhook event", async () => { + const response = await callApiHandler(webhookHandler, { + method: "POST", + body: {}, + }); + expect(response.status).toBe(500); + }); + + test("responds 400 to POST with unsupported webhook event", async () => { + const response = await callApiHandler(webhookHandler, { + method: "POST", + body: payoutPaid, + }); + expect(response.status).toBe(400); + }); + + test("responds 200 to POST with supported and valid webhook event", async () => { + const response = await callApiHandler(webhookHandler, { + method: "POST", + body: subscriptionPaymentSucceeded, + }); + expect(response.status).toBe(200); + expect(mockedSubscriptionPaymentSucceededHandler).toHaveBeenCalledTimes( + 1, + ); + }); +}); + +const payoutPaid = { + alert_id: 833499511, + alert_name: "transfer_paid", + amount: 648.8, + currency: "USD", + event_time: "2021-05-07 00:29:50", + payout_id: 6, + status: "paid", + p_signature: + "p5AwTrjZPgczHkU8CHiUc7VH1mn8FLH+s+JUaNqrlY7xhaD+KG2Aq6njnwH4Q+xGN51pwpFZDpjBI6EZIsYlP/Rs3GWObJU7I2xOpvLXIrvjMDeIgNVL2s+BWeqqzylFYGsH1uKHQIFa5fm/JiUEErHecoNyk3GcwP7j2qeiHra64i+mjhzKsprUd4NUlhxD7nEpfRpM7aMuMii7WE/EGBBW12bxiJCRcrm0yuSrDLTZCbiOnK6ddPqsYrSPjWJjSOFXblQK+erOTuvOZuRaf5eiZodbiOyeGsgZ/AhfqXiWt0bOpbuqgMkofUJSgz5AV3y3HgqxhhsrXCTRgdexr/6Cx7+k1mm2AWMhuTn3DU3+2eDkiNIeP52hPtjx6h/Kxbb7/OoxYB9rfDT42m553nPbWxdSGw6Zz5h2oWOH0goFAFMi9CSXS+HilXpmKWc2KjIFYyu8Yu+3lZ2KAMWPwDEc8liQsWZVSo/R4SXcd3t5p+k3uhFwRkwIoeF7If25MQADEBK1s84p5tZTgo4EPkqEwRYZdRiTBZ+xzrrEOvsAA192hEXcjWRnFlqYeMITY/j2rf/ZTlXXbLw1Bcje1vr27z3Qe64GP4m4Whrh37N0kOkSElMXnCMx8fj3WgyMyHZhKGE96t+sfuA1NJy/dGl968uJIz1XVWh9F+6fcGo=", +}; + +const subscriptionPaymentSucceeded = { + alert_id: 1667920177, + alert_name: "subscription_payment_succeeded", + balance_currency: "USD", + balance_earnings: 791.71, + balance_fee: 774.49, + balance_gross: 102.03, + balance_tax: 282.55, + checkout_id: "4-599cbbe6fe49dc0-4c628740d6", + country: "DE", + coupon: "Coupon 5", + currency: "USD", + customer_name: "customer_name", + earnings: 253.39, + email: "baron.daugherty@example.org", + event_time: "2021-05-07 00:18:15", + fee: 0.11, + initial_payment: true, + instalments: 6, + marketing_consent: 1, + next_bill_date: "2021-05-23", + next_payment_amount: "next_payment_amount", + order_id: 7, + passthrough: "Example String", + payment_method: "card", + payment_tax: 0.69, + plan_name: "Example String", + quantity: 62, + receipt_url: "https://my.paddle.com/receipt/1/a18b96518813baa-a470ddf641", + sale_gross: 556.08, + status: "trialing", + subscription_id: 3, + subscription_payment_id: 4, + subscription_plan_id: 9, + unit_price: "unit_price", + user_id: 5, + p_signature: + "eucBVrNR/4KySSm+sSGwcBcaCXXZFEyTi4OY0nCxAEeGAc3QaBpGI8r+Ma3J4i7XmKOSYxalDx2nuXB2igqomg9YPQirmcgFOECX8NFDLvZeu3/V7SYuEeGHLmjZFyOSK8htwGVheTzQiFGbGq8ALPD1vgb0CME2iulfLC7kiRGut8enpLWUGSXlzXP0AVvxWkS7MyT0EQEE+b62EDEavyds2YaS7/tWQVoKBuHeWm7JqjdbEg4b+ht7ev9ns2RgyGNxsRs3+w9rpL8uAIzib7m24aWqqfBoB2kMhJvM6csfgqDZ6gF3nOG2PE1VJzD4G2Y0RJsZPC3BboQmE//RIS1UdyxKEwGHi8cDPIJIIzn31xx42uJulyX69w0JihBnTfasuEXy9gZKB96XCsMmks9nBQZAi+ZNteBfT7unToXLMwHn0mPDTUj+NpEWjTdIUCL6JM4Ewk3cDTs9tleo0TAXxikk06YnjJbGxL7mEwofB31rFlUyzmkKtf935TMGGe4cbhBdGcLaImithNyo48mWQvTg8F2yvIa6vZ3rmbGL6oNe3GT8q7r+HBLdatv5uDoomboZqh7dsNEmpv6VwJtmeNEoQs8//VD/MCcLFPaKCZp8QmYBwvYXdVunxSwwCF6rwEm77U8Jo/2Ua7giCQj+ekkgJ7uE4ubo10lB5bE=", +}; diff --git a/src/__tests__/pages/api/team/invite-member.ts b/src/__tests__/pages/api/team/invite-member.ts new file mode 100644 index 0000000..d9f6265 --- /dev/null +++ b/src/__tests__/pages/api/team/invite-member.ts @@ -0,0 +1,90 @@ +jest.mock("../../../../pages/api/_send-email", () => ({ + sendEmail: jest.fn(), +})); +jest.mock("../../../../database/users", () => ({ + createInvitedUser: jest.fn(), + findUserByEmail: jest.fn(), +})); +jest.mock("../../../../pages/api/user/_auth0", () => ({ + createAuth0User: jest.fn(), +})); + +import inviteMemberHandler from "../../../../pages/api/team/invite-member"; +import { callApiHandler } from "../../../../../jest/helpers"; +import { sendEmail } from "../../../../pages/api/_send-email"; +import { createInvitedUser, findUserByEmail } from "../../../../database/users"; +import { createAuth0User } from "../../../../pages/api/user/_auth0"; + +describe("/api/team/invite-member", () => { + const mockedSendEmail = sendEmail as jest.Mock< + ReturnType + >; + const mockedCreateInvitedUser = createInvitedUser as jest.Mock< + ReturnType + >; + const mockedFindUserByEmail = findUserByEmail as jest.Mock< + ReturnType + >; + const mockedCreateAuth0User = createAuth0User as jest.Mock< + ReturnType + >; + + mockedSendEmail.mockResolvedValue(); + + beforeEach(() => { + mockedSendEmail.mockClear(); + mockedCreateInvitedUser.mockClear(); + mockedFindUserByEmail.mockClear(); + mockedCreateAuth0User.mockClear(); + }); + + test("responds 405 to GET", async () => { + const { status } = await callApiHandler(inviteMemberHandler, { + method: "GET", + authentication: "auth0", + }); + expect(status).toBe(405); + }); + + test("responds 400 to POST with malformed body", async () => { + const { status } = await callApiHandler(inviteMemberHandler, { + method: "POST", + authentication: "auth0", + body: {}, + }); + expect(status).toBe(400); + }); + + test("responds 500 to POST with valid body but already taken email address", async () => { + const inviteeEmail = "test@fss.dev"; + mockedFindUserByEmail.mockResolvedValueOnce({ + email: inviteeEmail, + } as any); + + const body = { inviteeEmail }; + const { status } = await callApiHandler(inviteMemberHandler, { + method: "POST", + authentication: "auth0", + body, + }); + expect(status).toBe(500); + }); + + test("responds 200 to POST with valid body", async () => { + const inviteeUserId = "2"; + const inviteeEmail = "test@fss.dev"; + mockedCreateAuth0User.mockResolvedValueOnce({ user_id: inviteeUserId }); + + const body = { inviteeEmail }; + const { status } = await callApiHandler(inviteMemberHandler, { + method: "POST", + authentication: "auth0", + body, + }); + expect(status).toBe(200); + expect(mockedSendEmail.mock.calls[0][0].recipients).toStrictEqual([ + inviteeEmail, + ]); + expect(mockedCreateInvitedUser).toHaveBeenCalledTimes(1); + }); +}); diff --git a/src/__tests__/pages/api/user/session.ts b/src/__tests__/pages/api/user/session.ts new file mode 100644 index 0000000..0d1187f --- /dev/null +++ b/src/__tests__/pages/api/user/session.ts @@ -0,0 +1,21 @@ +import { callApiHandler } from "../../../../../jest/helpers"; +import sessionHandler from "../../../../pages/api/user/session"; + +describe("/api/user/session", () => { + test("responds 405 to POST", async () => { + const { status } = await callApiHandler(sessionHandler, { + method: "POST", + authentication: "auth0", + }); + expect(status).toBe(405); + }); + + test("responds 200 with session to GET", async () => { + const response = await callApiHandler(sessionHandler, { + method: "GET", + authentication: "auth0", + }); + const session = await response.json(); + expect(session.user).toBeDefined(); + }); +}); diff --git a/src/__tests__/pages/api/user/update-user.ts b/src/__tests__/pages/api/user/update-user.ts new file mode 100644 index 0000000..dc6dab5 --- /dev/null +++ b/src/__tests__/pages/api/user/update-user.ts @@ -0,0 +1,112 @@ +jest.mock("auth0", () => ({ + ManagementClient: jest.fn(), +})); + +jest.mock("openid-client", () => ({ + Issuer: { + discover: jest.fn().mockImplementation(() => ({ + Client: jest.fn().mockImplementation(() => ({ + refresh: jest.fn().mockImplementation(() => ({ + claims: jest.fn().mockResolvedValue({}), + })), + })), + })), + }, +})); + +jest.mock("../../../../database/users", () => ({ + findUser: jest.fn(), + updateUser: jest.fn(), +})); + +import { ManagementClient } from "auth0"; + +import { callApiHandler } from "../../../../../jest/helpers"; +import updateUserHandler from "../../../../pages/api/user/update-user"; +import { findUser, updateUser } from "../../../../database/users"; + +describe("/api/user/update-user", () => { + const mockedManagementClient = ManagementClient as ReturnType< + typeof jest.fn + >; + const mockedUpdateAuth0User = jest.fn(); + mockedManagementClient.mockImplementation(() => ({ + updateUser: mockedUpdateAuth0User, + })); + + const mockedFindUser = findUser as ReturnType; + const mockedUpdateUser = updateUser as ReturnType; + mockedFindUser.mockImplementation(() => + Promise.resolve({ + id: "auth0|1234567", + email: "test@fss.dev", + name: "Groot", + createdAt: new Date(), + updatedAt: new Date(), + }), + ); + + beforeEach(() => { + mockedUpdateAuth0User.mockClear(); + mockedFindUser.mockClear(); + mockedUpdateUser.mockClear(); + }); + + test("responds 401 to unauthenticated request", async () => { + const response = await callApiHandler(updateUserHandler, { + method: "POST", + }); + expect(response.status).toBe(401); + }); + + test("responds 405 to authenticated GET", async () => { + const response = await callApiHandler(updateUserHandler, { + method: "GET", + authentication: "auth0", + }); + expect(response.status).toBe(405); + }); + + test("responds 400 to authenticated POST with malformed body", async () => { + const body = { name: "", email: "", password: "" }; + const response = await callApiHandler(updateUserHandler, { + method: "POST", + authentication: "auth0", + body, + }); + expect(response.status).toBe(400); + }); + + test("updates user password and responds 200 to authenticated POST", async () => { + const body = { name: "", email: "", password: "dddddd" }; + const response = await callApiHandler(updateUserHandler, { + method: "POST", + authentication: "auth0", + body, + }); + expect(response.status).toBe(200); + expect(mockedUpdateAuth0User).toBeCalledTimes(1); + }); + + test("updates both user password & email and responds 200 to authenticated POST", async () => { + const body = { name: "", email: "test@fss.xyz", password: "dddddd" }; + const response = await callApiHandler(updateUserHandler, { + method: "POST", + authentication: "auth0", + body, + }); + expect(response.status).toBe(200); + expect(mockedUpdateAuth0User).toBeCalledTimes(2); + }); + + test("responds 403 to authenticated POST when updating email for a 3rd party-authenticated user", async () => { + const body = { name: "", email: "test@fss.xyz", password: "dddddd" }; + const response = await callApiHandler(updateUserHandler, { + method: "POST", + authentication: "google-oauth2", + body, + }); + expect(response.status).toBe(403); + expect(mockedUpdateAuth0User).toBeCalledTimes(0); + }); +}); diff --git a/src/__tests__/pages/auth/sign-in.tsx b/src/__tests__/pages/auth/sign-in.tsx new file mode 100644 index 0000000..0e4dc6f --- /dev/null +++ b/src/__tests__/pages/auth/sign-in.tsx @@ -0,0 +1,51 @@ +/** + * @jest-environment jsdom + */ + +jest.mock("next/router", () => ({ + useRouter: jest.fn().mockImplementation(() => ({ query: {} })), +})); +jest.mock("../../../hooks/use-auth"); + +import { rest } from "msw"; +import { setupServer } from "msw/node"; +import userEvent from "@testing-library/user-event"; +import { render, screen, waitFor } from "../../../../jest/testing-library"; + +import useAuth from "../../../hooks/use-auth"; + +import SignInPage from "../../../pages/auth/sign-in"; + +describe("/auth/sign-in", () => { + type RequestBody = { + email: string; + password: string; + }; + + const mockedUseAuth = useAuth as ReturnType; + const mockedSignIn = jest.fn(); + mockedUseAuth.mockImplementation(() => ({ + signIn: mockedSignIn, + socialProviders: [], + })); + + const server = setupServer( + rest.post("/api/auth/sign-in", (req, res, ctx) => { + return res(ctx.status(200)); + }), + ); + + beforeEach(() => mockedUseAuth.mockClear()); + beforeAll(() => server.listen()); + afterEach(() => server.resetHandlers()); + afterAll(() => server.close()); + + test("sign in with email", async () => { + render(); + + userEvent.type(screen.getByLabelText("Email address"), "test@fss.dev"); + userEvent.type(screen.getByLabelText(/^Password/)!, "password{enter}"); + + await waitFor(() => expect(mockedSignIn).toBeCalledTimes(1)); + }); +}); diff --git a/src/__tests__/pages/index.tsx b/src/__tests__/pages/index.tsx new file mode 100644 index 0000000..cf07418 --- /dev/null +++ b/src/__tests__/pages/index.tsx @@ -0,0 +1,46 @@ +/** + * @jest-environment jsdom + */ +import { rest } from "msw"; +import { setupServer } from "msw/node"; +import { render, screen } from "../../../jest/testing-library"; +import { waitFor } from "@testing-library/dom"; +import userEvent from "@testing-library/user-event"; + +import Index from "../../pages"; + +describe("/", () => { + test("landing page snapshot", () => { + const { asFragment } = render(); + + expect(asFragment()).toMatchSnapshot(); + }); + + describe("subscribe to newsletter", () => { + const server = setupServer( + rest.post("/api/newsletter/subscribe", (req, res, ctx) => { + return res(ctx.status(200)); + }), + ); + + beforeAll(() => server.listen()); + afterEach(() => server.resetHandlers()); + afterAll(() => server.close()); + + test("should display successful message after subscribing", async () => { + render(); + + userEvent.type( + screen.getByPlaceholderText("Email address"), + "test@fss.dev{enter}", + ); + await waitFor(() => + expect( + screen.getByText( + "Thanks! We'll let you know when we launch", + ), + ).toBeInTheDocument(), + ); + }); + }); +}); diff --git a/src/__tests__/pages/team/invitation.tsx b/src/__tests__/pages/team/invitation.tsx new file mode 100644 index 0000000..7aff012 --- /dev/null +++ b/src/__tests__/pages/team/invitation.tsx @@ -0,0 +1,131 @@ +/** + * @jest-environment jsdom + */ + +jest.mock("next/router", () => ({ + useRouter: jest.fn().mockImplementation(() => ({ query: {} })), +})); +jest.mock("../../../hooks/use-auth"); +jest.mock("../../../database/users", () => ({ + findTeamOwner: jest.fn(), + findUser: jest.fn(), +})); + +import { rest } from "msw"; +import { setupServer } from "msw/node"; +import userEvent from "@testing-library/user-event"; +import { render, screen, waitFor } from "../../../../jest/testing-library"; + +import InvitationPage, { + getServerSideProps, +} from "../../../pages/team/invitation"; +import useAuth from "../../../hooks/use-auth"; +import { findTeamOwner, findUser } from "../../../database/users"; +import { generateSignInToken } from "../../../pages/api/team/_invite"; + +describe("/team/invitation", () => { + type RequestBody = { + token: string; + name: string; + email: string; + password: string; + }; + + const mockedFindTeamOwner = findTeamOwner as jest.Mock< + ReturnType + >; + const mockedFindUser = findUser as jest.Mock>; + const mockedUseAuth = useAuth as ReturnType; + const mockedSignIn = jest.fn(); + mockedUseAuth.mockImplementation(() => ({ + signIn: mockedSignIn, + socialProviders: [], + })); + + const server = setupServer( + rest.post( + "/api/team/accept-invitation", + (req, res, ctx) => { + return res(ctx.status(200)); + }, + ), + ); + + beforeEach(() => { + mockedUseAuth.mockClear(); + mockedFindTeamOwner.mockClear(); + mockedFindUser.mockClear(); + }); + beforeAll(() => server.listen()); + afterEach(() => server.resetHandlers()); + afterAll(() => server.close()); + + const inviteeEmail = "test@fss.dev"; + const teamId = "123"; + const teamOwner: any = { + name: "Groot", + }; + + test("accept invitation", async () => { + render( + , + ); + + userEvent.type(screen.getByLabelText("Name"), "John Doe"); + userEvent.type(screen.getByLabelText(/^Password/)!, "password{enter}"); + + await waitFor(() => expect(mockedSignIn).toBeCalledTimes(1)); + }); + + describe("getServerSideProps", () => { + const baseContext: any = { + req: {}, + res: {}, + resolvedUrl: "/team/invitation", + }; + + test("decode token and return props", async () => { + const userId = "111"; + const invitedUser: any = { + id: userId, + email: inviteeEmail, + teamId, + pendingInvitation: true, + }; + mockedFindTeamOwner.mockResolvedValueOnce(teamOwner); + mockedFindUser.mockResolvedValueOnce(invitedUser); + const token = await generateSignInToken({ teamId, userId }); + const context = { + ...baseContext, + query: { token }, + }; + + const serverSideProps = await getServerSideProps(context); + expect(serverSideProps).toStrictEqual({ + props: { + email: inviteeEmail, + teamId, + teamOwner, + }, + }); + }); + + test("redirect to sign in page if token is invalid", async () => { + const context = { + ...baseContext, + query: { token: "" }, + }; + const serverSideProps = await getServerSideProps(context); + expect(serverSideProps).toStrictEqual({ + redirect: { + permanent: false, + destination: "/auth/sign-in?error=invalid-invitation", + }, + }); + }); + }); +}); diff --git a/src/components/alert.tsx b/src/components/alert.tsx new file mode 100644 index 0000000..e2adc0b --- /dev/null +++ b/src/components/alert.tsx @@ -0,0 +1,115 @@ +import type { ReactElement } from "react"; + +type AlertVariant = "error" | "success" | "info" | "warning"; + +type AlertVariantProps = { + backgroundColor: string; + icon: ReactElement; + titleTextColor: string; + messageTextColor: string; +}; + +type Props = { + title: string; + message: string; + variant: AlertVariant; +}; + +const ALERT_VARIANTS: Record = { + error: { + backgroundColor: "bg-red-50", + icon: ( + + + + ), + titleTextColor: "text-red-800", + messageTextColor: "text-red-700", + }, + success: { + backgroundColor: "bg-green-50", + icon: ( + + + + ), + titleTextColor: "text-green-800", + messageTextColor: "text-green-700", + }, + info: { + backgroundColor: "bg-primary-50", + icon: ( + + + + ), + titleTextColor: "text-primary-800", + messageTextColor: "text-primary-700", + }, + warning: { + backgroundColor: "bg-yellow-50", + icon: ( + + + + ), + titleTextColor: "text-yellow-800", + messageTextColor: "text-yellow-700", + }, +}; + +export default function Alert({ title, message, variant }: Props) { + const variantProperties = ALERT_VARIANTS[variant]; + + return ( +
+
+
{variantProperties.icon}
+
+

+ {title} +

+
+ {message} +
+
+
+
+ ); +} diff --git a/src/components/auth/auth-page.tsx b/src/components/auth/auth-page.tsx new file mode 100644 index 0000000..a25da1c --- /dev/null +++ b/src/components/auth/auth-page.tsx @@ -0,0 +1,224 @@ +import type { ReactNode } from "react"; +import { useState } from "react"; +import Link from "next/link"; +import { useRouter } from "next/router"; +import clsx from "clsx"; +import { useForm } from "react-hook-form"; + +import Alert from "../alert"; + +import useAuth from "../../hooks/use-auth"; + +import appLogger from "../../../lib/logger"; +import Logo from "../logo"; + +type Props = { + authType: "signIn" | "signUp"; +}; + +const logger = appLogger.child({ module: "AuthPage" }); + +type Form = { + name: string; + email: string; + password: string; +}; + +function AuthPage({ authType }: Props) { + const [isSubmitting, setIsSubmitting] = useState(false); + const auth = useAuth(); + const router = useRouter(); + const { register, handleSubmit } = useForm
(); + const [errorMessage, setErrorMessage] = useState(""); + + const texts = TEXTS[authType]; + let redirectTo: string; + if (Array.isArray(router.query.redirectTo)) { + redirectTo = router.query.redirectTo[0]; + } else { + redirectTo = router.query.redirectTo ?? "/messages"; + } + + const onSubmit = handleSubmit(async ({ email, password, name }) => { + setErrorMessage(""); + if (isSubmitting) { + return; + } + + setIsSubmitting(true); + const params = { email, password, name, redirectTo }; + try { + if (authType === "signIn") { + await auth.signIn(params); + } + + if (authType === "signUp") { + await auth.signUp(params); + } + } catch (error) { + logger.error(error); + console.log("error", error); + setErrorMessage( + error.isAxiosError ? + error.response.data.errorMessage : + error.message + ); + setIsSubmitting(false); + } + }); + + return ( +
+
+ +

+ {texts.title} +

+

+ {texts.subtitle} +

+
+ + {errorMessage ? ( +
+ +
+ ) : null} + +
+
+ + {authType === "signUp" ? ( +
+ +
+ +
+
+ ) : null} + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ + + +
+ +
+
+
+ ); +} + +export default AuthPage; + +type Texts = { + title: string; + subtitle: ReactNode; + actionButton: string; +}; + +const TEXTS: Record = { + signUp: { + title: "Create your account", + subtitle: ( + + + Already have an account? + + + ), + actionButton: "Sign up", + }, + signIn: { + title: "Welcome back!", + subtitle: ( + <> + Need an account?  + + + Create yours for free + + + + ), + actionButton: "Sign in", + }, +}; diff --git a/src/components/avatar.tsx b/src/components/avatar.tsx new file mode 100644 index 0000000..d05c1af --- /dev/null +++ b/src/components/avatar.tsx @@ -0,0 +1,15 @@ +import type { FunctionComponent } from "react"; + +type Props = { + name: string; +}; + +const Avatar: FunctionComponent = ({ name }) => ( + + + {name.substr(0, 2)} + + +); + +export default Avatar; diff --git a/src/components/billing/billing-plans.tsx b/src/components/billing/billing-plans.tsx new file mode 100644 index 0000000..1420da4 --- /dev/null +++ b/src/components/billing/billing-plans.tsx @@ -0,0 +1,261 @@ +import type { FunctionComponent } from "react"; +import { useEffect, useMemo, useRef, useState } from "react"; +import { RadioGroup } from "@headlessui/react"; +import clsx from "clsx"; +import { useForm } from "react-hook-form"; + +import Toggle from "../toggle"; +import Modal, { ModalTitle } from "../modal"; + +import useSubscription from "../../hooks/use-subscription"; +import useUser from "../../hooks/use-user"; + +import type { + Plan, + PlanId, + PlanName, +} from "../../subscription/plans"; +import { FREE, PLANS } from "../../subscription/plans"; + +type Props = { + activePlanId?: PlanId; +}; + +type Form = { + selectedPlanName: PlanName; +}; + +const BillingPlans: FunctionComponent = ({ activePlanId = FREE.id }) => { + const { userProfile } = useUser(); + const { subscribe, changePlan } = useSubscription(); + const [isConfirmationModalOpen, setIsConfirmationModalOpen] = useState( + false, + ); + const modalCancelButtonRef = useRef(null); + const activePlan = useMemo(() => { + const activePlan = PLANS[activePlanId]; + if (!activePlan) { + return FREE; + } + + return activePlan; + }, [activePlanId]); + const { + register, + unregister, + handleSubmit, + watch, + setValue, + formState: { isSubmitting }, + } = useForm
({ + defaultValues: getDefaultValues(activePlan), + }); + + useEffect(() => { + register("selectedPlanName"); + + const { selectedPlanName } = getDefaultValues(activePlan); + setValue("selectedPlanName", selectedPlanName); + + return () => { + unregister("selectedPlanName"); + }; + }, [register, unregister, activePlan, setValue]); + + const plans = PLANS; + const selectedPlanName = watch("selectedPlanName"); + const selectedPlan = useMemo(() => plans[selectedPlanName] ?? FREE, [ + plans, + selectedPlanName, + ]); + const isActivePlanSelected = activePlan.id === selectedPlan.id; + const isSubmitDisabled = isSubmitting || isActivePlanSelected; + + const onSubmit = handleSubmit(() => setIsConfirmationModalOpen(true)); + const closeModal = () => setIsConfirmationModalOpen(false); + const onConfirm = async () => { + if (isSubmitDisabled) { + return; + } + + const email = userProfile!.email!; + const userId = userProfile!.id; + const selectedPlanId = selectedPlan.id; + + const isMovingToPaidPlan = + activePlan.id === "free" && selectedPlanId !== "free"; + if (isMovingToPaidPlan) { + await subscribe({ email, userId, planId: selectedPlanId }); + } else { + await changePlan({ planId: selectedPlanId }); + } + }; + + return ( + <> + +
+
+
+ setValue("selectedPlanName", planName)} + className="relative bg-white rounded-md -space-y-px" + > + {Object.entries(plans).map( + ([planId, plan], index, plansEntries) => { + const isChecked = selectedPlan.id === planId; + console.log("selectedPlan.name", selectedPlan.name); + + return ( + +
+ + + {plan.name} + +
+ +

+ + {plan.price === "free" ? ( + "Free " + ) : ( + <> + ${plan.price} / + mo + + )} + +

+ +

+ {plan.description} +

+
+ ); + }, + )} +
+
+
+
+ +
+
+
+ + +
+
+ + Move to {selectedPlan.name} plan + +
+

+ Are you sure you want to move to{" "} + {selectedPlan.name} plan?{" "} +

+ {activePlan.name === "Team" && + selectedPlan.name !== "Team" ? ( +

+ Attention: moving to a smaller plan will + cause to remove extraneous team members to + fit the new plan's allowance! +

+ ) : null} +
+
+
+
+ + +
+
+ + ); +}; + +const getDefaultValues = (activePlan: Plan) => ({ + selectedPlanName: activePlan.name.toLowerCase(), +}); + +export default BillingPlans; diff --git a/src/components/button.tsx b/src/components/button.tsx new file mode 100644 index 0000000..818d1d2 --- /dev/null +++ b/src/components/button.tsx @@ -0,0 +1,58 @@ +import type { + ButtonHTMLAttributes, + FunctionComponent, + MouseEventHandler, +} from "react"; +import clsx from "clsx"; + +type Props = { + variant: Variant; + onClick?: MouseEventHandler; + isDisabled?: boolean; + type: ButtonHTMLAttributes["type"]; +}; + +const Button: FunctionComponent = ({ + children, + type, + variant, + onClick, + isDisabled, +}) => { + return ( + + ); +}; + +export default Button; + +type Variant = "error" | "default"; + +type VariantStyle = { + base: string; + disabled: string; +}; + +const VARIANTS_STYLES: Record = { + error: { + base: "bg-red-600 hover:bg-red-700 focus:ring-red-500", + disabled: "bg-red-400 cursor-not-allowed focus:ring-red-500", + }, + default: { + base: "bg-primary-600 hover:bg-primary-700 focus:ring-primary-500", + disabled: "bg-primary-400 cursor-not-allowed focus:ring-primary-500", + }, +}; diff --git a/src/components/divider.tsx b/src/components/divider.tsx new file mode 100644 index 0000000..8c78520 --- /dev/null +++ b/src/components/divider.tsx @@ -0,0 +1,9 @@ +export default function Divider() { + return ( +
+
+
+
+
+ ); +} diff --git a/src/components/icons.tsx b/src/components/icons.tsx new file mode 100644 index 0000000..2fc3f7e --- /dev/null +++ b/src/components/icons.tsx @@ -0,0 +1,5 @@ +import type { FunctionComponent } from "react"; + +type Props = { + className?: string; +}; diff --git a/src/components/layout/footer.tsx b/src/components/layout/footer.tsx new file mode 100644 index 0000000..822c18a --- /dev/null +++ b/src/components/layout/footer.tsx @@ -0,0 +1,84 @@ +import type { ReactNode } from "react"; +import Link from "next/link"; +import { useRouter } from "next/router"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faPhoneAlt as fasPhone, + faTh as fasTh, + faComments as fasComments, + faCog as fasCog, +} from "@fortawesome/pro-solid-svg-icons"; +import { + faPhoneAlt as farPhone, + faTh as farTh, + faComments as farComments, + faCog as farCog, +} from "@fortawesome/pro-regular-svg-icons"; + +export default function Footer() { + return ( +
+ , + inactive: , + }} + /> + , + inactive: , + }} + /> + , + inactive: , + }} + /> + , + inactive: , + }} + /> +
+ ); +} + +type NavLinkProps = { + path: string; + label: string; + icons: { + active: ReactNode; + inactive: ReactNode; + }; +} + +function NavLink({ path, label, icons }: NavLinkProps) { + const router = useRouter(); + const isActiveRoute = router.pathname.startsWith(path); + const icon = isActiveRoute ? icons.active : icons.inactive; + + return ( + + ); +} diff --git a/src/components/layout/header.tsx b/src/components/layout/header.tsx new file mode 100644 index 0000000..3d28056 --- /dev/null +++ b/src/components/layout/header.tsx @@ -0,0 +1,90 @@ +import type { FunctionComponent } from "react"; +import { Menu, Transition } from "@headlessui/react"; +import Link from "next/link"; +import { MenuIcon } from "@heroicons/react/solid"; + +import Avatar from "../avatar"; + +import useUser from "../../hooks/use-user"; + +export default function Header() { + const { userProfile } = useUser(); + + return ( +
+
+ + +
    +
  • + + {({ open }) => ( + <> + + + + + + + + Settings + + + Log out + + + + + )} + +
  • +
+
+
+ ); +} + +type MenuItemProps = { + href: string; +}; + +const MenuItem: FunctionComponent = ({ children, href }) => ( + + {() => ( + + + {children} + + + )} + +); diff --git a/src/components/layout/index.tsx b/src/components/layout/index.tsx new file mode 100644 index 0000000..91175d3 --- /dev/null +++ b/src/components/layout/index.tsx @@ -0,0 +1,99 @@ +import type { ErrorInfo, FunctionComponent } from "react"; +import { Component } from "react"; +import Head from "next/head"; +import type { WithRouterProps } from "next/dist/client/with-router"; +import { withRouter } from "next/router"; + +import appLogger from "../../../lib/logger"; + +import Footer from "./footer"; + +type Props = { + title: string; + pageTitle?: string; +}; + +const logger = appLogger.child({ module: "Layout" }); + +const Layout: FunctionComponent = ({ + children, + title, + pageTitle = title, +}) => { + return ( + <> + {pageTitle ? ( + + {pageTitle} + + ) : null} + +
+
+
+
+ {children} +
+
+
+
+
+ + ); +}; + +type ErrorBoundaryState = + | { + isError: false; + } + | { + isError: true; + errorMessage: string; + }; + +const ErrorBoundary = withRouter( + class ErrorBoundary extends Component { + public readonly state = { + isError: false, + } as const; + + static getDerivedStateFromError(error: Error): ErrorBoundaryState { + return { + isError: true, + errorMessage: error.message, + }; + } + + public componentDidCatch(error: Error, errorInfo: ErrorInfo) { + logger.error(error, errorInfo.componentStack); + } + + public render() { + if (this.state.isError) { + return ( + <> +

+ Oops, something went wrong. +

+

+ Would you like to{" "} + {" "} + ? +

+ + ); + } + + return this.props.children; + } + }, +); + +export default Layout; diff --git a/src/components/loading.tsx b/src/components/loading.tsx new file mode 100644 index 0000000..66842f5 --- /dev/null +++ b/src/components/loading.tsx @@ -0,0 +1,23 @@ +export default function Loading({ className = "" }) { + return ( + + + + + ); +} diff --git a/src/components/logo.tsx b/src/components/logo.tsx new file mode 100644 index 0000000..8f22175 --- /dev/null +++ b/src/components/logo.tsx @@ -0,0 +1,15 @@ +import type { FunctionComponent } from "react"; +import Image from "next/image"; +import clsx from "clsx"; + +type Props = { + className?: string; +}; + +const Logo: FunctionComponent = ({ className }) => ( +
+ app logo +
+); + +export default Logo; diff --git a/src/components/long-press-handler.tsx b/src/components/long-press-handler.tsx new file mode 100644 index 0000000..dea300b --- /dev/null +++ b/src/components/long-press-handler.tsx @@ -0,0 +1,15 @@ +import { FunctionComponent } from "react"; +import usePress from "react-gui/use-press"; + +const LongPressHandler: FunctionComponent = ({ children }) => { + const onLongPress = (event: any) => console.log("event", event); + const ref = usePress({ onLongPress }); + + return ( +
e.preventDefault()}> + {children} +
+ ); +}; + +export default LongPressHandler; diff --git a/src/components/modal.tsx b/src/components/modal.tsx new file mode 100644 index 0000000..a43dcbd --- /dev/null +++ b/src/components/modal.tsx @@ -0,0 +1,71 @@ +import type { FunctionComponent, MutableRefObject, ReactNode } from "react"; +import { Fragment } from "react"; +import { Transition, Dialog } from "@headlessui/react"; + +type Props = { + initialFocus?: MutableRefObject | undefined; + isOpen: boolean; + onClose: () => void; +}; + +const Modal: FunctionComponent = ({ + children, + initialFocus, + isOpen, + onClose, +}) => { + return ( + + +
+ + + + + {/* This element is to trick the browser into centering the modal contents. */} + + ​ + + +
+ {children} +
+
+
+
+
+ ); +}; + +export const ModalTitle: FunctionComponent = ({ children }) => ( + + {children} + +); + +export default Modal; diff --git a/src/components/outside-alerter.tsx b/src/components/outside-alerter.tsx new file mode 100644 index 0000000..2ea1dd2 --- /dev/null +++ b/src/components/outside-alerter.tsx @@ -0,0 +1,33 @@ +import type { ReactNode, RefObject } from "react"; +import { useEffect, useRef } from "react"; + +type Handler = (event: MouseEvent) => void; + +type Props = { + children: ReactNode; + handler: Handler; +}; + +function OutsideAlerter({ children, handler }: Props) { + const wrapperRef = useRef(null); + useOutsideAlerter(wrapperRef, handler); + + return
{children}
; +} + +function useOutsideAlerter(ref: RefObject, handler: Handler) { + useEffect(() => { + function handleClickOutside(event: MouseEvent) { + if (ref.current && !ref.current.contains(event.target as Node)) { + handler(event); + } + } + + document.addEventListener("mousedown", handleClickOutside); + return () => { + document.removeEventListener("mousedown", handleClickOutside); + }; + }, [ref, handler]); +} + +export default OutsideAlerter; diff --git a/src/components/settings/danger-zone.tsx b/src/components/settings/danger-zone.tsx new file mode 100644 index 0000000..fa8eb69 --- /dev/null +++ b/src/components/settings/danger-zone.tsx @@ -0,0 +1,110 @@ +import { useRef, useState } from "react"; +import clsx from "clsx"; + +import Button from "../button"; +import SettingsSection from "./settings-section"; +import Modal, { ModalTitle } from "../modal"; + +import useUser from "../../hooks/use-user"; + +export default function DangerZone() { + const user = useUser(); + const [isDeletingUser, setIsDeletingUser] = useState(false); + const [isConfirmationModalOpen, setIsConfirmationModalOpen] = useState( + false, + ); + const modalCancelButtonRef = useRef(null); + + const closeModal = () => { + if (isDeletingUser) { + return; + } + + setIsConfirmationModalOpen(false); + }; + const onConfirm = () => { + setIsDeletingUser(true); + user.deleteUser(); + }; + + return ( + +
+
+

+ Once you delete your account, all of its data will be + permanently deleted. +

+ + + + +
+
+ + +
+
+ Delete my account +
+

+ Are you sure you want to delete your account? + Your subscription will be cancelled and your + data permanently deleted. +

+

+ You are free to create a new account with the + same email address if you ever wish to come + back. +

+
+
+
+
+ + +
+
+
+ ); +} diff --git a/src/components/settings/pricing-plans.old.tsx b/src/components/settings/pricing-plans.old.tsx new file mode 100644 index 0000000..15955a6 --- /dev/null +++ b/src/components/settings/pricing-plans.old.tsx @@ -0,0 +1,215 @@ +import type { FunctionComponent } from "react"; +import { useState } from "react"; +import clsx from "clsx"; +import { CheckIcon } from "@heroicons/react/outline"; + +import useUser from "../../hooks/use-user"; +import useSubscription from "../../hooks/use-subscription"; + +import type { Plan, PlanId } from "../../subscription/plans"; +import { + FREE, + MONTHLY, + ANNUALLY, + TEAM_MONTHLY, + TEAM_ANNUALLY, +} from "../../subscription/plans"; + +type Props = { + activePlanId?: PlanId; +}; +const PLANS: Record = { + monthly: [FREE, MONTHLY, TEAM_MONTHLY], + yearly: [FREE, ANNUALLY, TEAM_ANNUALLY], +}; + +const PricingPlans: FunctionComponent = ({ activePlanId }) => { + const [billingSchedule, setBillingSchedule] = useState( + "monthly", + ); + + return ( +
+
+
+ + +
+
+ +
+ {PLANS[billingSchedule].map((plan) => ( + + ))} +
+
+ ); +}; + +export default PricingPlans; + +type BillingSchedule = "yearly" | "monthly"; + +type PricingPlanProps = { + plan: Plan; + billingSchedule: BillingSchedule; + activePlanId?: PlanId; +}; + +const PricingPlan: FunctionComponent = ({ + plan, + billingSchedule, + activePlanId, +}) => { + const { subscribe, changePlan } = useSubscription(); + const { userProfile } = useUser(); + const { name, description, features, price, id } = plan; + const isActivePlan = + (typeof activePlanId !== "undefined" ? activePlanId : "free") === id; + + function movePlan() { + const teamId = userProfile!.teamId; + const email = userProfile!.email; + const planId = plan.id; + + if (typeof activePlanId === "undefined" && typeof planId === "number") { + return subscribe({ email, teamId, planId }); + } + + changePlan({ planId }); + } + + return ( +
+
+

+ {name} +

+

{description}

+

+ +

+ +
+ +
+
+
+

+ What's included +

+
    + {features.map((feature) => ( +
  • + + + {feature} + +
  • + ))} +
+
+
+ ); +}; + +type PlanButtonProps = { + name: Plan["name"]; + isActivePlan: boolean; + changePlan: () => void; +}; + +const PlanButton: FunctionComponent = ({ + name, + isActivePlan, + changePlan, +}) => { + return isActivePlan ? ( +
+ You're currently on this plan +
+ ) : ( + + ); +}; + +type PlanPriceProps = { + price: Plan["price"]; + billingSchedule: BillingSchedule; +}; + +const PlanPrice: FunctionComponent = ({ + price, + billingSchedule, +}) => { + if (price === "free") { + return ( + Free + ); + } + + return ( + <> + + ${price} + + /mo + {billingSchedule === "yearly" ? ( + + billed yearly + + ) : null} + + ); +}; diff --git a/src/components/settings/profile-informations.tsx b/src/components/settings/profile-informations.tsx new file mode 100644 index 0000000..de2b38c --- /dev/null +++ b/src/components/settings/profile-informations.tsx @@ -0,0 +1,138 @@ +import type { FunctionComponent } from "react"; +import { useEffect, useState } from "react"; +import { useRouter } from "next/router"; +import { useForm } from "react-hook-form"; + +import Alert from "../alert"; +import Button from "../button"; +import SettingsSection from "./settings-section"; + +import useUser from "../../hooks/use-user"; + +import appLogger from "../../../lib/logger"; + +type Form = { + name: string; + email: string; +}; + +const logger = appLogger.child({ module: "profile-settings" }); + +const ProfileInformations: FunctionComponent = () => { + const user = useUser(); + const router = useRouter(); + const { + register, + handleSubmit, + setValue, + formState: { isSubmitting, isSubmitSuccessful }, + } = useForm
(); + const [errorMessage, setErrorMessage] = useState(""); + + useEffect(() => { + setValue("name", user.userProfile?.name ?? ""); + setValue("email", user.userProfile?.email ?? ""); + }, [setValue, user.userProfile]); + + const onSubmit = handleSubmit(async ({ name, email }) => { + if (isSubmitting) { + return; + } + + try { + await user.updateUser({ name, email }); + } catch (error) { + logger.error(error.response, "error updating user infos"); + + if (error.response.status === 401) { + logger.error("session expired, redirecting to sign in page"); + return router.push("/auth/sign-in"); + } + + setErrorMessage(error.response.data.errorMessage); + } + }); + + return ( + + + {errorMessage ? ( +
+ +
+ ) : null} + + {isSubmitSuccessful ? ( +
+ +
+ ) : null} + +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+ +
+ ); +}; + +export default ProfileInformations; diff --git a/src/components/settings/settings-layout.tsx b/src/components/settings/settings-layout.tsx new file mode 100644 index 0000000..6517b69 --- /dev/null +++ b/src/components/settings/settings-layout.tsx @@ -0,0 +1,52 @@ +import type { FunctionComponent } from "react"; +import { useRouter } from "next/router"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faChevronLeft } from "@fortawesome/pro-regular-svg-icons"; + +import Layout from "../layout"; + +import useUser from "../../hooks/use-user"; + +const pageTitle = "User Settings"; + +const SettingsLayout: FunctionComponent = ({ children }) => { + const user = useUser(); + const router = useRouter(); + + if (user.isLoading) { + return ( + +
+ Loading... +
+
+ ); + } + + if (user.error) { + return ( + +
+

Oops, something unexpected happened!

+
{user.error.message}
+
+
+ ); + } + + return ( + +
+
+ + Back + +
+
+ +
{children}
+
+ ); +}; + +export default SettingsLayout; diff --git a/src/components/settings/settings-section.tsx b/src/components/settings/settings-section.tsx new file mode 100644 index 0000000..94257f2 --- /dev/null +++ b/src/components/settings/settings-section.tsx @@ -0,0 +1,26 @@ +import type { FunctionComponent, ReactNode } from "react"; + +type Props = { + title: string; + description?: ReactNode; +}; + +const SettingsSection: FunctionComponent = ({ + children, + title, + description, +}) => ( +
+
+

+ {title} +

+ {description ? ( +

{description}

+ ) : null} +
+
{children}
+
+); + +export default SettingsSection; diff --git a/src/components/settings/update-password.tsx b/src/components/settings/update-password.tsx new file mode 100644 index 0000000..8741096 --- /dev/null +++ b/src/components/settings/update-password.tsx @@ -0,0 +1,141 @@ +import type { FunctionComponent } from "react"; +import { useRouter } from "next/router"; +import { useForm } from "react-hook-form"; + +import Alert from "../alert"; +import Button from "../button"; +import SettingsSection from "./settings-section"; + +import useUser from "../../hooks/use-user"; + +import appLogger from "../../../lib/logger"; +import { useState } from "react"; + +const logger = appLogger.child({ module: "update-password" }); + +type Form = { + newPassword: string; + newPasswordConfirmation: string; +}; + +const UpdatePassword: FunctionComponent = () => { + const user = useUser(); + const router = useRouter(); + const { + register, + handleSubmit, + formState: { isSubmitting, isSubmitSuccessful }, + } = useForm
(); + const [errorMessage, setErrorMessage] = useState(""); + + const onSubmit = handleSubmit( + async ({ newPassword, newPasswordConfirmation }) => { + if (isSubmitting) { + return; + } + + if (newPassword !== newPasswordConfirmation) { + setErrorMessage("New passwords don't match"); + return; + } + + try { + await user.updateUser({ password: newPassword }); + } catch (error) { + logger.error(error.response, "error updating user infos"); + + if (error.response.status === 401) { + logger.error( + "session expired, redirecting to sign in page", + ); + return router.push("/auth/sign-in"); + } + + setErrorMessage(error.response.data.errorMessage); + } + }, + ); + + return ( + + + {errorMessage ? ( +
+ +
+ ) : null} + + {isSubmitSuccessful ? ( +
+ +
+ ) : null} + +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+ +
+ ); +}; + +export default UpdatePassword; diff --git a/src/components/toggle.tsx b/src/components/toggle.tsx new file mode 100644 index 0000000..10b6aed --- /dev/null +++ b/src/components/toggle.tsx @@ -0,0 +1,41 @@ +import type { FunctionComponent, ReactNode } from "react"; +import { Switch } from "@headlessui/react"; +import clsx from "clsx"; + +type Props = { + isChecked: boolean; + label?: ReactNode; + onChange: (checked: boolean) => void; +}; + +const Toggle: FunctionComponent = ({ isChecked, label, onChange }) => { + return ( + + + {({ checked }) => ( + + )} + + {label ? ( + {label} + ) : null} + + ); +}; + +export default Toggle; diff --git a/src/components/welcome/onboarding-layout.tsx b/src/components/welcome/onboarding-layout.tsx new file mode 100644 index 0000000..cc3664e --- /dev/null +++ b/src/components/welcome/onboarding-layout.tsx @@ -0,0 +1,111 @@ +import type { FunctionComponent } from "react"; +import { CheckIcon } from "@heroicons/react/solid"; +import clsx from "clsx"; +import Link from "next/link"; + +type StepLink = { + href: string; + label: string; +} + +type Props = { + currentStep: 1 | 2 | 3; + previous?: StepLink; + next?: StepLink; +}; + +const steps = [ + "Welcome", + "Twilio Credentials", + "Pick a plan", +] as const; + +const OnboardingLayout: FunctionComponent = ({ + children, + currentStep, + previous, + next, +}) => { + return ( +
+
+ {/* This element is to trick the browser into centering the modal contents. */} + + ​ + +
+

{steps[currentStep - 1]}

+ +
{children}
+ + +
+
+
+ ); +}; + +export default OnboardingLayout; diff --git a/src/database/_encryption.ts b/src/database/_encryption.ts new file mode 100644 index 0000000..e33ef21 --- /dev/null +++ b/src/database/_encryption.ts @@ -0,0 +1,33 @@ +import crypto from "crypto"; +import getConfig from "next/config"; + +const { serverRuntimeConfig } = getConfig(); + +const IV_LENGTH = 16; +const ALGORITHM = "aes-256-cbc"; + +export function encrypt(text: string, encryptionKey: Buffer | string) { + const encryptionKeyAsBuffer = Buffer.isBuffer(encryptionKey) ? encryptionKey : Buffer.from(encryptionKey, "hex"); + const iv = crypto.randomBytes(IV_LENGTH); + const cipher = crypto.createCipheriv(ALGORITHM, encryptionKeyAsBuffer, iv); + const encrypted = cipher.update(text); + const encryptedBuffer = Buffer.concat([encrypted, cipher.final()]); + + return `${iv.toString("hex")}:${encryptedBuffer.toString("hex")}`; +} + +export function decrypt(encryptedHexText: string, encryptionKey: Buffer | string) { + const encryptionKeyAsBuffer = Buffer.isBuffer(encryptionKey) ? encryptionKey : Buffer.from(encryptionKey, "hex"); + const [hexIv, hexText] = encryptedHexText.split(":"); + const iv = Buffer.from(hexIv, "hex"); + const encryptedText = Buffer.from(hexText, "hex"); + const decipher = crypto.createDecipheriv(ALGORITHM, encryptionKeyAsBuffer, iv); + const decrypted = decipher.update(encryptedText); + const decryptedBuffer = Buffer.concat([decrypted, decipher.final()]); + + return decryptedBuffer.toString(); +} + +export function computeEncryptionKey(userIdentifier: string) { + return crypto.scryptSync(userIdentifier, serverRuntimeConfig.masterEncryptionKey, 32); +} diff --git a/src/database/_types.ts b/src/database/_types.ts new file mode 100644 index 0000000..14d4569 --- /dev/null +++ b/src/database/_types.ts @@ -0,0 +1,14 @@ +export enum SmsType { + SENT = "sent", + RECEIVED = "received", +} + +export type Sms = { + id: number; + customerId: string; + content: string; + from: string; + to: string; + type: SmsType; + sentAt: Date; +}; diff --git a/src/database/customer.ts b/src/database/customer.ts new file mode 100644 index 0000000..aedf545 --- /dev/null +++ b/src/database/customer.ts @@ -0,0 +1,55 @@ +import appLogger from "../../lib/logger"; +import supabase from "../supabase/server"; +import { computeEncryptionKey } from "./_encryption"; + +const logger = appLogger.child({ module: "customer" }); + +export type Customer = { + id: string; + email: string; + name: string; + paddleCustomerId: string; + paddleSubscriptionId: string; + accountSid: string; + authToken: string; + encryptionKey: string; +}; + +type CreateCustomerParams = Pick; + +export async function createCustomer({ id, email, name }: CreateCustomerParams): Promise { + const encryptionKey = computeEncryptionKey(id).toString("hex"); + const { error, data } = await supabase + .from("customer") + .insert({ + id, + email, + name, + encryptionKey, + }); + + if (error) throw error; + + console.log("data", data); + + return data![0]; +} + +export async function findCustomer(id: Customer["id"]): Promise { + const { error, data } = await supabase + .from("customer") + .select("*") + .eq("id", id) + .single(); + + if (error) throw error; + + return data!; +} + +export async function updateCustomer(id: string, update: Partial) { + await supabase.from("customer") + .update(update) + .eq("id", id) + .throwOnError(); +} diff --git a/src/database/phone-number.ts b/src/database/phone-number.ts new file mode 100644 index 0000000..31b19ff --- /dev/null +++ b/src/database/phone-number.ts @@ -0,0 +1,55 @@ +import appLogger from "../../lib/logger"; +import supabase from "../supabase/server"; + +const logger = appLogger.child({ module: "phone-number" }); + +export type PhoneNumber = { + id: string; + customerId: string; + phoneNumberSid: string; + phoneNumber: string; +}; + +type CreatePhoneNumberParams = Pick; + +export async function createPhoneNumber({ + customerId, + phoneNumber, + phoneNumberSid, +}: CreatePhoneNumberParams): Promise { + const { error, data } = await supabase + .from("phone-number") + .insert({ + customerId: customerId, + phoneNumber, + phoneNumberSid, + }); + + if (error) throw error; + + return data![0]; +} + +export async function findPhoneNumber({ id }: Pick): Promise { + const { error, data } = await supabase + .from("phone-number") + .select("*") + .eq("id", id) + .single(); + + if (error) throw error; + + return data!; +} + +export async function findCustomerPhoneNumber(customerId: PhoneNumber["customerId"]): Promise { + const { error, data } = await supabase + .from("phone-number") + .select("*") + .eq("customerId", customerId) + .single(); + + if (error) throw error; + + return data!; +} diff --git a/src/database/sms.ts b/src/database/sms.ts new file mode 100644 index 0000000..70142d3 --- /dev/null +++ b/src/database/sms.ts @@ -0,0 +1,46 @@ +import appLogger from "../../lib/logger"; +import supabase from "../supabase/server"; +import type { Sms } from "./_types"; + +const logger = appLogger.child({ module: "sms" }); + +export async function insertSms(messages: Omit): Promise { + const { error, data } = await supabase + .from("sms") + .insert(messages); + + if (error) throw error; + + return data![0]; +} + +export async function insertManySms(messages: Omit[]) { + await supabase + .from("sms") + .insert(messages) + .throwOnError(); +} + +export async function findCustomerMessages(customerId: Sms["customerId"]): Promise { + const { error, data } = await supabase + .from("sms") + .select("*") + .eq("customerId", customerId); + + if (error) throw error; + + return data!; +} + + +export async function findConversation(customerId: Sms["customerId"], recipient: Sms["to"]): Promise { + const { error, data } = await supabase + .from("sms") + .select("*") + .eq("customerId", customerId) + .or(`to.eq.${recipient},from.eq.${recipient}`); + + if (error) throw error; + + return data!; +} diff --git a/src/database/subscriptions.ts b/src/database/subscriptions.ts new file mode 100644 index 0000000..6c10213 --- /dev/null +++ b/src/database/subscriptions.ts @@ -0,0 +1,151 @@ +import type { PlanId } from "../subscription/plans"; +import appLogger from "../../lib/logger"; + +const logger = appLogger.child({ module: "subscriptions" }); + +export type SubscriptionStatus = + | "active" + | "trialing" + | "past_due" + | "paused" + | "deleted"; + +export const SUBSCRIPTION_STATUSES: SubscriptionStatus[] = [ + "active", + "trialing", + "past_due", + "paused", + "deleted", +]; + +export type Subscription = { + userId: string; + planId: PlanId; + paddleCheckoutId: string; + paddleSubscriptionId: string; + nextBillDate: Date; + status: SubscriptionStatus; + lastEventTime: Date; + updateUrl: string; + cancelUrl: string; + createdAt: Date; + updatedAt: Date; +}; + +type FirestoreSubscription = FirestoreEntry; + +const subscriptions = firestoreCollection( + "subscriptions", +); + +type CreateSubscriptionParams = Pick< + Subscription, + | "userId" + | "planId" + | "paddleCheckoutId" + | "paddleSubscriptionId" + | "nextBillDate" + | "status" + | "updateUrl" + | "cancelUrl" + | "lastEventTime" +>; + +export async function createSubscription({ + userId, + planId, + paddleCheckoutId, + paddleSubscriptionId, + nextBillDate, + status, + updateUrl, + cancelUrl, + lastEventTime, +}: CreateSubscriptionParams): Promise { + const createdAt = FieldValue.serverTimestamp() as Timestamp; + await subscriptions.doc(paddleSubscriptionId).set({ + userId, + planId, + paddleCheckoutId, + paddleSubscriptionId, + nextBillDate, + status, + updateUrl, + cancelUrl, + lastEventTime, + createdAt, + updatedAt: createdAt, + }); + + const subscription = await findSubscription({ paddleSubscriptionId }); + + return subscription!; +} + +type GetSubscriptionParams = Pick; + +export async function findSubscription({ + paddleSubscriptionId, +}: GetSubscriptionParams): Promise { + const subscriptionDocument = await subscriptions + .doc(paddleSubscriptionId) + .get(); + if (!subscriptionDocument.exists) { + return; + } + + return convertFromFirestore(subscriptionDocument.data()!); +} + +type FindUserSubscriptionParams = Pick; + +export async function findUserSubscription({ + userId, +}: FindUserSubscriptionParams): Promise { + const subscriptionDocumentsSnapshot = await subscriptions + .where("userId", "==", userId) + .where("status", "!=", "deleted") + .get(); + if (subscriptionDocumentsSnapshot.docs.length === 0) { + logger.warn(`No subscription found for user ${userId}`); + return null; + } + + const subscriptionDocument = subscriptionDocumentsSnapshot.docs[0].data(); + + return convertFromFirestore(subscriptionDocument); +} + +type UpdateSubscriptionParams = Pick & + Partial< + Pick< + Subscription, + | "planId" + | "paddleCheckoutId" + | "paddleSubscriptionId" + | "nextBillDate" + | "status" + | "updateUrl" + | "cancelUrl" + | "lastEventTime" + > + >; + +export async function updateSubscription( + update: UpdateSubscriptionParams, +): Promise { + const paddleSubscriptionId = update.paddleSubscriptionId; + await subscriptions.doc(paddleSubscriptionId).set( + { + ...update, + updatedAt: FieldValue.serverTimestamp() as Timestamp, + }, + { merge: true }, + ); +} + +export async function deleteSubscription({ + paddleSubscriptionId, +}: Pick): Promise { + await subscriptions.doc(paddleSubscriptionId).delete(); +} diff --git a/src/fonts.css b/src/fonts.css new file mode 100644 index 0000000..caeed5d --- /dev/null +++ b/src/fonts.css @@ -0,0 +1,17 @@ +@font-face { + font-family: "Inter var"; + font-weight: 100 900; + font-display: optional; + font-style: normal; + font-named-instance: "Regular"; + src: url("/static/fonts/inter/Inter-roman.var.woff2") format("woff2"); +} + +@font-face { + font-family: "Inter var"; + font-weight: 100 900; + font-display: optional; + font-style: italic; + font-named-instance: "Italic"; + src: url("/static/fonts/inter/Inter-italic.var.woff2") format("woff2"); +} diff --git a/src/hooks/use-auth.ts b/src/hooks/use-auth.ts new file mode 100644 index 0000000..64a0914 --- /dev/null +++ b/src/hooks/use-auth.ts @@ -0,0 +1,66 @@ +import { useEffect, useRef } from "react"; +import { useRouter } from "next/router"; +import axios from "axios"; + +import supabase from "../supabase/client"; + +type Credentials = { + email: string; + password: string; +}; + +export default function useAuth() { + const router = useRouter(); + const redirectToRef = useRef("/messages"); + + useEffect(() => { + const { data } = supabase.auth.onAuthStateChange(async (event, session) => { + if (["SIGNED_IN", "SIGNED_OUT"].includes(event)) { + await axios.post("/api/auth/session", { event, session }); + + if (event === "SIGNED_IN") { + await router.push(redirectToRef.current); + } + } + }); + + return () => data?.unsubscribe(); + }, []); + + async function signUp({ + email, + password, + name, + }: Credentials & { name: string; redirectTo?: string }) { + await axios.post("/api/auth/sign-up", { email, password, name }); + await signIn({ email, password, redirectTo: "/welcome/step-one" }); + } + + async function signIn({ + email, + password, + redirectTo = "/messages", + }: Credentials & { redirectTo?: string }) { + redirectToRef.current = redirectTo; + const { error } = await supabase.auth.signIn({ email, password }); + if (error) { + throw error; + } + } + + async function signOut() { + const { error } = await supabase.auth.signOut(); + if (error) throw error; + } + + async function resetPassword(email: string) { + return supabase.auth.api.resetPasswordForEmail(email); + } + + return { + signUp, + signIn, + signOut, + resetPassword, + }; +} diff --git a/src/hooks/use-paddle.ts b/src/hooks/use-paddle.ts new file mode 100644 index 0000000..8ab50a6 --- /dev/null +++ b/src/hooks/use-paddle.ts @@ -0,0 +1,49 @@ +import { useEffect } from "react"; +import { useRouter } from "next/router"; +import getConfig from "next/config"; + +declare global { + interface Window { + Paddle: any; + } +} + +const { publicRuntimeConfig } = getConfig(); + +const vendor = publicRuntimeConfig.paddle.vendorId; + +export default function usePaddle({ + eventCallback, +}: { + eventCallback: (data: any) => void; +}) { + const router = useRouter(); + + useEffect(() => { + if (!window.Paddle) { + const script = document.createElement("script"); + script.onload = () => { + window.Paddle.Setup({ + vendor, + eventCallback(data: any) { + eventCallback(data); + + if (data.event === "Checkout.Complete") { + setTimeout(() => router.reload(), 1000); + } + }, + }); + }; + script.src = "https://cdn.paddle.com/paddle/paddle.js"; + + document.head.appendChild(script); + return; + } + }, []); + + if (typeof window === "undefined") { + return { Paddle: null }; + } + + return { Paddle: window.Paddle }; +} diff --git a/src/hooks/use-request.ts b/src/hooks/use-request.ts new file mode 100644 index 0000000..e92a029 --- /dev/null +++ b/src/hooks/use-request.ts @@ -0,0 +1,22 @@ +import type { AxiosError } from "axios"; +import axios from "axios"; +import type { UseQueryOptions } from "react-query"; +import { useQuery } from "react-query"; + +import type { ApiError } from "../pages/api/_types"; + +export default function useRequest< + TData = unknown, + TError = AxiosError +>(url: string, options?: UseQueryOptions) { + const query = createQuery(url); + + return useQuery(url, query, options); +} + +function createQuery(url: string) { + return async function query() { + const { data } = await axios.get(url); + return data; + }; +} diff --git a/src/hooks/use-subscription.ts b/src/hooks/use-subscription.ts new file mode 100644 index 0000000..6a9bba5 --- /dev/null +++ b/src/hooks/use-subscription.ts @@ -0,0 +1,92 @@ +import { useEffect, useRef } from "react"; +import { useRouter } from "next/router"; +import axios from "axios"; + +import type { PlanId } from "../subscription/plans"; +import { Plan } from "../subscription/plans"; +import usePaddle from "./use-paddle"; + +export default function useSubscription() { + const router = useRouter(); + const resolve = useRef<() => void>(); + const promise = useRef>(); + + const { Paddle } = usePaddle({ + eventCallback(data) { + if (["Checkout.Close", "Checkout.Complete"].includes(data.event)) { + resolve.current!(); + promise.current = new Promise((r) => (resolve.current = r)); + } + }, + }); + + useEffect(() => { + promise.current = new Promise((r) => (resolve.current = r)); + }, []); + + type BuyParams = { + email: string; + userId: string; + planId: PlanId; + coupon?: string; + }; + + async function subscribe(params: BuyParams) { + const { email, userId, planId, coupon } = params; + const checkoutOpenParams = { + email, + product: planId, + allowQuantity: false, + passthrough: JSON.stringify({ userId }), + coupon: "", + }; + + if (coupon) { + checkoutOpenParams.coupon = coupon; + } + + Paddle.Checkout.open(checkoutOpenParams); + + return promise.current; + } + + async function updatePaymentMethod({ updateUrl }: { updateUrl: string }) { + const checkoutOpenParams = { override: updateUrl }; + + Paddle.Checkout.open(checkoutOpenParams); + + return promise.current; + } + + async function cancelSubscription({ cancelUrl }: { cancelUrl: string }) { + const checkoutOpenParams = { override: cancelUrl }; + + Paddle.Checkout.open(checkoutOpenParams); + + return promise.current; + } + + type ChangePlanParams = { + planId: Plan["id"]; + }; + + async function changePlan({ planId }: ChangePlanParams) { + try { + await axios.post( + "/api/subscription/update", + { planId }, + { withCredentials: true }, + ); + router.reload(); + } catch (error) { + console.log("error", error); + } + } + + return { + subscribe, + updatePaymentMethod, + cancelSubscription, + changePlan, + }; +} diff --git a/src/hooks/use-user.ts b/src/hooks/use-user.ts new file mode 100644 index 0000000..d4d202a --- /dev/null +++ b/src/hooks/use-user.ts @@ -0,0 +1,52 @@ +import { useContext } from "react"; +import { useRouter } from "next/router"; +import axios from "axios"; +import type { User, UserAttributes } from "@supabase/supabase-js"; + +import { SessionContext } from "../session-context"; +import appLogger from "../../lib/logger"; +import supabase from "../supabase/client"; + +const logger = appLogger.child({ module: "useUser" }); + +type UseUser = { + updateUser: (attributes: UserAttributes) => Promise; + deleteUser: () => Promise; +} & ( + | { + isLoading: true; + error: null; + userProfile: null; + } + | { + isLoading: false; + error: Error; + userProfile: User | null; + } + | { + isLoading: false; + error: null; + userProfile: User; + } +); + +export default function useUser(): UseUser { + const session = useContext(SessionContext); + const router = useRouter(); + + return { + isLoading: session.state.user === null, + userProfile: session.state.user, + error: session.state.error, + async deleteUser() { + await axios.post("/api/user/delete-user", null, { + withCredentials: true, + }); + router.push("/api/auth/sign-out"); + }, + async updateUser(attributes: UserAttributes) { + const { error } = await supabase.auth.update(attributes); + if (error) throw error; + } + } as UseUser; +} diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx new file mode 100644 index 0000000..d22604a --- /dev/null +++ b/src/pages/_app.tsx @@ -0,0 +1,39 @@ +import { useRef } from "react"; +import type { AppProps } from "next/app"; +import Head from "next/head"; +import { QueryClient, QueryClientProvider } from "react-query"; +import { Hydrate } from "react-query/hydration"; + +import { pageTitle } from "./_document"; +import { SessionProvider } from "../session-context"; + +import "../fonts.css"; +import "../tailwind.css"; + +const NextApp = (props: AppProps) => { + const queryClientRef = useRef(); + if (!queryClientRef.current) { + queryClientRef.current = new QueryClient(); + } + + const { Component, pageProps } = props; + + return ( + + + + + + {pageTitle} + + + + + + ); +}; + +export default NextApp; diff --git a/src/pages/_document.tsx b/src/pages/_document.tsx new file mode 100644 index 0000000..0bc2827 --- /dev/null +++ b/src/pages/_document.tsx @@ -0,0 +1,60 @@ +import Document, { Html, Head, Main, NextScript } from "next/document"; + +export const pageTitle = "My Serverless App"; +const defaultDescription = "My app, freshly generated by FSS"; +const defaultOGURL = ""; +const defaultOGImage = ""; + +class NextDocument extends Document { + public render() { + return ( + + + + + + + + + + + + + + + + + + + + + +
+ + + + ); + } +} + +export default NextDocument; diff --git a/src/pages/api/_redirect.ts b/src/pages/api/_redirect.ts new file mode 100644 index 0000000..239e114 --- /dev/null +++ b/src/pages/api/_redirect.ts @@ -0,0 +1,6 @@ +import type { ServerResponse } from "http"; + +export function redirect(res: ServerResponse, to: string) { + res.writeHead(302, { Location: encodeURI(to) }); + res.end(); +} diff --git a/src/pages/api/_send-email.ts b/src/pages/api/_send-email.ts new file mode 100644 index 0000000..9cfd536 --- /dev/null +++ b/src/pages/api/_send-email.ts @@ -0,0 +1,45 @@ +import type { SendEmailRequest } from "aws-sdk/clients/ses"; +import { Credentials, SES } from "aws-sdk"; +import getConfig from "next/config"; + +const { serverRuntimeConfig } = getConfig(); + +const credentials = new Credentials({ + accessKeyId: serverRuntimeConfig.awsSes.accessKeyId, + secretAccessKey: serverRuntimeConfig.awsSes.secretAccessKey, +}); +const ses = new SES({ + region: serverRuntimeConfig.awsSes.awsRegion, + credentials, +}); + +type SendEmailParams = { + body: string; + subject: string; + recipients: string[]; +}; + +export async function sendEmail({ + body, + subject, + recipients, +}: SendEmailParams) { + const request: SendEmailRequest = { + Destination: { ToAddresses: recipients }, + Message: { + Body: { + Text: { + Charset: "UTF-8", + Data: body, + }, + }, + Subject: { + Charset: "UTF-8", + Data: subject, + }, + }, + Source: serverRuntimeConfig.awsSes.fromEmail, + }; + + await ses.sendEmail(request).promise(); +} diff --git a/src/pages/api/_types.ts b/src/pages/api/_types.ts new file mode 100644 index 0000000..b528718 --- /dev/null +++ b/src/pages/api/_types.ts @@ -0,0 +1,4 @@ +export type ApiError = { + statusCode: number; + errorMessage: string; +}; diff --git a/src/pages/api/auth/session.ts b/src/pages/api/auth/session.ts new file mode 100644 index 0000000..53926a0 --- /dev/null +++ b/src/pages/api/auth/session.ts @@ -0,0 +1,10 @@ +import type { NextApiRequest, NextApiResponse } from "next"; + +import supabase from "../../../supabase/server"; + +export default async function session( + req: NextApiRequest, + res: NextApiResponse, +) { + return supabase.auth.api.setAuthCookie(req, res); +} diff --git a/src/pages/api/auth/sign-in.ts b/src/pages/api/auth/sign-in.ts new file mode 100644 index 0000000..05ab894 --- /dev/null +++ b/src/pages/api/auth/sign-in.ts @@ -0,0 +1,71 @@ +import type { NextApiRequest, NextApiResponse } from "next"; +import type { UserCredentials } from "@supabase/supabase-js"; +import Joi from "joi"; + +import type { ApiError } from "../_types"; +import appLogger from "../../../../lib/logger"; +import supabase from "../../../supabase/server"; + +type Response = void | ApiError; + +type Body = Pick; + +const logger = appLogger.child({ route: "/api/auth/sign-in" }); + +const bodySchema = Joi.object({ + email: Joi.string().required(), + password: Joi.string().required(), +}); + +export default async function signIn( + req: NextApiRequest, + res: NextApiResponse, +): Promise { + if (req.method !== "POST") { + const statusCode = 405; + const apiError: ApiError = { + statusCode, + errorMessage: `Method ${req.method} Not Allowed`, + }; + logger.error(apiError); + + res.setHeader("Allow", ["POST"]); + res.status(statusCode).send(apiError); + return; + } + + const validationResult = bodySchema.validate(req.body, { stripUnknown: true }); + const validationError = validationResult.error; + if (validationError) { + const statusCode = 400; + const apiError: ApiError = { + statusCode, + errorMessage: "Body is malformed", + }; + logger.error(validationError); + + res.status(statusCode).send(apiError); + return; + } + + const body: Body = validationResult.value; + const { error } = await supabase.auth.signIn({ + email: body.email, + password: body.password, + }); + if (error) { + const statusCode = 400; + const apiError: ApiError = { + statusCode, + errorMessage: error.message, + }; + logger.error(error); + + res.status(statusCode).send(apiError); + return; + } + + supabase.auth.api.setAuthCookie(req, res); + + res.status(200).end(); +} diff --git a/src/pages/api/auth/sign-up.ts b/src/pages/api/auth/sign-up.ts new file mode 100644 index 0000000..2ae228a --- /dev/null +++ b/src/pages/api/auth/sign-up.ts @@ -0,0 +1,94 @@ +import type { NextApiRequest, NextApiResponse } from "next"; +import type { UserCredentials } from "@supabase/supabase-js"; +import Joi from "joi"; + +import type { ApiError } from "../_types"; +import appLogger from "../../../../lib/logger"; +import { sendEmail } from "../_send-email"; +import supabase from "../../../supabase/server"; +import { createCustomer } from "../../../database/customer"; + +type Response = void | ApiError; + +type Body = Pick & { + name: string; +}; + +const logger = appLogger.child({ route: "/api/auth/sign-up" }); + +const bodySchema = Joi.object({ + name: Joi.string().required(), + email: Joi.string().required(), + password: Joi.string().required(), +}); + +export default async function signUp( + req: NextApiRequest, + res: NextApiResponse, +): Promise { + if (req.method !== "POST") { + const statusCode = 405; + const apiError: ApiError = { + statusCode, + errorMessage: `Method ${req.method} Not Allowed`, + }; + logger.error(apiError); + + res.setHeader("Allow", ["POST"]); + res.status(statusCode).send(apiError); + return; + } + + const validationResult = bodySchema.validate(req.body, { stripUnknown: true }); + const validationError = validationResult.error; + if (validationError) { + const statusCode = 400; + const apiError: ApiError = { + statusCode, + errorMessage: "Body is malformed", + }; + logger.error(validationError); + + res.status(statusCode).send(apiError); + return; + } + + const body: Body = validationResult.value; + const { error, user } = await supabase.auth.signUp({ email: body.email, password: body.password }); + if (error) { + // @ts-ignore + const statusCode = error.status ?? 400; + const apiError: ApiError = { + statusCode, + errorMessage: error.message, + }; + logger.error(error); + + res.status(statusCode).send(apiError); + return; + } + + await Promise.all([ + supabase.auth.update({ data: { name: body.name } }), + createCustomer({ + id: user!.id, + email: body.email!, + name: body.name, + }), + ]); + + console.log("user", user); + const email = user!.email; + + if (email && email !== "") { + await sendEmail({ + subject: "Welcome to my app", + body: `Hi there, + +Thanks for signing up to my app.`, + recipients: [email], + }); + } + + res.status(200).end(); +} diff --git a/src/pages/api/ddd.ts b/src/pages/api/ddd.ts new file mode 100644 index 0000000..9f5f28e --- /dev/null +++ b/src/pages/api/ddd.ts @@ -0,0 +1,21 @@ +import type { NextApiRequest, NextApiResponse } from "next"; +import twilio from "twilio"; + +export default async function ddd(req: NextApiRequest, res: NextApiResponse) { + const accountSid = "ACa886d066be0832990d1cf43fb1d53362"; + const authToken = "8696a59a64b94bb4eba3548ed815953b"; + // const ddd = await twilio(accountSid, authToken).incomingPhoneNumbers.list(); + const phoneNumber = "+33757592025"; + const ddd = await twilio(accountSid, authToken) + .messages + .list({ + to: phoneNumber, + }); + + console.log("ddd", ddd); + + return res.status(200).send(ddd); +} + +// @ts-ignore +function uuid(a,b){for(b=a='';a++<36;b+=a*51&52?(a^15?8^Math.random()*(a^20?16:4):4).toString(16):'-');return b} diff --git a/src/pages/api/newsletter/_mailchimp.ts b/src/pages/api/newsletter/_mailchimp.ts new file mode 100644 index 0000000..c9ca6bb --- /dev/null +++ b/src/pages/api/newsletter/_mailchimp.ts @@ -0,0 +1,21 @@ +import getConfig from "next/config"; +import axios from "axios"; + +const { serverRuntimeConfig } = getConfig(); + +export async function addSubscriber(email: string) { + const { apiKey, audienceId } = serverRuntimeConfig.mailChimp; + const region = apiKey.split("-")[1]; + const url = `https://${region}.api.mailchimp.com/3.0/lists/${audienceId}/members`; + const data = { + email_address: email, + status: "subscribed", + }; + const base64ApiKey = Buffer.from(`any:${apiKey}`).toString("base64"); + const headers = { + "Content-Type": "application/json", + Authorization: `Basic ${base64ApiKey}`, + }; + + return axios.post(url, data, { headers }); +} diff --git a/src/pages/api/newsletter/subscribe.ts b/src/pages/api/newsletter/subscribe.ts new file mode 100644 index 0000000..53642d6 --- /dev/null +++ b/src/pages/api/newsletter/subscribe.ts @@ -0,0 +1,65 @@ +import type { NextApiRequest, NextApiResponse } from "next"; +import Joi from "joi"; + +import type { ApiError } from "../_types"; +import appLogger from "../../../../lib/logger"; +import { addSubscriber } from "./_mailchimp"; + +type Body = { + email: string; +}; + +type Response = {} | ApiError; + +const logger = appLogger.child({ route: "/api/newsletter/subscribe" }); + +const bodySchema = Joi.object({ + email: Joi.string().email().required(), +}); + +export default async function subscribeToNewsletter( + req: NextApiRequest, + res: NextApiResponse, +) { + if (req.method !== "POST") { + const statusCode = 405; + const apiError: ApiError = { + statusCode, + errorMessage: `Method ${req.method} Not Allowed`, + }; + logger.error(apiError); + + res.setHeader("Allow", ["POST"]); + res.status(statusCode).send(apiError); + return; + } + + const validationResult = bodySchema.validate(req.body, { + stripUnknown: true, + }); + const validationError = validationResult.error; + if (validationError) { + const statusCode = 400; + const apiError: ApiError = { + statusCode, + errorMessage: "Body is malformed", + }; + logger.error(validationError); + + res.status(statusCode).send(apiError); + return; + } + const { email }: Body = validationResult.value; + + try { + await addSubscriber(email); + } catch (error) { + console.log("error", error.response?.data); + + if (error.response?.data.title !== "Member Exists") { + return res.status(error.response?.status ?? 400).end(); + } + } + + res.status(200).end(); +} diff --git a/src/pages/api/queue/fetch-messages.ts b/src/pages/api/queue/fetch-messages.ts new file mode 100644 index 0000000..64f74ec --- /dev/null +++ b/src/pages/api/queue/fetch-messages.ts @@ -0,0 +1,36 @@ +import { Queue } from "quirrel/next"; +import twilio from "twilio"; + +import { findCustomerPhoneNumber } from "../../../database/phone-number"; +import { findCustomer } from "../../../database/customer"; +import insertMessagesQueue from "./insert-messages"; + +type Payload = { + customerId: string; +} + +const fetchMessagesQueue = Queue( + "api/queue/fetch-messages", + async ({ customerId }) => { + const customer = await findCustomer(customerId); + const phoneNumber = await findCustomerPhoneNumber(customerId); + + const messagesSent = await twilio(customer.accountSid, customer.authToken) + .messages + .list({ from: phoneNumber.phoneNumber }); + const messagesReceived = await twilio(customer.accountSid, customer.authToken) + .messages + .list({ to: phoneNumber.phoneNumber }); + const messages = [ + ...messagesSent, + ...messagesReceived, + ].sort((a, b) => a.dateSent.getTime() - b.dateSent.getTime()); + + await insertMessagesQueue.enqueue({ + customerId, + messages, + }); + }, +); + +export default fetchMessagesQueue; \ No newline at end of file diff --git a/src/pages/api/queue/insert-messages.ts b/src/pages/api/queue/insert-messages.ts new file mode 100644 index 0000000..0aadb9a --- /dev/null +++ b/src/pages/api/queue/insert-messages.ts @@ -0,0 +1,33 @@ +import { Queue } from "quirrel/next"; +import type { MessageInstance } from "twilio/lib/rest/api/v2010/account/message"; + +import { findCustomer } from "../../../database/customer"; +import type { Sms } from "../../../database/_types"; +import { SmsType } from "../../../database/_types"; +import { insertManySms } from "../../../database/sms"; +import { encrypt } from "../../../database/_encryption"; + +type Payload = { + customerId: string; + messages: MessageInstance[]; +} + +const insertMessagesQueue = Queue( + "api/queue/insert-messages", + async ({ messages, customerId }) => { + const customer = await findCustomer(customerId); + const encryptionKey = customer.encryptionKey; + + const sms = messages.map>(message => ({ + customerId, + content: encrypt(message.body, encryptionKey), + from: message.from, + to: message.to, + type: ["received", "receiving"].includes(message.status) ? SmsType.RECEIVED : SmsType.SENT, + sentAt: message.dateSent, + })); + await insertManySms(sms); + }, +); + +export default insertMessagesQueue; \ No newline at end of file diff --git a/src/pages/api/subscription/_subscription-cancelled.ts b/src/pages/api/subscription/_subscription-cancelled.ts new file mode 100644 index 0000000..f57d557 --- /dev/null +++ b/src/pages/api/subscription/_subscription-cancelled.ts @@ -0,0 +1,93 @@ +import type { NextApiRequest, NextApiResponse } from "next"; +import Joi from "joi"; + +import type { ApiError } from "../_types"; +import type { SubscriptionStatus } from "../../../database/subscriptions"; +import { + findSubscription, + SUBSCRIPTION_STATUSES, + updateSubscription, +} from "../../../database/subscriptions"; +import { FREE } from "../../../subscription/plans"; +import appLogger from "../../../../lib/logger"; + +const logger = appLogger.child({ module: "subscription-cancelled" }); + +const bodySchema = Joi.object({ + event_time: Joi.string().required(), + status: Joi.string() + .allow(...SUBSCRIPTION_STATUSES) + .required(), + subscription_id: Joi.string().required(), +}); + +export async function subscriptionCancelled( + req: NextApiRequest, + res: NextApiResponse, +) { + const validationResult = bodySchema.validate(req.body, { + allowUnknown: true, + }); + const validationError = validationResult.error; + if (validationError) { + const statusCode = 400; + const apiError: ApiError = { + statusCode, + errorMessage: "Body is malformed", + }; + logger.error(validationError, "/api/subscription/webhook"); + + res.status(statusCode).send(apiError); + return; + } + + const body: Body = validationResult.value; + const paddleSubscriptionId = body.subscription_id; + const subscription = await findSubscription({ paddleSubscriptionId }); + if (!subscription) { + const errorMessage = `Subscription with id ${paddleSubscriptionId} not found`; + const statusCode = 404; + const apiError: ApiError = { + statusCode, + errorMessage, + }; + logger.error(errorMessage, "/api/subscription/webhook"); + + res.status(statusCode).send(apiError); + return; + } + + const lastEventTime = new Date(body.event_time); + if (subscription.lastEventTime > lastEventTime) { + res.status(200).end(); + return; + } + + await updateSubscription({ + paddleSubscriptionId, + status: body.status, + lastEventTime, + }); + + return res.status(200).end(); +} + +type Body = { + alert_id: string; + alert_name: string; + cancellation_effective_date: string; + checkout_id: string; + currency: string; + email: string; + event_time: string; + linked_subscriptions: string; + marketing_consent: string; + passthrough: string; + quantity: string; + status: SubscriptionStatus; + subscription_id: string; + subscription_plan_id: string; + unit_price: string; + user_id: string; + p_signature: string; +}; diff --git a/src/pages/api/subscription/_subscription-created.ts b/src/pages/api/subscription/_subscription-created.ts new file mode 100644 index 0000000..dc96739 --- /dev/null +++ b/src/pages/api/subscription/_subscription-created.ts @@ -0,0 +1,131 @@ +import type { NextApiRequest, NextApiResponse } from "next"; +import Joi from "joi"; + +import type { SubscriptionStatus } from "../../../database/subscriptions"; +import { + createSubscription, + findUserSubscription, + updateSubscription, + SUBSCRIPTION_STATUSES, +} from "../../../database/subscriptions"; +import { sendEmail } from "../_send-email"; +import type { ApiError } from "../_types"; +import appLogger from "../../../../lib/logger"; +import { PAID_PLANS } from "../../../subscription/plans"; + +const logger = appLogger.child({ module: "subscription-created" }); + +const bodySchema = Joi.object({ + checkout_id: Joi.string().required(), + email: Joi.string().required(), + event_time: Joi.string().required(), + next_bill_date: Joi.string().required(), + passthrough: Joi.string().required(), + status: Joi.string() + .allow(...SUBSCRIPTION_STATUSES) + .required(), + subscription_id: Joi.string().required(), + subscription_plan_id: Joi.string().required(), +}); + +export async function subscriptionCreatedHandler( + req: NextApiRequest, + res: NextApiResponse, +) { + const validationResult = bodySchema.validate(req.body, { + allowUnknown: true, + }); + const validationError = validationResult.error; + if (validationError) { + const statusCode = 400; + const apiError: ApiError = { + statusCode, + errorMessage: "Body is malformed", + }; + logger.error(validationError, "/api/subscription/webhook"); + + res.status(statusCode).send(apiError); + return; + } + + const body: Body = validationResult.value; + const paddleCheckoutId = body.checkout_id; + const paddleSubscriptionId = body.subscription_id; + const planId = body.subscription_plan_id; + const { userId } = JSON.parse(body.passthrough); + const email = body.email; + const nextBillDate = new Date(body.next_bill_date); + const status = body.status; + const lastEventTime = new Date(body.event_time); + const updateUrl = body.update_url; + const cancelUrl = body.cancel_url; + + const subscription = await findUserSubscription({ userId }); + const teamHasSubscription = Boolean(subscription); + if (teamHasSubscription) { + await updateSubscription({ + paddleCheckoutId, + paddleSubscriptionId, + planId, + nextBillDate, + status, + lastEventTime, + updateUrl, + cancelUrl, + }); + + sendEmail({ + subject: "Thanks for coming back", + body: "Thanks for coming back", + recipients: [email], + }).catch((error) => { + logger.error(error, "/api/subscription/webhook"); + }); + } else { + await createSubscription({ + paddleCheckoutId, + paddleSubscriptionId, + userId, + planId, + nextBillDate, + status, + lastEventTime, + updateUrl, + cancelUrl, + }); + + const nextPlan = PAID_PLANS[planId]; + sendEmail({ + subject: "Thanks for your purchase", + body: `Welcome to ${nextPlan.name} plan`, + recipients: [email], + }).catch((error) => { + logger.error(error, "/api/subscription/webhook"); + }); + } + + return res.status(200).end(); +} + +type Body = { + alert_id: string; + alert_name: string; + cancel_url: string; + checkout_id: string; + currency: string; + email: string; + event_time: string; + linked_subscriptions: string; + marketing_consent: string; + next_bill_date: string; + passthrough: string; + quantity: string; + source: string; + status: SubscriptionStatus; + subscription_id: string; + subscription_plan_id: string; + unit_price: string; + update_url: string; + user_id: string; + p_signature: string; +}; diff --git a/src/pages/api/subscription/_subscription-payment-succeeded.ts b/src/pages/api/subscription/_subscription-payment-succeeded.ts new file mode 100644 index 0000000..35c7627 --- /dev/null +++ b/src/pages/api/subscription/_subscription-payment-succeeded.ts @@ -0,0 +1,90 @@ +import type { NextApiRequest, NextApiResponse } from "next"; + +import type { SubscriptionStatus } from "../../../database/subscriptions"; +import { + findSubscription, + updateSubscription, +} from "../../../database/subscriptions"; +import type { ApiError } from "../_types"; +import appLogger from "../../../../lib/logger"; + +const logger = appLogger.child({ module: "subscription-payment-succeeded" }); + +export async function subscriptionPaymentSucceededHandler( + req: NextApiRequest, + res: NextApiResponse, +) { + const body: Body = req.body; + + const paddleSubscriptionId = body.subscription_id; + const subscription = await findSubscription({ paddleSubscriptionId }); + if (!subscription) { + const errorMessage = `Subscription with id ${paddleSubscriptionId} not found`; + const statusCode = 404; + const apiError: ApiError = { + statusCode, + errorMessage, + }; + logger.error(errorMessage, "/api/subscription/webhook"); + + res.status(statusCode).send(apiError); + return; + } + + const lastEventTime = new Date(body.event_time); + if (subscription.lastEventTime > lastEventTime) { + res.status(200).end(); + return; + } + + const status = body.status; + const nextBillDate = new Date(body.next_bill_date); + + await updateSubscription({ + paddleSubscriptionId, + status, + lastEventTime, + nextBillDate, + }); + + return res.status(200).end(); +} + +type Body = { + alert_id: string; + alert_name: string; + balance_currency: string; + balance_earnings: string; + balance_fee: string; + balance_gross: string; + balance_tax: string; + checkout_id: string; + country: string; + coupon: string; + currency: string; + customer_name: string; + earnings: string; + email: string; + event_time: string; + fee: string; + initial_payment: string; + instalments: string; + marketing_consent: string; + next_bill_date: string; + next_payment_amount: string; + order_id: string; + passthrough: string; + payment_method: string; + payment_tax: string; + plan_name: string; + quantity: string; + receipt_url: string; + sale_gross: string; + status: SubscriptionStatus; + subscription_id: string; + subscription_payment_id: string; + subscription_plan_id: string; + unit_price: string; + user_id: string; + p_signature: string; +}; diff --git a/src/pages/api/subscription/_subscription-updated.ts b/src/pages/api/subscription/_subscription-updated.ts new file mode 100644 index 0000000..0b00132 --- /dev/null +++ b/src/pages/api/subscription/_subscription-updated.ts @@ -0,0 +1,122 @@ +import type { NextApiRequest, NextApiResponse } from "next"; +import Joi from "joi"; + +import type { ApiError } from "../_types"; +import type { SubscriptionStatus } from "../../../database/subscriptions"; +import { + findSubscription, + SUBSCRIPTION_STATUSES, + updateSubscription, +} from "../../../database/subscriptions"; +import { PAID_PLANS } from "../../../subscription/plans"; +import appLogger from "../../../../lib/logger"; +import { sendEmail } from "../_send-email"; + +const logger = appLogger.child({ module: "subscription-updated" }); + +const bodySchema = Joi.object({ + update_url: Joi.string().required(), + status: Joi.string() + .allow(...SUBSCRIPTION_STATUSES) + .required(), + subscription_id: Joi.string().required(), + event_time: Joi.string().required(), +}); + +export async function subscriptionUpdated( + req: NextApiRequest, + res: NextApiResponse, +) { + const validationResult = bodySchema.validate(req.body, { + allowUnknown: true, + }); + const validationError = validationResult.error; + if (validationError) { + const statusCode = 400; + const apiError: ApiError = { + statusCode, + errorMessage: "Body is malformed", + }; + logger.error(validationError, "/api/subscription/webhook"); + + res.status(statusCode).send(apiError); + return; + } + + const body: Body = validationResult.value; + const paddleSubscriptionId = body.subscription_id; + const subscription = await findSubscription({ paddleSubscriptionId }); + if (!subscription) { + const errorMessage = `Subscription with id ${paddleSubscriptionId} not found`; + const statusCode = 404; + const apiError: ApiError = { + statusCode, + errorMessage, + }; + logger.error(errorMessage, "/api/subscription/webhook"); + + res.status(statusCode).send(apiError); + return; + } + + const lastEventTime = new Date(body.event_time); + if (subscription.lastEventTime > lastEventTime) { + res.status(200).end(); + return; + } + + const status = body.status; + const updateUrl = body.update_url; + const cancelUrl = body.cancel_url; + const planId = body.subscription_plan_id; + const nextPlan = PAID_PLANS[planId]; + await updateSubscription({ + paddleSubscriptionId, + planId, + status, + lastEventTime, + updateUrl, + cancelUrl, + }); + + const user = await findUser({ id: subscription.userId }); + + sendEmail({ + subject: "Thanks for your purchase", + body: `Welcome to ${nextPlan.name} plan`, + recipients: [user.email], + }).catch((error) => { + logger.error(error, "/api/subscription/webhook"); + }); + + return res.status(200).end(); +} + +type Body = { + alert_id: string; + alert_name: string; + cancel_url: string; + checkout_id: string; + currency: string; + email: string; + event_time: string; + linked_subscriptions: string; + marketing_consent: string; + new_price: string; + new_quantity: string; + new_unit_price: string; + next_bill_date: string; + old_next_bill_date: string; + old_price: string; + old_quantity: string; + old_status: string; + old_subscription_plan_id: string; + old_unit_price: string; + passthrough: string; + status: SubscriptionStatus; + subscription_id: string; + subscription_plan_id: string; + update_url: string; + user_id: string; + p_signature: string; +}; diff --git a/src/pages/api/subscription/update.ts b/src/pages/api/subscription/update.ts new file mode 100644 index 0000000..d4cdb0c --- /dev/null +++ b/src/pages/api/subscription/update.ts @@ -0,0 +1,88 @@ +import type { ApiError } from "../_types"; +import { withApiAuthRequired } from "../../../../lib/session-helpers"; +import appLogger from "../../../../lib/logger"; +import { findUserSubscription } from "../../../database/subscriptions"; +import Joi from "joi"; +import { + cancelPaddleSubscription, + updateSubscriptionPlan, +} from "../../../subscription/_paddle-api"; + +type Body = { + planId: string; +}; +type Response = {} | ApiError; + +const logger = appLogger.child({ + route: "/api/subscription/update-subscription", +}); + +const bodySchema = Joi.object({ + planId: Joi.string().required(), +}); + +export default withApiAuthRequired(async function updateSubscription( + req, + res, + session, +) { + if (req.method !== "POST") { + const statusCode = 405; + const apiError: ApiError = { + statusCode, + errorMessage: `Method ${req.method} Not Allowed`, + }; + logger.error(apiError); + + res.setHeader("Allow", ["POST"]); + res.status(statusCode).send(apiError); + return; + } + + const validationResult = bodySchema.validate(req.body, { + stripUnknown: true, + }); + const validationError = validationResult.error; + if (validationError) { + const statusCode = 400; + const apiError: ApiError = { + statusCode, + errorMessage: "Body is malformed", + }; + logger.error(validationError); + + res.status(statusCode).send(apiError); + return; + } + const { planId }: Body = validationResult.value; + + const subscription = await findUserSubscription({ + teamId: session.user.teamId, + }); + if (!subscription) { + const statusCode = 500; + const apiError: ApiError = { + statusCode, + errorMessage: "You are not subscribed yet, this should not happen.", + }; + logger.error(apiError); + + res.status(statusCode).send(apiError); + return; + } + + const subscriptionId = subscription.paddleSubscriptionId; + const isMovingToFreePlan = planId === "free"; + if (isMovingToFreePlan) { + await cancelPaddleSubscription({ subscriptionId }); + res.status(200).end(); + return; + } + + await updateSubscriptionPlan({ + planId, + subscriptionId, + }); + + res.status(200).end(); +}); diff --git a/src/pages/api/subscription/webhook.ts b/src/pages/api/subscription/webhook.ts new file mode 100644 index 0000000..5e80f9c --- /dev/null +++ b/src/pages/api/subscription/webhook.ts @@ -0,0 +1,78 @@ +import type { NextApiHandler, NextApiRequest, NextApiResponse } from "next"; +import getConfig from "next/config"; +import { PaddleSdk, stringifyMetadata } from "@devoxa/paddle-sdk"; + +import { subscriptionCreatedHandler } from "./_subscription-created"; +import { subscriptionPaymentSucceededHandler } from "./_subscription-payment-succeeded"; +import { subscriptionCancelled } from "./_subscription-cancelled"; +import { subscriptionUpdated } from "./_subscription-updated"; +import type { ApiError } from "../_types"; +import appLogger from "../../../../lib/logger"; + +type SupportedWebhook = + | "subscription_created" + | "subscription_cancelled" + | "subscription_payment_succeeded" + | "subscription_updated"; +const supportedWebhooks: SupportedWebhook[] = [ + "subscription_created", + "subscription_cancelled", + "subscription_payment_succeeded", + "subscription_updated", +]; + +const handlers: Record = { + subscription_created: subscriptionCreatedHandler, + subscription_payment_succeeded: subscriptionPaymentSucceededHandler, + subscription_cancelled: subscriptionCancelled, + subscription_updated: subscriptionUpdated, +}; + +function isSupportedWebhook(webhook: any): webhook is SupportedWebhook { + return supportedWebhooks.includes(webhook); +} + +const logger = appLogger.child({ route: "/api/subscription/webhook" }); +const { publicRuntimeConfig, serverRuntimeConfig } = getConfig(); +const paddleSdk = new PaddleSdk({ + publicKey: serverRuntimeConfig.paddle.publicKey, + vendorId: publicRuntimeConfig.paddle.vendorId, + vendorAuthCode: serverRuntimeConfig.paddle.apiKey, + metadataCodec: stringifyMetadata(), +}); + +export default async function webhook( + req: NextApiRequest, + res: NextApiResponse, +) { + if (req.method !== "POST") { + const statusCode = 405; + const apiError: ApiError = { + statusCode, + errorMessage: `Method ${req.method} Not Allowed`, + }; + logger.error(apiError); + + res.setHeader("Allow", ["POST"]); + res.status(statusCode).send(apiError); + return; + } + + if (!paddleSdk.verifyWebhookEvent(req.body)) { + const statusCode = 500; + const apiError: ApiError = { + statusCode, + errorMessage: "Webhook event is invalid", + }; + logger.error(apiError); + + return res.status(statusCode).send(apiError); + } + + const alertName = req.body.alert_name; + if (isSupportedWebhook(alertName)) { + return handlers[alertName](req, res); + } + + return res.status(400).end(); +} diff --git a/src/pages/api/user/add-phone-number.ts b/src/pages/api/user/add-phone-number.ts new file mode 100644 index 0000000..658641a --- /dev/null +++ b/src/pages/api/user/add-phone-number.ts @@ -0,0 +1,52 @@ +import Joi from "joi"; +import twilio from "twilio"; + +import type { ApiError } from "../_types"; +import { withApiAuthRequired } from "../../../../lib/session-helpers"; +import appLogger from "../../../../lib/logger"; +import { createPhoneNumber } from "../../../database/phone-number"; +import { findCustomer } from "../../../database/customer"; +import fetchMessagesQueue from "../queue/fetch-messages"; + +const logger = appLogger.child({ route: "/api/user/add-phone-number" }); + +type Body = { + phoneNumberSid: string; +} + +export default withApiAuthRequired(async function addPhoneNumberHandler(req, res, user) { + const bodySchema = Joi.object({ + phoneNumberSid: Joi.string().required(), + }); + + const validationResult = bodySchema.validate(req.body, { stripUnknown: true }); + const validationError = validationResult.error; + if (validationError) { + const statusCode = 400; + const apiError: ApiError = { + statusCode, + errorMessage: "Body is malformed", + }; + logger.error(validationError); + + res.status(statusCode).send(apiError); + return; + } + + const customerId = user.id; + const customer = await findCustomer(customerId); + const phoneNumbers = await twilio(customer.accountSid, customer.authToken) + .incomingPhoneNumbers + .list(); + const { phoneNumberSid }: Body = validationResult.value; + const phoneNumber = phoneNumbers.find(phoneNumber => phoneNumber.sid === phoneNumberSid)!; + await createPhoneNumber({ + customerId, + phoneNumberSid, + phoneNumber: phoneNumber.phoneNumber, + }); + + await fetchMessagesQueue.enqueue({ customerId }); + + return res.status(200).end(); +}); diff --git a/src/pages/api/user/delete-user.ts b/src/pages/api/user/delete-user.ts new file mode 100644 index 0000000..0fba0fb --- /dev/null +++ b/src/pages/api/user/delete-user.ts @@ -0,0 +1,71 @@ +import type { ApiError } from "../_types"; +import { withApiAuthRequired } from "../../../../lib/session-helpers"; +import { deleteSubscription } from "../../../database/subscriptions"; +import { cancelPaddleSubscription } from "../../../subscription/_paddle-api"; + +import appLogger from "../../../../lib/logger"; + +type Response = void | ApiError; + +const logger = appLogger.child({ route: "/api/user/delete-user" }); + +export default withApiAuthRequired(async function deleteUserHandler( + req, + res, + session, +) { + if (req.method !== "POST") { + const statusCode = 405; + const apiError: ApiError = { + statusCode, + errorMessage: `Method ${req.method} Not Allowed`, + }; + logger.error(apiError); + + res.setHeader("Allow", ["POST"]); + res.status(statusCode).send(apiError); + return; + } + + const { id: userId, role, teamId } = session.user; + const team = await findTeam({ id: teamId }); + const subscriptionId = team!.subscriptionId; + + try { + let actions: Promise[] = [ + deleteAuth0User({ id: userId }), + deleteUser({ id: userId, teamId }), + ]; + + if (role === "owner") { + const teamMembers = await findUsersByTeam({ teamId }); + + teamMembers.forEach((member) => + actions.push(deleteUser({ id: member.id, teamId })), + ); + actions.push(deleteTeam({ id: teamId })); + + if (subscriptionId) { + actions.push( + cancelPaddleSubscription({ subscriptionId }), + deleteSubscription({ + paddleSubscriptionId: subscriptionId, + }), + ); + } + } + + await Promise.all(actions); + + res.status(200).end(); + } catch (error) { + const statusCode = error.statusCode ?? 500; + const apiError: ApiError = { + statusCode, + errorMessage: error.message, + }; + logger.error(apiError); + + res.status(statusCode).send(apiError); + } +}); diff --git a/src/pages/api/user/list-twilio-numbers.ts b/src/pages/api/user/list-twilio-numbers.ts new file mode 100644 index 0000000..a8f20bb --- /dev/null +++ b/src/pages/api/user/list-twilio-numbers.ts @@ -0,0 +1,21 @@ +import Joi from "joi"; +import twilio from "twilio"; + +import type { ApiError } from "../_types"; +import { withApiAuthRequired } from "../../../../lib/session-helpers"; +import appLogger from "../../../../lib/logger"; +import { createPhoneNumber } from "../../../database/phone-number"; +import { findCustomer } from "../../../database/customer"; + +const logger = appLogger.child({ route: "/api/user/list-twilio-numbers" }); + +export default withApiAuthRequired(async function listTwilioNumbersHandler(req, res, user) { + const customer = await findCustomer(user.id); + const phoneNumbers = await twilio(customer.accountSid, customer.authToken) + .incomingPhoneNumbers + .list(); + + return res.status(200).send({ + phoneNumbers: phoneNumbers.map(({ phoneNumber, sid }) => ({ phoneNumber, sid })), + }); +}); diff --git a/src/pages/api/user/session.ts b/src/pages/api/user/session.ts new file mode 100644 index 0000000..1502f45 --- /dev/null +++ b/src/pages/api/user/session.ts @@ -0,0 +1,30 @@ +import type { ApiError } from "../_types"; +import type Session from "../../../../lib/session"; +import { + sessionCache, + withApiAuthRequired, +} from "../../../../lib/session-helpers"; +import appLogger from "../../../../lib/logger"; + +type Response = Session | ApiError; + +const logger = appLogger.child({ route: "/api/user/session" }); + +export default withApiAuthRequired(async function session(req, res) { + if (req.method !== "GET") { + const statusCode = 405; + const apiError: ApiError = { + statusCode, + errorMessage: `Method ${req.method} Not Allowed`, + }; + logger.error(apiError); + + res.setHeader("Allow", ["GET"]); + res.status(statusCode).send(apiError); + return; + } + + const session = sessionCache.get(req, res)!; + + res.status(200).send(session); +}); diff --git a/src/pages/api/user/update-user.ts b/src/pages/api/user/update-user.ts new file mode 100644 index 0000000..59142cd --- /dev/null +++ b/src/pages/api/user/update-user.ts @@ -0,0 +1,115 @@ +import Joi from "joi"; + +import type { ApiError } from "../_types"; +import { withApiAuthRequired } from "../../../../lib/session-helpers"; +import appLogger from "../../../../lib/logger"; +import supabase from "../../../supabase/server"; +import { UserAttributes } from "@supabase/gotrue-js/dist/main/lib/types"; +import { Customer, updateCustomer } from "../../../database/customer"; + +type Response = void | ApiError; + +type Body = { + name?: string; + email?: string; + password?: string; + twilioAccountSid?: string; + twilioAuthToken?: string; +}; + +const logger = appLogger.child({ route: "/api/user/update-user" }); +const bodySchema = Joi.object({ + name: Joi.string().allow(""), + email: Joi.string().email().allow(""), + password: Joi.string().allow(""), + twilioAccountSid: Joi.string().allow(""), + twilioAuthToken: Joi.string().allow(""), +}); + +export default withApiAuthRequired(async function updateUserHandler( + req, + res, + user, +) { + if (req.method !== "POST") { + const statusCode = 405; + const apiError: ApiError = { + statusCode, + errorMessage: `Method ${req.method} Not Allowed`, + }; + logger.error(apiError); + + res.setHeader("Allow", ["POST"]); + res.status(statusCode).send(apiError); + return; + } + + const validationResult = bodySchema.validate(req.body); + const validationError = validationResult.error; + if (validationError) { + const statusCode = 400; + const apiError: ApiError = { + statusCode, + errorMessage: "Body is malformed", + }; + logger.error(validationError); + + res.status(statusCode).send(apiError); + return; + } + + const body: Body = validationResult.value; + + const { + name, + email, + password, + twilioAuthToken, + twilioAccountSid, + } = body; + const shouldUpdateName = name?.length && name !== user.user_metadata.name; + const shouldUpdateEmail = email?.length && email !== user.email; + const shouldUpdatePassword = password?.length; + const shouldUpdateTwilioCredentials = twilioAuthToken?.length && twilioAccountSid?.length; + + try { + let updatedSupabaseUser: UserAttributes = {}; + let updatedCustomer: Partial = {}; + + if (shouldUpdateName) { + updatedSupabaseUser.data = { name }; + updatedCustomer.name = name; + } + + if (shouldUpdateEmail) { + updatedSupabaseUser.email = email; + updatedCustomer.email = email; + // TODO: once Paddle allows it, update customer email through their API + } + + if (shouldUpdatePassword) { + updatedSupabaseUser.password = password; + } + + if (shouldUpdateTwilioCredentials) { + updatedCustomer.accountSid = twilioAccountSid; + updatedCustomer.authToken = twilioAuthToken; + } + + await Promise.all([ + supabase.auth.update(updatedSupabaseUser), + updateCustomer(user.id, updatedCustomer), + ]); + + res.status(200).end(); + } catch (error) { + const statusCode = error.statusCode ?? 500; + const apiError: ApiError = { + statusCode, + errorMessage: error.message, + }; + logger.error(apiError); + + res.status(statusCode).send(apiError); + } +}); diff --git a/src/pages/auth/forgot-password.tsx b/src/pages/auth/forgot-password.tsx new file mode 100644 index 0000000..67c42f3 --- /dev/null +++ b/src/pages/auth/forgot-password.tsx @@ -0,0 +1,127 @@ +import type { NextPage } from "next"; +import clsx from "clsx"; +import { useForm } from "react-hook-form"; + +import Alert from "../../components/alert"; + +import useAuth from "../../hooks/use-auth"; + +import { withPageAuthNotRequired } from "../../../lib/session-helpers"; +import appLogger from "../../../lib/logger"; +import Logo from "../../components/logo"; + +type Form = { + email: string; +}; + +const logger = appLogger.child({ page: "/auth/forgot-password" }); + +const ForgotPassword: NextPage = () => { + const auth = useAuth(); + const { + register, + handleSubmit, + setError, + formState: { isSubmitting, isSubmitSuccessful, errors }, + } = useForm
(); + + const onSubmit = handleSubmit(async ({ email }) => { + if (isSubmitting) { + return; + } + + try { + await auth.resetPassword(email); + } catch (error) { + logger.error(error); + setError("email", { message: error.message }); + } + }); + + const errorMessage = errors.email?.message; + + return ( +
+
+
+ +

+ Get a new password +

+

+ Enter your user account's email address and we will + send you a password reset link. +

+
+ + {errorMessage ? ( +
+ +
+ ) : null} + + {isSubmitSuccessful ? ( +
+ +
+ ) : null} + +
+
+ +
+ +
+ +
+
+ +
+ + + +
+ +
+
+
+
+ ); +}; + +export default ForgotPassword; + +export const getServerSideProps = withPageAuthNotRequired(); diff --git a/src/pages/auth/sign-in.tsx b/src/pages/auth/sign-in.tsx new file mode 100644 index 0000000..84907a8 --- /dev/null +++ b/src/pages/auth/sign-in.tsx @@ -0,0 +1,12 @@ +import type { NextPage } from "next"; + +import { withPageAuthNotRequired } from "../../../lib/session-helpers"; +import AuthPage from "../../components/auth/auth-page"; + +const SignIn: NextPage = () => { + return ; +}; + +export default SignIn; + +export const getServerSideProps = withPageAuthNotRequired(); diff --git a/src/pages/auth/sign-out.tsx b/src/pages/auth/sign-out.tsx new file mode 100644 index 0000000..f0779d3 --- /dev/null +++ b/src/pages/auth/sign-out.tsx @@ -0,0 +1,34 @@ +import type { NextPage } from "next"; +import { useEffect } from "react"; +import Link from "next/link"; + +import useAuth from "../../hooks/use-auth"; + +const SignOut: NextPage = () => { + const auth = useAuth(); + + useEffect(() => void auth.signOut()); + + return ( +
+
+

+ See you again soon! +

+ + + Log back in + + +
+ + + Back to home + + +
+
+ ); +}; + +export default SignOut; diff --git a/src/pages/auth/sign-up.tsx b/src/pages/auth/sign-up.tsx new file mode 100644 index 0000000..f2c99af --- /dev/null +++ b/src/pages/auth/sign-up.tsx @@ -0,0 +1,12 @@ +import type { NextPage } from "next"; + +import { withPageAuthNotRequired } from "../../../lib/session-helpers"; +import AuthPage from "../../components/auth/auth-page"; + +const SignUp: NextPage = () => { + return ; +}; + +export default SignUp; + +export const getServerSideProps = withPageAuthNotRequired(); diff --git a/src/pages/calls.tsx b/src/pages/calls.tsx new file mode 100644 index 0000000..f5216cd --- /dev/null +++ b/src/pages/calls.tsx @@ -0,0 +1,37 @@ +import type { InferGetServerSidePropsType, NextPage } from "next"; + +import { withPageOnboardingRequired } from "../../lib/session-helpers"; +import Layout from "../components/layout"; +import useUser from "../hooks/use-user"; + +type Props = InferGetServerSidePropsType; + +const pageTitle = "Calls"; + +const Calls: NextPage = (props) => { + const { userProfile } = useUser(); + + console.log("userProfile", userProfile); + + if (!userProfile) { + return Loading...; + } + + return ( + +
+

Calls page

+
+
+ ); +}; + +export const getServerSideProps = withPageOnboardingRequired( + async (context, user) => { + return { + props: { userId: user.id, ddd: 23 as const }, + }; + }, +); + +export default Calls; diff --git a/src/pages/index.tsx b/src/pages/index.tsx new file mode 100644 index 0000000..af0f9e3 --- /dev/null +++ b/src/pages/index.tsx @@ -0,0 +1,268 @@ +import type { NextPage } from "next"; +import Link from "next/link"; +import Image from "next/image"; +import clsx from "clsx"; +import { useForm } from "react-hook-form"; + +import Logo from "../components/logo"; + +const Index: NextPage = () => { + return ( +
+ + + +
+
+ ); +}; + +function Hero() { + return ( +
+
+
+ + + + + + + +
+
+ +
+

+ Welcome to your +
+ serverless web app +

+

+ Anim aute id magna aliqua ad ad non deserunt sunt. Qui irure + qui lorem cupidatat commodo. Elit sunt amet fugiat veniam + occaecat fugiat aliqua. +

+ + +
+
+ ); +} + +function Features() { + return ( +
+
+
+

+ A better way to bootstrap your app +

+

+ Lorem ipsum dolor sit amet consect adipisicing elit. + Possimus magnam voluptatum cupiditate veritatis in + accusamus quisquam. +

+
+ + + + + + +
+
+ ); +} + +type FeatureProps = { + title: string; + description: string; + illustration: string; + isReversed?: true; +}; + +function Feature({ + title, + description, + illustration, + isReversed, +}: FeatureProps) { + return ( +
+
+

+ {title} +

+
+ {description} +
+
+ +
+ {`Feature +
+
+ ); +} + +function Newsletter() { + const { + register, + handleSubmit, + setValue, + formState: { isSubmitted, isSubmitting }, + } = useForm<{ email: string }>(); + + const onSubmit = handleSubmit(async ({ email }) => { + try { + const { default: axios } = await import("axios"); + await axios.post("/api/newsletter/subscribe", { email }); + setValue("email", ""); + } catch (error) { + console.error(error); + } + }); + + return ( +
+
+
+

+ Want to know when we launch? +

+

+ Lorem ipsum, dolor sit amet. +

+
+
+ {isSubmitting || isSubmitted ? ( + + Thanks! We'll let you know when we launch + + ) : ( +
+ + +
+ )} +
+
+
+ ); +} + +function Footer() { + return ( + + ); +} + +export default Index; diff --git a/src/pages/keypad.tsx b/src/pages/keypad.tsx new file mode 100644 index 0000000..6449993 --- /dev/null +++ b/src/pages/keypad.tsx @@ -0,0 +1,129 @@ +import type { InferGetServerSidePropsType, NextPage } from "next"; +import type { FunctionComponent } from "react"; +import { atom, useAtom } from "jotai"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faBackspace, faPhoneAlt as faPhone } from "@fortawesome/pro-solid-svg-icons"; + +import { withPageOnboardingRequired } from "../../lib/session-helpers"; +import Layout from "../components/layout"; +import useUser from "../hooks/use-user"; + +type Props = InferGetServerSidePropsType; + +const pageTitle = "Keypad"; + +const Keypad: NextPage = () => { + const { userProfile } = useUser(); + const phoneNumber = useAtom(phoneNumberAtom)[0]; + const pressBackspace = useAtom(pressBackspaceAtom)[1]; + + if (!userProfile) { + return Loading...; + } + + return ( + +
+
+ {phoneNumber} +
+ +
+ + + ABC + DEF + + + GHI + JKL + MNO + + + PQRS + TUV + WXYZ + + + + + + + +
+ +
+
+ +
+
+
+
+
+ ); +}; + +const ZeroDigit: FunctionComponent = () => { + return ( +
+ 0 + +
+ ); +}; + +const Row: FunctionComponent = ({ children }) => ( +
+ {children} +
+); + +const Digit: FunctionComponent<{ digit: string }> = ({ children, digit }) => { + const pressDigit = useAtom(pressDigitAtom)[1]; + const onClick = () => pressDigit(digit); + + return ( +
+ {digit} + {children} +
+ ); +}; + +const DigitLetters: FunctionComponent = ({ children }) => ( +
+ {children} +
+); + +const phoneNumberAtom = atom(""); +const pressDigitAtom = atom( + null, + (get, set, digit) => { + if (get(phoneNumberAtom).length > 17) { + return; + } + + set(phoneNumberAtom, prevState => prevState + digit); + }, +); +const pressBackspaceAtom = atom( + null, + (get, set) => { + if (get(phoneNumberAtom).length === 0) { + return; + } + + set(phoneNumberAtom, prevState => prevState.slice(0, -1)); + }, +); + +export const getServerSideProps = withPageOnboardingRequired( + async (context, user) => { + return { + props: { userId: user.id, ddd: 23 as const }, + }; + }, +); + +export default Keypad; diff --git a/src/pages/messages.tsx b/src/pages/messages.tsx new file mode 100644 index 0000000..281a8fe --- /dev/null +++ b/src/pages/messages.tsx @@ -0,0 +1,83 @@ +import type { InferGetServerSidePropsType, NextPage } from "next"; +import Link from "next/link"; + +import { withPageOnboardingRequired } from "../../lib/session-helpers"; +import Layout from "../components/layout"; +import useUser from "../hooks/use-user"; +import type { Sms } from "../database/_types"; +import { SmsType } from "../database/_types"; +import { findCustomerMessages } from "../database/sms"; +import { findCustomer } from "../database/customer"; +import { decrypt } from "../database/_encryption"; + +type Props = InferGetServerSidePropsType; + +const pageTitle = "Messages"; + +const Messages: NextPage = ({ conversations }) => { + const { userProfile } = useUser(); + + if (!userProfile) { + return Loading...; + } + + console.log("conversations", conversations); + + return ( + +
+

Messages page

+
    + {Object.entries(conversations).map(([recipient, conversation]) => { + const lastMessage = conversation[conversation.length - 1]; + return ( +
  • + + +
    {recipient}
    +
    {lastMessage.content}
    +
    + +
  • + ) + })} +
+
+
+ ); +}; + +type Recipient = string; +export type Conversation = Record; + +export const getServerSideProps = withPageOnboardingRequired( + async (context, user) => { + const customer = await findCustomer(user.id); + const messages = await findCustomerMessages(user.id); + const conversations = messages.reduce((acc, message) => { + let recipient: string; + if (message.type === SmsType.SENT) { + recipient = message.to; + } else { + recipient = message.from; + } + + if (!acc[recipient]) { + acc[recipient] = []; + } + + acc[recipient].push({ + ...message, + content: decrypt(message.content, customer.encryptionKey), // TODO: should probably decrypt on the phone + }); + + return acc; + }, {}); + + return { + props: { conversations }, + }; + }, +); + +export default Messages; diff --git a/src/pages/messages/[recipient].tsx b/src/pages/messages/[recipient].tsx new file mode 100644 index 0000000..19d775e --- /dev/null +++ b/src/pages/messages/[recipient].tsx @@ -0,0 +1,83 @@ +import type { NextPage } from "next"; +import { useRouter } from "next/router"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faChevronLeft } from "@fortawesome/pro-regular-svg-icons"; +import clsx from "clsx"; + +import { withPageOnboardingRequired } from "../../../lib/session-helpers"; +import Layout from "../../components/layout"; +import useUser from "../../hooks/use-user"; +import { findConversation } from "../../database/sms"; +import { decrypt } from "../../database/_encryption"; +import { findCustomer } from "../../database/customer"; +import type { Sms } from "../../database/_types"; +import { SmsType } from "../../database/_types"; + +type Props = { + recipient: string; + conversation: Sms[]; +}; + +const Messages: NextPage = ({ conversation }) => { + const { userProfile } = useUser(); + const router = useRouter(); + const pageTitle = `Messages with ${router.query.recipient}`; + + console.log("userProfile", userProfile); + + if (!userProfile) { + return Loading...; + } + + return ( + +
+ + Back + +
+
+
    + {conversation.map(message => { + return ( +
  • + {message.content} +
  • + ) + })} +
+
+
+ ); +}; + +export const getServerSideProps = withPageOnboardingRequired( + async (context, user) => { + const recipient = context.params?.recipient; + if (!recipient || Array.isArray(recipient)) { + return { + redirect: { + destination: "/messages", + permanent: false, + }, + }; + } + + const customer = await findCustomer(user.id); + const conversation = await findConversation(user.id, recipient); + console.log("conversation", conversation); + + console.log("recipient", recipient); + return { + props: { + recipient, + conversation: conversation.map(message => ({ + ...message, + content: decrypt(message.content, customer.encryptionKey), + })), + }, + }; + }, +); + +export default Messages; diff --git a/src/pages/settings/account.tsx b/src/pages/settings/account.tsx new file mode 100644 index 0000000..f09994d --- /dev/null +++ b/src/pages/settings/account.tsx @@ -0,0 +1,57 @@ +import type { NextPage } from "next"; + +import useUser from "../../hooks/use-user"; + +import SettingsLayout from "../../components/settings/settings-layout"; +import Alert from "../../components/alert"; +import ProfileInformations from "../../components/settings/profile-informations"; +import Divider from "../../components/divider"; +import UpdatePassword from "../../components/settings/update-password"; +import DangerZone from "../../components/settings/danger-zone"; +import { withPageOnboardingRequired } from "../../../lib/session-helpers"; + +const Account: NextPage = () => { + const user = useUser(); + + if (user.isLoading) { + return Loading...; + } + + if (user.error !== null) { + return ( + +
+ +
+
+ ); + } + + return ( + +
+ + +
+ +
+ + + +
+ +
+ + +
+
+ ); +}; + +export const getServerSideProps = withPageOnboardingRequired(); + +export default Account; diff --git a/src/pages/settings/billing.tsx b/src/pages/settings/billing.tsx new file mode 100644 index 0000000..8a3e9ca --- /dev/null +++ b/src/pages/settings/billing.tsx @@ -0,0 +1,106 @@ +import type { FunctionComponent, MouseEventHandler } from "react"; +import type { NextPage } from "next"; +import { ExternalLinkIcon } from "@heroicons/react/outline"; + +import SettingsLayout from "../../components/settings/settings-layout"; +import SettingsSection from "../../components/settings/settings-section"; +import BillingPlans from "../../components/billing/billing-plans"; +import Divider from "../../components/divider"; + +import useSubscription from "../../hooks/use-subscription"; + +import { withPageOnboardingRequired } from "../../../lib/session-helpers"; +import type { Subscription } from "../../database/subscriptions"; +import { findUserSubscription } from "../../database/subscriptions"; + +import appLogger from "../../../lib/logger"; + +const logger = appLogger.child({ page: "/account/settings/billing" }); + +type Props = { + subscription: Subscription | null; +}; + +const Billing: NextPage = ({ subscription }) => { + /* + TODO: I want to be able to + - renew subscription (after pause/cancel for example) (message like "your subscription expired, would you like to renew ?") + - know when is the last time I paid and for how much + - know when is the next time I will pay and for how much + */ + const { cancelSubscription, updatePaymentMethod } = useSubscription(); + + return ( + +
+ {subscription ? ( + <> + + + updatePaymentMethod({ + updateUrl: subscription.updateUrl, + }) + } + text="Update payment method on Paddle" + /> + + +
+ +
+ + + + + +
+ +
+ + + + cancelSubscription({ + cancelUrl: subscription.cancelUrl, + }) + } + text="Cancel subscription on Paddle" + /> + + + ) : ( + + + + )} +
+
+ ); +}; + +export default Billing; + +type PaddleLinkProps = { + onClick: MouseEventHandler; + text: string; +}; + +const PaddleLink: FunctionComponent = ({ onClick, text }) => ( + +); + +export const getServerSideProps = withPageOnboardingRequired( + async (context, user) => { + // const subscription = await findUserSubscription({ userId: user.id }); + + return { + props: { subscription: null }, + }; + }, +); diff --git a/src/pages/settings/index.tsx b/src/pages/settings/index.tsx new file mode 100644 index 0000000..a63b5b7 --- /dev/null +++ b/src/pages/settings/index.tsx @@ -0,0 +1,52 @@ +import type { InferGetServerSidePropsType, NextPage } from "next"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faCreditCard, faUserCircle } from "@fortawesome/pro-regular-svg-icons"; + +import Layout from "../../components/layout"; + +import { withPageOnboardingRequired } from "../../../lib/session-helpers"; +import appLogger from "../../../lib/logger"; + +type Props = InferGetServerSidePropsType; + +const logger = appLogger.child({ page: "/account/settings" }); + +const navigation = [ + { + name: "Account", + href: "/settings/account", + icon: ({className = "w-8 h-8"}) => + }, + { + name: "Billing", + href: "/settings/billing", + icon: ({className = "w-8 h-8"}) => + }, +]; + +const Settings: NextPage = (props) => { + return ( + +
+ +
+
+ ); +}; + +export const getServerSideProps = withPageOnboardingRequired(); + +export default Settings; diff --git a/src/pages/welcome/step-one.tsx b/src/pages/welcome/step-one.tsx new file mode 100644 index 0000000..e7ba0f6 --- /dev/null +++ b/src/pages/welcome/step-one.tsx @@ -0,0 +1,22 @@ +import type { NextPage } from "next"; + +import { withPageAuthRequired } from "../../../lib/session-helpers"; + +import OnboardingLayout from "../../components/welcome/onboarding-layout"; + +const StepOne: NextPage = () => { + return ( + +
+ Welcome, letโ€™s set up your virtual phone! +
+
+ ); +}; + +export const getServerSideProps = withPageAuthRequired(); + +export default StepOne; diff --git a/src/pages/welcome/step-three.tsx b/src/pages/welcome/step-three.tsx new file mode 100644 index 0000000..f78727e --- /dev/null +++ b/src/pages/welcome/step-three.tsx @@ -0,0 +1,107 @@ +import type { InferGetServerSidePropsType, NextPage } from "next"; +import { useEffect } from "react"; +import { useRouter } from "next/router"; +import twilio from "twilio"; +import { useForm } from "react-hook-form"; +import axios from "axios"; + +import { withPageAuthRequired } from "../../../lib/session-helpers"; + +import OnboardingLayout from "../../components/welcome/onboarding-layout"; +import { findCustomer } from "../../database/customer"; +import clsx from "clsx"; + +type Props = InferGetServerSidePropsType; + +type Form = { + phoneNumberSid: string; +} + +const StepThree: NextPage = ({ hasTwilioCredentials, availablePhoneNumbers }) => { + const { + register, + handleSubmit, + setValue, + formState: { isSubmitting }, + } = useForm
(); + const router = useRouter(); + + useEffect(() => { + setValue("phoneNumberSid", availablePhoneNumbers[0].sid); + }); + + const onSubmit = handleSubmit(async ({ phoneNumberSid }) => { + if (isSubmitting) { + return; + } + + await axios.post("/api/user/add-phone-number", { phoneNumberSid }, { withCredentials: true }); + await router.push("/messages"); + }); + + if (!hasTwilioCredentials) { + return ( + +
+ You don't have any phone number, fill your Twilio credentials first +
+
+ ) + } + + return ( + +
+ + + + + + +
+
+ ); +}; + +export const getServerSideProps = withPageAuthRequired(async (context, user) => { + const customer = await findCustomer(user.id); + const hasTwilioCredentials = customer.accountSid.length > 0 && customer.authToken.length > 0; + const incomingPhoneNumbers = await twilio(customer.accountSid, customer.authToken) + .incomingPhoneNumbers + .list(); + const phoneNumbers = incomingPhoneNumbers.map(({ phoneNumber, sid }) => ({ phoneNumber, sid })); + + return { + props: { + hasTwilioCredentials, + availablePhoneNumbers: phoneNumbers, + }, + }; +}); + +export default StepThree; diff --git a/src/pages/welcome/step-two.tsx b/src/pages/welcome/step-two.tsx new file mode 100644 index 0000000..f5f2efb --- /dev/null +++ b/src/pages/welcome/step-two.tsx @@ -0,0 +1,104 @@ +import type { InferGetServerSidePropsType, NextPage } from "next"; +import { useRouter } from "next/router"; +import { useEffect } from "react"; +import { useForm } from "react-hook-form"; +import axios from "axios"; + +import { withPageAuthRequired } from "../../../lib/session-helpers"; +import OnboardingLayout from "../../components/welcome/onboarding-layout"; +import clsx from "clsx"; +import { findCustomer } from "../../database/customer"; + +type Props = InferGetServerSidePropsType; + +type Form = { + twilioAccountSid: string; + twilioAuthToken: string; +} + +const StepTwo: NextPage = ({ accountSid, authToken }) => { + const { + register, + handleSubmit, + setValue, + formState: { isSubmitting }, + } = useForm
(); + const router = useRouter(); + + useEffect(() => { + setValue("twilioAuthToken", authToken); + setValue("twilioAccountSid", accountSid); + }); + + const onSubmit = handleSubmit(async ({ twilioAccountSid, twilioAuthToken }) => { + if (isSubmitting) { + return; + } + + await axios.post("/api/user/update-user", { + twilioAccountSid, + twilioAuthToken, + }, { withCredentials: true }); + await router.push("/welcome/step-three"); + }); + const hasTwilioCredentials = accountSid.length > 0 && authToken.length > 0; + + return ( + +
+ +
+ + +
+
+ + +
+ + + +
+
+ ); +}; + +export const getServerSideProps = withPageAuthRequired(async (context, user) => { + const customer = await findCustomer(user.id); + + return { + props: { + accountSid: customer.accountSid ?? "", + authToken: customer.authToken ?? "", + }, + }; +}); + +export default StepTwo; diff --git a/src/session-context.tsx b/src/session-context.tsx new file mode 100644 index 0000000..2a8eb3c --- /dev/null +++ b/src/session-context.tsx @@ -0,0 +1,105 @@ +import type { Dispatch, ReactNode, Reducer, ReducerAction } from "react"; +import { createContext, useEffect, useReducer } from "react"; +import type { User } from "@supabase/supabase-js"; +import supabase from "./supabase/client"; + +type Context = { + state: SessionState; + dispatch: Dispatch>; +}; + +export const SessionContext = createContext(null as any); + +type ProviderProps = { + children: ReactNode; + user?: User | null; +}; + +function getInitialState(initialUser: User | null | undefined): SessionState { + if (!initialUser) { + return { + state: "LOADING", + user: null, + error: null, + }; + } + + return { + state: "SUCCESS", + user: initialUser, + error: null, + }; +} + +export function SessionProvider({ children, user }: ProviderProps) { + const [state, dispatch] = useReducer( + sessionReducer, + getInitialState(user), + ); + + useEffect(() => { + supabase.auth.onAuthStateChange((event, session) => { + console.log("event", event); + if (["SIGNED_IN", "USER_UPDATED"].includes(event)) { + dispatch({ + type: "SET_SESSION", + user: session!.user!, + }); + } + }); + + if (state.user === null) { + dispatch({ + type: "SET_SESSION", + user: supabase.auth.user()!, + }); + } + }, []); + + return ( + + {children} + + ); +} + +type SessionState = + | { + state: "LOADING"; + user: null; + error: null; + } + | { + state: "SUCCESS"; + user: User; + error: null; + } + | { + state: "ERROR"; + user: User | null; + error: Error; + }; + +type Action = + | { type: "SET_SESSION"; user: User } + | { type: "THROW_ERROR"; error: Error }; + +const sessionReducer: Reducer = (state, action) => { + switch (action.type) { + case "SET_SESSION": + return { + ...state, + state: "SUCCESS", + user: action.user, + error: null, + }; + case "THROW_ERROR": + return { + ...state, + state: "ERROR", + error: action.error, + }; + default: + throw new Error("unreachable"); + } +}; diff --git a/src/subscription/_paddle-api.ts b/src/subscription/_paddle-api.ts new file mode 100644 index 0000000..9a63bc3 --- /dev/null +++ b/src/subscription/_paddle-api.ts @@ -0,0 +1,51 @@ +import axios from "axios"; +import getConfig from "next/config"; + +const { publicRuntimeConfig, serverRuntimeConfig } = getConfig(); + +const vendor_id = publicRuntimeConfig.paddle.vendorId; +const vendor_auth_code = serverRuntimeConfig.paddle.apiKey; + +const client = axios.create({ + baseURL: "https://vendors.paddle.com/api/2.0", +}); + +async function request(path: string, data: any) { + return client.post(path, { + ...data, + vendor_id, + vendor_auth_code, + }); +} + +type UpdateSubscriptionPlanParams = { + subscriptionId: string; + planId: string; + prorate?: boolean; +}; + +export async function updateSubscriptionPlan({ + subscriptionId, + planId, + prorate = true, +}: UpdateSubscriptionPlanParams) { + const { data } = await request("/subscription/users/update", { + subscription_id: subscriptionId, + plan_id: planId, + prorate, + }); + + return data; +} + +export async function cancelPaddleSubscription({ + subscriptionId, +}: { + subscriptionId: string; +}) { + const { data } = await request("/subscription/users_cancel", { + subscription_id: subscriptionId, + }); + + return data; +} diff --git a/src/subscription/plans.ts b/src/subscription/plans.ts new file mode 100644 index 0000000..7f77b58 --- /dev/null +++ b/src/subscription/plans.ts @@ -0,0 +1,61 @@ +export type PlanId = string; + +export type PaidPlan = { + id: PlanId; + name: string; + description: string; + price: number; + features: readonly string[]; +}; + +export type FreePlan = Omit & { + id: "free"; + billingCycle: null; + price: "free"; +}; + +export type Plan = FreePlan | PaidPlan; + +export const FREE: FreePlan = { + id: "free", + billingCycle: null, + name: "Free", + description: "Try out our software", + price: "free", + features: [ + "Potenti felis, in cras at at ligula nunc.", + "Orci neque eget pellentesque.", + ], +}; + +export const MONTHLY: PaidPlan = { + id: "647654", + name: "Monthly", + description: "All the basics for starting a new business", + price: 21, + features: [ + "Potenti felis, in cras at at ligula nunc.", + "Orci neque eget pellentesque.", + "Donec mauris sit in eu tincidunt etiam.", + ], +}; + +export const ANNUALLY: PaidPlan = { + id: "647656", + name: "Annually", + description: "All the basics for starting a new business", + price: 19, + features: [ + "Potenti felis, in cras at at ligula nunc.", + "Orci neque eget pellentesque.", + "Donec mauris sit in eu tincidunt etiam.", + ], +}; + +export const PLANS = { + [FREE.id]: FREE, + [MONTHLY.id]: MONTHLY, + [ANNUALLY.id]: ANNUALLY, +}; + +export type PlanName = Lowercase; diff --git a/src/supabase/client.ts b/src/supabase/client.ts new file mode 100644 index 0000000..81921c6 --- /dev/null +++ b/src/supabase/client.ts @@ -0,0 +1,10 @@ +import getConfig from "next/config"; +import { createClient } from "@supabase/supabase-js"; + +const { publicRuntimeConfig } = getConfig(); + +const { supabase: { url, anonKey } } = publicRuntimeConfig; + +const supabase = createClient(url, anonKey); + +export default supabase; \ No newline at end of file diff --git a/src/supabase/server.ts b/src/supabase/server.ts new file mode 100644 index 0000000..2802a60 --- /dev/null +++ b/src/supabase/server.ts @@ -0,0 +1,11 @@ +import getConfig from "next/config"; +import { createClient } from "@supabase/supabase-js"; + +const { publicRuntimeConfig, serverRuntimeConfig } = getConfig(); + +const { supabase: { url } } = publicRuntimeConfig; +const { supabase: { roleKey } } = serverRuntimeConfig; + +const supabase = createClient(url, roleKey); + +export default supabase; \ No newline at end of file diff --git a/src/tailwind.css b/src/tailwind.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/src/tailwind.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..922be76 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,38 @@ +const defaultTheme = require("tailwindcss/defaultTheme"); + +module.exports = { + mode: "jit", + theme: { + extend: { + fontFamily: { + sans: ["Inter var", ...defaultTheme.fontFamily.sans], + }, + gridTemplateColumns: { + "sidebar-content": "1.5rem 1fr", + }, + colors: { + primary: { + "50": "#f9fafb", + "100": "#eef1fb", + "200": "#dbd7f8", + "300": "#bcb1ed", + "400": "#a286df", + "500": "#8861d3", + "600": "#7045be", + "700": "#663399", + "800": "#39236b", + "900": "#1f163f", + }, + }, + }, + }, + variants: {}, + plugins: [ + require("@tailwindcss/forms"), + require("@tailwindcss/typography"), + ], + purge: [ + "./src/components/**/*.{js,ts,jsx,tsx}", + "./src/pages/**/*.{js,ts,jsx,tsx}", + ], +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..70c0fe9 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve" + }, + "exclude": [ + "node_modules" + ], + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx" + ] +}
+
+
+ +
+
+

+ Welcome to your +
+ + serverless + + web app +

+

+ Anim aute id magna aliqua ad ad non deserunt sunt. Qui irure qui lorem cupidatat commodo. Elit sunt amet fugiat veniam occaecat fugiat aliqua. +

+ +
+
+
+
+
+

+ A better way to bootstrap your app +

+

+ Lorem ipsum dolor sit amet consect adipisicing elit. Possimus magnam voluptatum cupiditate veritatis in accusamus quisquam. +

+
+
+
+

+ Feature #1 +

+
+ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione. +
+
+
+
+
+
+
+
+
+

+ Feature #2 +

+
+ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione. +
+
+
+
+
+
+
+
+
+

+ Feature #3 +

+
+ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione. +
+
+
+
+
+
+
+
+
+
+
+
+

+ Want to know when we launch? +

+

+ Lorem ipsum, dolor sit amet. +

+
+
+
+ + +
+
+
+
+ +