From 9d0db6054e41d38a069bf5c32f6f8b3a986414c8 Mon Sep 17 00:00:00 2001 From: Giselle van Dongen Date: Wed, 20 Dec 2023 13:56:19 +0100 Subject: [PATCH] Add food ordering example Current 2023 --- typescript/food-ordering/.gitignore | 5 - typescript/food-ordering/README.md | 143 +- .../{services => app}/.dockerignore | 2 +- .../{services => app}/Dockerfile | 7 +- .../Dockerfile => app/Dockerfile-restaurant} | 4 +- .../{pos_server => app}/package-lock.json | 1451 +- typescript/food-ordering/app/package.json | 32 + .../food-ordering/app/src/restate-app/app.ts | 19 + .../src/restate-app/clients/payment_client.ts | 40 + .../app/src/restate-app/clients/publisher.ts | 48 + .../restate-app/clients/restaurant_client.ts | 47 + .../app/src/restate-app/services/delivery.ts | 93 + .../app/src/restate-app/services/driver.ts | 111 + .../src/restate-app/services/driver_pool.ts | 52 + .../app/src/restate-app/services/driversim.ts | 128 + .../src/restate-app/services/order_service.ts | 67 + .../services/order_status_service.ts | 52 + .../app/src/restate-app/types/types.ts | 55 + .../app/src/restate-app/utils/geo.ts | 31 + .../app/src/restate-app/utils/utils.ts | 15 + .../app/src/restaurant/server.ts | 86 + .../{pos_server => app}/tsconfig.json | 33 +- typescript/food-ordering/demo_overview.png | Bin 0 -> 60428 bytes typescript/food-ordering/docker-compose.yml | 119 +- typescript/food-ordering/img/arch.png | Bin 26193 -> 0 bytes .../food-ordering/pos_server/.dockerignore | 3 - .../food-ordering/pos_server/package.json | 27 - .../food-ordering/pos_server/src/server.ts | 67 - typescript/food-ordering/restate-docker.yaml | 10 + .../food-ordering/services/.eslintignore | 3 - .../food-ordering/services/.eslintrc.json | 24 - .../food-ordering/services/package-lock.json | 4652 --- .../food-ordering/services/package.json | 35 - typescript/food-ordering/services/src/app.ts | 16 - .../auxiliary/delivery_provider_api_client.ts | 16 - .../services/src/order_service.ts | 128 - .../food-ordering/services/src/types/types.ts | 30 - .../food-ordering/services/tsconfig.json | 109 - .../food-ordering/webui/.commitlintrc.js | 1 + typescript/food-ordering/webui/.dockerignore | 5 + typescript/food-ordering/webui/.editorconfig | 9 + typescript/food-ordering/webui/.gitignore | 28 + typescript/food-ordering/webui/.nvmrc | 1 + typescript/food-ordering/webui/.prettierrc | 4 + typescript/food-ordering/webui/Dockerfile | 20 + typescript/food-ordering/webui/README.md | 45 + .../webui/babel-plugin-macros.config.js | 11 + .../food-ordering/webui/package-lock.json | 28379 ++++++++++++++++ typescript/food-ordering/webui/package.json | 50 + .../food-ordering/webui/public/favicon.ico | Bin 0 -> 1150 bytes .../food-ordering/webui/public/index.html | 35 + .../food-ordering/webui/public/manifest.json | 15 + .../food-ordering/webui/public/normalize.css | 423 + .../food-ordering/webui/public/products.json | 58 + .../food-ordering/webui/public/robots.txt | 3 + .../food-ordering/webui/readme-banner.png | Bin 0 -> 345174 bytes .../webui/src/commons/Checkbox/Checkbox.tsx | 34 + .../webui/src/commons/Checkbox/index.ts | 1 + .../webui/src/commons/style/global-style.tsx | 14 + .../webui/src/commons/style/index.d.ts | 16 + .../src/commons/style/styled-components.ts | 15 + .../webui/src/commons/style/theme.ts | 22 + .../webui/src/components/App/App.tsx | 73 + .../webui/src/components/App/index.ts | 1 + .../webui/src/components/App/style.ts | 36 + .../webui/src/components/Cart/Cart.tsx | 250 + .../CartProducts/CartProduct/CartProduct.tsx | 63 + .../Cart/CartProducts/CartProduct/index.ts | 1 + .../Cart/CartProducts/CartProduct/style.ts | 96 + .../Cart/CartProducts/CartProducts.tsx | 25 + .../src/components/Cart/CartProducts/index.ts | 1 + .../src/components/Cart/CartProducts/style.ts | 13 + .../webui/src/components/Cart/index.ts | 1 + .../webui/src/components/Cart/style.ts | 193 + .../src/components/Dropdown/Dropdown.tsx | 35 + .../webui/src/components/Dropdown/index.ts | 1 + .../webui/src/components/Dropdown/style.ts | 50 + .../webui/src/components/Filter/Filter.tsx | 38 + .../webui/src/components/Filter/index.ts | 1 + .../webui/src/components/Filter/style.ts | 81 + .../webui/src/components/Loader/Loader.tsx | 12 + .../webui/src/components/Loader/index.ts | 1 + .../webui/src/components/Loader/style.ts | 46 + .../components/OrderStatus/OrderStatus.tsx | 226 + .../src/components/OrderStatus/index.tsx | 1 + .../webui/src/components/OrderStatus/style.ts | 72 + .../components/Products/Product/Product.tsx | 100 + .../src/components/Products/Product/index.tsx | 1 + .../src/components/Products/Product/style.ts | 125 + .../src/components/Products/Products.tsx | 30 + .../webui/src/components/Products/index.tsx | 1 + .../webui/src/components/Products/style.ts | 16 + .../cart-context/CartContextProvider.tsx | 63 + .../webui/src/contexts/cart-context/index.ts | 2 + .../src/contexts/cart-context/useCart.ts | 39 + .../contexts/cart-context/useCartDetails.ts | 17 + .../contexts/cart-context/useCartProducts.ts | 100 + .../src/contexts/cart-context/useCartTotal.ts | 47 + .../ProductsContextProvider.tsx | 44 + .../src/contexts/products-context/index.ts | 2 + .../contexts/products-context/useProducts.tsx | 56 + .../status-context/OrderStatusProvider.tsx | 41 + .../src/contexts/status-context/index.ts | 2 + .../status-context/useOrderStatus.tsx | 31 + .../user-context/UserContextProvider.tsx | 37 + .../webui/src/contexts/user-context/index.ts | 2 + .../src/contexts/user-context/useUser.tsx | 68 + typescript/food-ordering/webui/src/index.tsx | 35 + .../food-ordering/webui/src/models/index.ts | 49 + .../webui/src/react-app-env.d.ts | 1 + .../webui/src/services/products.ts | 7 + .../webui/src/services/sendToRestate.ts | 44 + .../webui/src/services/whoami.ts | 32 + .../webui/src/static/cart-icon.png | Bin 0 -> 628 bytes .../webui/src/static/delete-icon.png | Bin 0 -> 1209 bytes .../webui/src/static/json/products.json | 58 + .../src/static/products/1000-1-product.webp | Bin 0 -> 23710 bytes .../src/static/products/1001-1-product.webp | Bin 0 -> 19224 bytes .../src/static/products/1002-1-product.webp | Bin 0 -> 15206 bytes .../src/static/products/1003-1-product.webp | Bin 0 -> 8946 bytes .../webui/src/utils/formatPrice.ts | 10 + typescript/food-ordering/webui/tsconfig.json | 21 + 122 files changed, 33838 insertions(+), 5509 deletions(-) delete mode 100644 typescript/food-ordering/.gitignore rename typescript/food-ordering/{services => app}/.dockerignore (67%) rename typescript/food-ordering/{services => app}/Dockerfile (75%) rename typescript/food-ordering/{pos_server/Dockerfile => app/Dockerfile-restaurant} (78%) rename typescript/food-ordering/{pos_server => app}/package-lock.json (63%) create mode 100644 typescript/food-ordering/app/package.json create mode 100644 typescript/food-ordering/app/src/restate-app/app.ts create mode 100644 typescript/food-ordering/app/src/restate-app/clients/payment_client.ts create mode 100644 typescript/food-ordering/app/src/restate-app/clients/publisher.ts create mode 100644 typescript/food-ordering/app/src/restate-app/clients/restaurant_client.ts create mode 100644 typescript/food-ordering/app/src/restate-app/services/delivery.ts create mode 100644 typescript/food-ordering/app/src/restate-app/services/driver.ts create mode 100644 typescript/food-ordering/app/src/restate-app/services/driver_pool.ts create mode 100644 typescript/food-ordering/app/src/restate-app/services/driversim.ts create mode 100644 typescript/food-ordering/app/src/restate-app/services/order_service.ts create mode 100644 typescript/food-ordering/app/src/restate-app/services/order_status_service.ts create mode 100644 typescript/food-ordering/app/src/restate-app/types/types.ts create mode 100644 typescript/food-ordering/app/src/restate-app/utils/geo.ts create mode 100644 typescript/food-ordering/app/src/restate-app/utils/utils.ts create mode 100644 typescript/food-ordering/app/src/restaurant/server.ts rename typescript/food-ordering/{pos_server => app}/tsconfig.json (85%) create mode 100644 typescript/food-ordering/demo_overview.png delete mode 100644 typescript/food-ordering/img/arch.png delete mode 100644 typescript/food-ordering/pos_server/.dockerignore delete mode 100644 typescript/food-ordering/pos_server/package.json delete mode 100644 typescript/food-ordering/pos_server/src/server.ts create mode 100644 typescript/food-ordering/restate-docker.yaml delete mode 100644 typescript/food-ordering/services/.eslintignore delete mode 100644 typescript/food-ordering/services/.eslintrc.json delete mode 100644 typescript/food-ordering/services/package-lock.json delete mode 100644 typescript/food-ordering/services/package.json delete mode 100644 typescript/food-ordering/services/src/app.ts delete mode 100644 typescript/food-ordering/services/src/auxiliary/delivery_provider_api_client.ts delete mode 100644 typescript/food-ordering/services/src/order_service.ts delete mode 100644 typescript/food-ordering/services/src/types/types.ts delete mode 100644 typescript/food-ordering/services/tsconfig.json create mode 100644 typescript/food-ordering/webui/.commitlintrc.js create mode 100644 typescript/food-ordering/webui/.dockerignore create mode 100644 typescript/food-ordering/webui/.editorconfig create mode 100644 typescript/food-ordering/webui/.gitignore create mode 100644 typescript/food-ordering/webui/.nvmrc create mode 100644 typescript/food-ordering/webui/.prettierrc create mode 100644 typescript/food-ordering/webui/Dockerfile create mode 100644 typescript/food-ordering/webui/README.md create mode 100644 typescript/food-ordering/webui/babel-plugin-macros.config.js create mode 100644 typescript/food-ordering/webui/package-lock.json create mode 100644 typescript/food-ordering/webui/package.json create mode 100644 typescript/food-ordering/webui/public/favicon.ico create mode 100644 typescript/food-ordering/webui/public/index.html create mode 100644 typescript/food-ordering/webui/public/manifest.json create mode 100644 typescript/food-ordering/webui/public/normalize.css create mode 100644 typescript/food-ordering/webui/public/products.json create mode 100644 typescript/food-ordering/webui/public/robots.txt create mode 100644 typescript/food-ordering/webui/readme-banner.png create mode 100644 typescript/food-ordering/webui/src/commons/Checkbox/Checkbox.tsx create mode 100644 typescript/food-ordering/webui/src/commons/Checkbox/index.ts create mode 100644 typescript/food-ordering/webui/src/commons/style/global-style.tsx create mode 100644 typescript/food-ordering/webui/src/commons/style/index.d.ts create mode 100644 typescript/food-ordering/webui/src/commons/style/styled-components.ts create mode 100644 typescript/food-ordering/webui/src/commons/style/theme.ts create mode 100644 typescript/food-ordering/webui/src/components/App/App.tsx create mode 100644 typescript/food-ordering/webui/src/components/App/index.ts create mode 100644 typescript/food-ordering/webui/src/components/App/style.ts create mode 100644 typescript/food-ordering/webui/src/components/Cart/Cart.tsx create mode 100644 typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProduct/CartProduct.tsx create mode 100644 typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProduct/index.ts create mode 100644 typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProduct/style.ts create mode 100644 typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProducts.tsx create mode 100644 typescript/food-ordering/webui/src/components/Cart/CartProducts/index.ts create mode 100644 typescript/food-ordering/webui/src/components/Cart/CartProducts/style.ts create mode 100644 typescript/food-ordering/webui/src/components/Cart/index.ts create mode 100644 typescript/food-ordering/webui/src/components/Cart/style.ts create mode 100644 typescript/food-ordering/webui/src/components/Dropdown/Dropdown.tsx create mode 100644 typescript/food-ordering/webui/src/components/Dropdown/index.ts create mode 100644 typescript/food-ordering/webui/src/components/Dropdown/style.ts create mode 100644 typescript/food-ordering/webui/src/components/Filter/Filter.tsx create mode 100644 typescript/food-ordering/webui/src/components/Filter/index.ts create mode 100644 typescript/food-ordering/webui/src/components/Filter/style.ts create mode 100644 typescript/food-ordering/webui/src/components/Loader/Loader.tsx create mode 100644 typescript/food-ordering/webui/src/components/Loader/index.ts create mode 100644 typescript/food-ordering/webui/src/components/Loader/style.ts create mode 100644 typescript/food-ordering/webui/src/components/OrderStatus/OrderStatus.tsx create mode 100644 typescript/food-ordering/webui/src/components/OrderStatus/index.tsx create mode 100644 typescript/food-ordering/webui/src/components/OrderStatus/style.ts create mode 100644 typescript/food-ordering/webui/src/components/Products/Product/Product.tsx create mode 100644 typescript/food-ordering/webui/src/components/Products/Product/index.tsx create mode 100644 typescript/food-ordering/webui/src/components/Products/Product/style.ts create mode 100644 typescript/food-ordering/webui/src/components/Products/Products.tsx create mode 100644 typescript/food-ordering/webui/src/components/Products/index.tsx create mode 100644 typescript/food-ordering/webui/src/components/Products/style.ts create mode 100644 typescript/food-ordering/webui/src/contexts/cart-context/CartContextProvider.tsx create mode 100644 typescript/food-ordering/webui/src/contexts/cart-context/index.ts create mode 100644 typescript/food-ordering/webui/src/contexts/cart-context/useCart.ts create mode 100644 typescript/food-ordering/webui/src/contexts/cart-context/useCartDetails.ts create mode 100644 typescript/food-ordering/webui/src/contexts/cart-context/useCartProducts.ts create mode 100644 typescript/food-ordering/webui/src/contexts/cart-context/useCartTotal.ts create mode 100644 typescript/food-ordering/webui/src/contexts/products-context/ProductsContextProvider.tsx create mode 100644 typescript/food-ordering/webui/src/contexts/products-context/index.ts create mode 100644 typescript/food-ordering/webui/src/contexts/products-context/useProducts.tsx create mode 100644 typescript/food-ordering/webui/src/contexts/status-context/OrderStatusProvider.tsx create mode 100644 typescript/food-ordering/webui/src/contexts/status-context/index.ts create mode 100644 typescript/food-ordering/webui/src/contexts/status-context/useOrderStatus.tsx create mode 100644 typescript/food-ordering/webui/src/contexts/user-context/UserContextProvider.tsx create mode 100644 typescript/food-ordering/webui/src/contexts/user-context/index.ts create mode 100644 typescript/food-ordering/webui/src/contexts/user-context/useUser.tsx create mode 100644 typescript/food-ordering/webui/src/index.tsx create mode 100644 typescript/food-ordering/webui/src/models/index.ts create mode 100644 typescript/food-ordering/webui/src/react-app-env.d.ts create mode 100644 typescript/food-ordering/webui/src/services/products.ts create mode 100644 typescript/food-ordering/webui/src/services/sendToRestate.ts create mode 100644 typescript/food-ordering/webui/src/services/whoami.ts create mode 100644 typescript/food-ordering/webui/src/static/cart-icon.png create mode 100644 typescript/food-ordering/webui/src/static/delete-icon.png create mode 100644 typescript/food-ordering/webui/src/static/json/products.json create mode 100644 typescript/food-ordering/webui/src/static/products/1000-1-product.webp create mode 100644 typescript/food-ordering/webui/src/static/products/1001-1-product.webp create mode 100644 typescript/food-ordering/webui/src/static/products/1002-1-product.webp create mode 100644 typescript/food-ordering/webui/src/static/products/1003-1-product.webp create mode 100644 typescript/food-ordering/webui/src/utils/formatPrice.ts create mode 100644 typescript/food-ordering/webui/tsconfig.json diff --git a/typescript/food-ordering/.gitignore b/typescript/food-ordering/.gitignore deleted file mode 100644 index 922f2cf5..00000000 --- a/typescript/food-ordering/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -.idea/* -dist -node_modules -services/proto/buf.lock -services/src/generated diff --git a/typescript/food-ordering/README.md b/typescript/food-ordering/README.md index 045ca9de..6c06fd8e 100644 --- a/typescript/food-ordering/README.md +++ b/typescript/food-ordering/README.md @@ -1,151 +1,56 @@ -# Food ordering example: How to integrate with external services by using Awakeables and side effects +# Serverless food ordering app with Restate -This example demonstrates how you can integrate [Restate](https://restate.dev) with external services by using Awakeables and side effects. +The code in this repo was used for: +- Current 2023 presentation -The example application implements an order processing middleware which sits between food delivery providers and restaurants. -Delivery providers interact with the application by calling the Restate `OrderService`. -The `OrderService` interacts with the restaurants' external point of sale service to dispatch the orders. +The app logic (order workflow) discussed in the presentation can be found under: `app/src/restate-app/services/order_service.ts`. -![Example diagrams.png](./img/arch.png) +The demo scenario looks as follows: -The example illustrates the following aspects: +![demo_overview.png](demo_overview.png) -- How you can use Restate's side effects to make synchronous calls to external services. -- How you can use Awakeables to connect Restate handlers with asynchronous external services. -- How to resolve Awakeables from an external service and thereby resuming Restate invocations. -- How delayed calls can be used to schedule tasks for later moments in time. - -## Download the example - -```shell -wget https://github.com/restatedev/examples/releases/latest/download/typescript-food-ordering.zip && unzip typescript-food-ordering.zip -d typescript-food-ordering && rm typescript-food-ordering.zip -``` - -## Detailed description - -This application implements the order processing middleware that sits between food delivery providers and restaurants. -Delivery providers forward orders to the Restate application via API requests (CreateOrder / CancelOrder / PrepareOrder). -The Restate services process the order and forward it to the appropriate point-of-sale (restaurant handling the order). - -The app is implemented as a single keyed service that is keyed by `orderId`` and maintains the state machine of that order (i.e. the status of the order) as state in Restate. - -When an order is created a workflow is executed to check if the restaurant is open. -If this is the case then the order is accepted and gets created in the point of sales system of the restaurant. -The workflow becomes just another gRPC method that can be called and retried. -It calls the point of sales software of the restaurants as side effects and saves the state of the workflow in Restate. - -### Delayed calls - -Customers can schedule an order for later on (deliveryDelay). -This is implemented via Restate's delayed calls that schedule the preparation of the order to take place at the desired time. -This delayed call is persisted in Restate. -Restate ensures that it happens, and takes care of retries to prevent lost orders and unhappy customers. - -Have a look at the implementation of the `createOrder` function in the OrderService in `services/src/order_service.ts`. - -### Awakeables - -When the order needs to be prepared, the `OrderService` creates an awakeable (persistent promise) and sends the awakeable ID together with the preparation request to the point of sales API of the restaurant. -The preparation is an asynchronous operation during which the workflow is paused. -Once the restaurant has finished the preparation, it resolves the awakeable to resume the `OrderService`. -The `OrderService` then notifies the delivery provider that they should send a driver to the restaurant. - -Have a look at the implementation of the `prepareOrder` function in the ` OrderService`` in `services/src/order_service.ts`. - -## Running this example - -- Latest stable version of [NodeJS](https://nodejs.org/en/) >= v18.17.1 and [npm CLI](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) >= 9.6.7 installed. -- [Docker Engine](https://docs.docker.com/engine/install/) to launch the Restate runtime (not needed for the app implementation itself). -- Optional: Docker Compose - -## Deployment with Docker Compose - -Build the services: - -```shell -docker build ./services/ -t dev.local/food-ordering/services:0.0.1 && \ -docker build ./pos_server/ -t dev.local/food-ordering/pos_server:0.0.1 -``` +## Running locally with Docker compose Launch the Docker compose setup: - ```shell docker compose up ``` -### Send requests to the service +WebUI is running at http://localhost:3000 -Create a new order for five cheeseburgers at `FastFood123` with immediate delivery - -You can do this via curl: +Jaeger is running at http://localhost:16686 +Clean up after bringing setup down: ```shell -curl -X POST http://localhost:8080/OrderService/createOrder -H 'content-type: application/json' -d '{ - "key": "134", - "request": {"restaurantId": "FastFood123", "deliveryDelay": 0, "items": [{"productName": "cheeseburger", "quantity": 5}]} -}' +docker compose rm ``` -Create a new order for five cheeseburgers at `FastFood123` with delivery delayed for 10 seconds: +## Exploring the demo +Restate has a psql interface to query the state of the system. + +If you buy some products via the webUI, you can see how the order workflow is executed by querying the state of the order status service: ```shell -curl -X POST http://localhost:8080/OrderService/createOrder -H 'content-type: application/json' -d '{ - "key": "174", - "request": {"restaurantId": "FastFood123", "deliveryDelay": 10000, "items": [{"productName": "cheeseburger", "quantity": 5}]} -}' +watch -n 1 'psql -h localhost -p 9071 -c "select service, service_key_utf8, key, value_utf8 from state s where s.service='"'"'orderStatus'"'"';"' ``` -You can also check the status of the delivery via: - +Or have a look at the state of all the services, except for the driver simulator: ```shell -curl -X POST http://localhost:8080/OrderService/getOrderStatus -H 'content-type: application/json' -d '{ "key": "174" }' +watch -n 1 'psql -h localhost -p 9071 -c "select service, service_key_utf8, key, value_utf8 from state s where s.service not in ('"'"'driverSimulator'"'"');"' ``` -To understand the requests that are done, you can have a look at the logs of the runtime, service and PoS server. -For the delayed order request, you will see the late order being scheduled for preparation after 10 seconds. - -## Running locally - -### Run the services - -Install the dependencies and build the application: - +Or you can check the state of the ongoing invocations via: ```shell -cd services -npm install && npm run build +watch -n 1 'psql -h localhost -p 9071 -c "select service, method, service_key_utf8, id, status, invoked_by_service, invoked_by_id from sys_status;"' ``` -Run the application with: - -```shell -npm run app -``` - -### Run the point of sales server - -In another terminal session, run the point of sales server. - -Install the dependencies and build the application: - -```shell -cd pos_server -npm install && npm run build -``` - -Run the application with: - -```shell -npm run app -``` - -### Start the Restate runtime - -Now [launch the runtime](../../README.md#launching-the-runtime) and [discover the services](../../README.md#connect-runtime-and-services). +## Attribution -Now you can send requests to the application as described [here](README.md#send-requests-to-the-service). +The implementation of the web app is based on the MIT Licensed repository here: https://github.com/jeffersonRibeiro/react-shopping-cart. -## Releasing +## Releasing (for Restate developers) ### Upgrading Typescript SDK Upgrade the `@restatedev/restate-sdk` version as described [here](../../README.md#upgrading-the-sdk-dependency-for-restate-developers). +Then run the example via Docker compose. \ No newline at end of file diff --git a/typescript/food-ordering/services/.dockerignore b/typescript/food-ordering/app/.dockerignore similarity index 67% rename from typescript/food-ordering/services/.dockerignore rename to typescript/food-ordering/app/.dockerignore index b567a38d..f636532b 100644 --- a/typescript/food-ordering/services/.dockerignore +++ b/typescript/food-ordering/app/.dockerignore @@ -1,4 +1,4 @@ +.dockerignore node_modules dist -src/generated Dockerfile diff --git a/typescript/food-ordering/services/Dockerfile b/typescript/food-ordering/app/Dockerfile similarity index 75% rename from typescript/food-ordering/services/Dockerfile rename to typescript/food-ordering/app/Dockerfile index abdc7840..f783d5b4 100644 --- a/typescript/food-ordering/services/Dockerfile +++ b/typescript/food-ordering/app/Dockerfile @@ -13,10 +13,9 @@ COPY --chown=node:node .. . RUN npm run build -RUN npm prune --omit=dev +RUN npm prune --production ENV NODE_ENV production -EXPOSE 8080 -ENV PORT 8080 +EXPOSE 9080 USER node -CMD ["dumb-init", "node", "./dist/app.js"] +ENTRYPOINT ["dumb-init", "node", "./dist/restate-app/app.js"] diff --git a/typescript/food-ordering/pos_server/Dockerfile b/typescript/food-ordering/app/Dockerfile-restaurant similarity index 78% rename from typescript/food-ordering/pos_server/Dockerfile rename to typescript/food-ordering/app/Dockerfile-restaurant index 680021cd..66e63953 100644 --- a/typescript/food-ordering/pos_server/Dockerfile +++ b/typescript/food-ordering/app/Dockerfile-restaurant @@ -13,9 +13,9 @@ COPY --chown=node:node .. . RUN npm run build -RUN npm prune --omit=dev +RUN npm prune --production ENV NODE_ENV production EXPOSE 5050 USER node -CMD ["dumb-init", "node", "./dist/server.js"] +ENTRYPOINT ["dumb-init", "node", "./dist/restaurant/server.js"] diff --git a/typescript/food-ordering/pos_server/package-lock.json b/typescript/food-ordering/app/package-lock.json similarity index 63% rename from typescript/food-ordering/pos_server/package-lock.json rename to typescript/food-ordering/app/package-lock.json index 4adb4a90..d8a41a9b 100644 --- a/typescript/food-ordering/pos_server/package-lock.json +++ b/typescript/food-ordering/app/package-lock.json @@ -1,28 +1,449 @@ { - "name": "example-food-ordering", + "name": "restate-ts-template", "version": "0.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "example-food-ordering", + "name": "restate-ts-template", "version": "0.0.1", - "license": "MIT", "dependencies": { + "@restatedev/restate-sdk": "^0.6.0", "axios": "^1.4.0", - "express": "^4.17.3" + "express": "^4.17.3", + "kafkajs": "^2.2.4", + "uuid": "^9.0.0" }, "devDependencies": { "@types/express": "^4.17.3", + "esbuild": "^0.18.12", "prettier": "^2.8.4", "ts-node-dev": "^1.1.1", "typescript": "^5.0.2" } }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@restatedev/restate-sdk": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@restatedev/restate-sdk/-/restate-sdk-0.6.0.tgz", + "integrity": "sha512-jh9WjGjTaGiod0rGdlEJgHkHemjz1N1i3cgXF4qhXWhUOk9iINAePxAX4FMCZVtgJm46hktfq3IdFBXl2uZLdw==", + "dependencies": { + "protobufjs": "^7.2.2", + "ts-proto": "^1.140.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, "dependencies": { "@types/connect": "*", @@ -30,18 +451,18 @@ } }, "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, "dependencies": { "@types/body-parser": "*", @@ -51,9 +472,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", "dev": true, "dependencies": { "@types/node": "*", @@ -63,39 +484,41 @@ } }, "node_modules/@types/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", "dev": true }, "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, "node_modules/@types/node": { - "version": "20.4.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz", - "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==", - "dev": true + "version": "20.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", + "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", "dev": true }, "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, "node_modules/@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, "dependencies": { "@types/mime": "^1", @@ -103,9 +526,9 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", - "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", "dev": true, "dependencies": { "@types/http-errors": "*", @@ -167,9 +590,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -191,6 +614,29 @@ "node": ">=8" } }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -228,17 +674,29 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/case-anything": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz", + "integrity": "sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -329,6 +787,19 @@ "ms": "2.0.0" } }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -354,6 +825,17 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -363,6 +845,14 @@ "node": ">=0.3.1" } }, + "node_modules/dprint-node": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.8.tgz", + "integrity": "sha512-iVKnUtYfGrYcW1ZAlfR/F59cUVL8QIhWoBJoSjkkdua/dkWIgjZfiLMeTjiB06X0ZLkQ0M2C1VbUj/CxkIf1zg==", + "dependencies": { + "detect-libc": "^1.0.3" + } + }, "node_modules/dynamic-dedupe": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz", @@ -385,6 +875,43 @@ "node": ">= 0.8" } }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -439,43 +966,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -506,9 +996,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "funding": [ { "type": "individual", @@ -560,9 +1050,9 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -574,19 +1064,22 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -624,15 +1117,26 @@ "node": ">= 6" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dependencies": { - "function-bind": "^1.1.1" + "get-intrinsic": "^1.1.3" }, - "engines": { - "node": ">= 0.4.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { @@ -657,6 +1161,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -719,12 +1234,12 @@ } }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -760,6 +1275,19 @@ "node": ">=0.12.0" } }, + "node_modules/kafkajs": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/kafkajs/-/kafkajs-2.2.4.tgz", + "integrity": "sha512-j/YeapB1vfPT2iOIUn/vxdyKEuhuY2PxMBvf5JWux6iSaukAccrMtXEY/Lb7OvavDhOWME589bpLrEdnVHjfjA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -873,9 +1401,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -955,6 +1483,29 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/protobufjs": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz", + "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==", + "hasInstallScript": true, + "dependencies": { + "@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/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -994,6 +1545,20 @@ "node": ">= 0.6" } }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -1007,12 +1572,12 @@ } }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -1101,6 +1666,20 @@ "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -1265,6 +1844,37 @@ } } }, + "node_modules/ts-poet": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.6.0.tgz", + "integrity": "sha512-4vEH/wkhcjRPFOdBwIh9ItO6jOoumVLRF4aABDX5JSNEubSqwOulihxQPqai+OkuygJm3WYMInxXQX4QwVNMuw==", + "dependencies": { + "dprint-node": "^1.0.7" + } + }, + "node_modules/ts-proto": { + "version": "1.165.1", + "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.165.1.tgz", + "integrity": "sha512-tn/sj9i31Q4d3/HtN2PFMU/OQwrBYP2cfhYo75cPpO2ks7unFxf1/oMdIt/2woCcOwRclxruGCrs7Ljdl9BPkw==", + "dependencies": { + "case-anything": "^2.1.13", + "protobufjs": "^7.2.4", + "ts-poet": "^6.5.0", + "ts-proto-descriptors": "1.15.0" + }, + "bin": { + "protoc-gen-ts_proto": "protoc-gen-ts_proto" + } + }, + "node_modules/ts-proto-descriptors": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.15.0.tgz", + "integrity": "sha512-TYyJ7+H+7Jsqawdv+mfsEpZPTIj9siDHS6EMCzG/z3b/PZiphsX+mWtqFfFVe5/N0Th6V3elK9lQqjnrgTOfrg==", + "dependencies": { + "long": "^5.2.3", + "protobufjs": "^7.2.4" + } + }, "node_modules/tsconfig": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", @@ -1290,9 +1900,9 @@ } }, "node_modules/typescript": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -1302,6 +1912,11 @@ "node": ">=14.17" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -1318,6 +1933,18 @@ "node": ">= 0.4.0" } }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -1352,10 +1979,227 @@ } }, "dependencies": { + "@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "dev": true, + "optional": true + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "@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": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "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": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "@restatedev/restate-sdk": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@restatedev/restate-sdk/-/restate-sdk-0.6.0.tgz", + "integrity": "sha512-jh9WjGjTaGiod0rGdlEJgHkHemjz1N1i3cgXF4qhXWhUOk9iINAePxAX4FMCZVtgJm46hktfq3IdFBXl2uZLdw==", + "requires": { + "protobufjs": "^7.2.2", + "ts-proto": "^1.140.0" + } + }, "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, "requires": { "@types/connect": "*", @@ -1363,18 +2207,18 @@ } }, "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, "requires": { "@types/node": "*" } }, "@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, "requires": { "@types/body-parser": "*", @@ -1384,9 +2228,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", "dev": true, "requires": { "@types/node": "*", @@ -1396,39 +2240,41 @@ } }, "@types/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", "dev": true }, "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, "@types/node": { - "version": "20.4.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz", - "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==", - "dev": true + "version": "20.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", + "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", + "requires": { + "undici-types": "~5.26.4" + } }, "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", "dev": true }, "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, "@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, "requires": { "@types/mime": "^1", @@ -1436,9 +2282,9 @@ } }, "@types/serve-static": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", - "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", "dev": true, "requires": { "@types/http-errors": "*", @@ -1494,9 +2340,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", "requires": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -1515,6 +2361,25 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1546,14 +2411,20 @@ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" } }, + "case-anything": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz", + "integrity": "sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==" + }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -1621,6 +2492,16 @@ "ms": "2.0.0" } }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1636,12 +2517,25 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==" + }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, + "dprint-node": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.8.tgz", + "integrity": "sha512-iVKnUtYfGrYcW1ZAlfR/F59cUVL8QIhWoBJoSjkkdua/dkWIgjZfiLMeTjiB06X0ZLkQ0M2C1VbUj/CxkIf1zg==", + "requires": { + "detect-libc": "^1.0.3" + } + }, "dynamic-dedupe": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz", @@ -1661,6 +2555,36 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, + "esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -1707,38 +2631,6 @@ "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" - }, - "dependencies": { - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - } - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - } } }, "fill-range": { @@ -1765,9 +2657,9 @@ } }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" }, "form-data": { "version": "4.0.0", @@ -1796,26 +2688,26 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "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==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" } }, "glob": { @@ -1841,12 +2733,20 @@ "is-glob": "^4.0.1" } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "requires": { - "function-bind": "^1.1.1" + "get-intrinsic": "^1.2.2" } }, "has-proto": { @@ -1859,6 +2759,14 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } + }, "http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -1909,12 +2817,12 @@ } }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.0" } }, "is-extglob": { @@ -1938,6 +2846,16 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "kafkajs": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/kafkajs/-/kafkajs-2.2.4.tgz", + "integrity": "sha512-j/YeapB1vfPT2iOIUn/vxdyKEuhuY2PxMBvf5JWux6iSaukAccrMtXEY/Lb7OvavDhOWME589bpLrEdnVHjfjA==" + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -2015,9 +2933,9 @@ "dev": true }, "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" }, "on-finished": { "version": "2.4.1", @@ -2070,6 +2988,25 @@ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true }, + "protobufjs": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz", + "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==", + "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/node": ">=13.7.0", + "long": "^5.0.0" + } + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -2097,6 +3034,17 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -2107,12 +3055,12 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -2174,6 +3122,17 @@ "send": "0.18.0" } }, + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -2280,6 +3239,34 @@ "tsconfig": "^7.0.0" } }, + "ts-poet": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.6.0.tgz", + "integrity": "sha512-4vEH/wkhcjRPFOdBwIh9ItO6jOoumVLRF4aABDX5JSNEubSqwOulihxQPqai+OkuygJm3WYMInxXQX4QwVNMuw==", + "requires": { + "dprint-node": "^1.0.7" + } + }, + "ts-proto": { + "version": "1.165.1", + "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.165.1.tgz", + "integrity": "sha512-tn/sj9i31Q4d3/HtN2PFMU/OQwrBYP2cfhYo75cPpO2ks7unFxf1/oMdIt/2woCcOwRclxruGCrs7Ljdl9BPkw==", + "requires": { + "case-anything": "^2.1.13", + "protobufjs": "^7.2.4", + "ts-poet": "^6.5.0", + "ts-proto-descriptors": "1.15.0" + } + }, + "ts-proto-descriptors": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.15.0.tgz", + "integrity": "sha512-TYyJ7+H+7Jsqawdv+mfsEpZPTIj9siDHS6EMCzG/z3b/PZiphsX+mWtqFfFVe5/N0Th6V3elK9lQqjnrgTOfrg==", + "requires": { + "long": "^5.2.3", + "protobufjs": "^7.2.4" + } + }, "tsconfig": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", @@ -2302,11 +3289,16 @@ } }, "typescript": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -2317,6 +3309,11 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/typescript/food-ordering/app/package.json b/typescript/food-ordering/app/package.json new file mode 100644 index 00000000..79ee7385 --- /dev/null +++ b/typescript/food-ordering/app/package.json @@ -0,0 +1,32 @@ +{ + "name": "restate-ts-template", + "version": "0.0.1", + "description": "Template for JavaScript/TypeScript services running with Restate (https://github.com/restatedev/) ", + "main": "app.js", + "type": "commonjs", + "scripts": { + "build": "tsc --noEmitOnError", + "prebundle": "rm -rf dist", + "bundle": "esbuild src/restate-app/app.ts --bundle --minify --sourcemap --platform=node --target=es2020 --outfile=dist/index.js", + "postbundle": "cd dist && zip -r index.zip index.js*", + "app": "node ./dist/app/app.js", + "app": "node ./dist/restaurant/server.js", + "app-dev": "ts-node-dev --watch src --respawn --transpile-only src/restate-app/app.ts" + }, + "dependencies": { + "@types/node": "^20.6.3", + "@types/uuid": "^9.0.0", + "@restatedev/restate-sdk": "^0.6.0", + "kafkajs": "^2.2.4", + "axios": "^1.4.0", + "express": "^4.17.3", + "uuid": "^9.0.0" + }, + "devDependencies": { + "ts-node-dev": "^1.1.1", + "@types/express": "^4.17.3", + "typescript": "^5.0.2", + "prettier": "^2.8.4", + "esbuild": "^0.18.12" + } +} diff --git a/typescript/food-ordering/app/src/restate-app/app.ts b/typescript/food-ordering/app/src/restate-app/app.ts new file mode 100644 index 00000000..8893e79c --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/app.ts @@ -0,0 +1,19 @@ +import * as restate from "@restatedev/restate-sdk"; +import * as driver from "./services/driver"; +import * as driver_pool from "./services/driver_pool"; +import * as delivery from "./services/delivery"; +import * as orders from "./services/order_service"; +import * as orderstatus from "./services/order_status_service"; +import * as driversim from "./services/driversim"; + +if (require.main === module) { + restate + .createServer() + .bindKeyedRouter(orders.service.path, orders.router) + .bindKeyedRouter(orderstatus.service.path, orderstatus.router) + .bindKeyedRouter(driver.service.path, driver.router) + .bindKeyedRouter(driver_pool.service.path, driver_pool.router) + .bindKeyedRouter(delivery.service.path, delivery.router) + .bindKeyedRouter(driversim.service.path, driversim.router) + .listen(9080); +} diff --git a/typescript/food-ordering/app/src/restate-app/clients/payment_client.ts b/typescript/food-ordering/app/src/restate-app/clients/payment_client.ts new file mode 100644 index 00000000..a6773c11 --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/clients/payment_client.ts @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 - Restate Software, Inc., Restate GmbH + * + * This file is part of the Restate Examples for the Node.js/TypeScript SDK, + * which is released under the MIT license. + * + * You can find a copy of the license in the file LICENSE + * in the root directory of this repository or package or at + * https://github.com/restatedev/examples/blob/main/LICENSE + */ + +class PaymentClient { + async reserve(id: string, token: string, amount: number): Promise { + console.info( + `[${id}] Reserving payment with token ${token} for $${amount}` + ); + // do the call + return true; + } + + async unreserve(id: string, token: string, amount: number): Promise { + console.info( + `[${id}] Unreserving payment with token ${token} for $${amount}` + ); + // do the call + return true; + } + + async charge(id: string, token: string, amount: number): Promise { + console.info( + `[${id}] Executing payment with token ${token} for $${amount}` + ); + // do the call + return true; + } +} + +export function getPaymentClient() { + return new PaymentClient(); +} diff --git a/typescript/food-ordering/app/src/restate-app/clients/publisher.ts b/typescript/food-ordering/app/src/restate-app/clients/publisher.ts new file mode 100644 index 00000000..382be7fa --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/clients/publisher.ts @@ -0,0 +1,48 @@ +import * as restate from "@restatedev/restate-sdk"; +import { service as driverservice } from "../services/driver"; +import { Location } from "../types/types"; +import { Kafka, KafkaConfig } from "kafkajs"; + +const KAFKA_BOOTSTRAP_SERVERS = process.env.KAFKA_BOOTSTRAP_SERVERS || "localhost:9092"; +const KAFKA_CONFIG: KafkaConfig = { brokers: [KAFKA_BOOTSTRAP_SERVERS] }; +const KAFKA_TOPIC = "driver-updates"; + +export const isKafkaEnabled = process.env.ENABLE_KAFKA !== "false"; + +export interface DriverUpdatesPublisher { + send(ctx: restate.RpcContext, driverId: string, location: Location): Promise; +} + +class KafkaPublisher implements DriverUpdatesPublisher { + + private readonly kafka = new Kafka(KAFKA_CONFIG); + private readonly producer = this.kafka.producer(); + private connected = false; + + public async send(_ctx: restate.RpcContext, driverId: string, location: Location) { + if (!this.connected) { + console.info("Connecting Kafka producer"); + await this.producer.connect(); + this.connected = true; + } + + this.producer.send({ + topic: KAFKA_TOPIC, + messages: [{ key: driverId, value: JSON.stringify(location) }], + }); + } +} + +class RestatePublisher implements DriverUpdatesPublisher { + public async send(ctx: restate.RpcContext, driverId: string, location: Location) { + ctx.send(driverservice).updateCoordinate(driverId, location); + } +} + +export function getPublisher(): DriverUpdatesPublisher { + if (isKafkaEnabled) { + return new KafkaPublisher(); + } else { + return new RestatePublisher(); + } +} diff --git a/typescript/food-ordering/app/src/restate-app/clients/restaurant_client.ts b/typescript/food-ordering/app/src/restate-app/clients/restaurant_client.ts new file mode 100644 index 00000000..05ac2359 --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/clients/restaurant_client.ts @@ -0,0 +1,47 @@ +import axios from "axios"; + +const RESTAURANT_ENDPOINT = + process.env.RESTAURANT_ENDPOINT || "http://localhost:5050"; +const RESTAURANT_TOKEN = process.env.RESTAURANT_TOKEN; + +export interface RestaurantClient { + create(orderId: string, cb: string): Promise; + cancel(orderId: string, cb: string): Promise; + prepare(orderId: string, cb: string): Promise; +} + +class RestaurantClientImpl implements RestaurantClient { + async create(orderId: string, cb: string) { + await this.send(orderId, cb, "create"); + } + + async cancel(orderId: string, cb: string) { + await this.send(orderId, cb, "cancel"); + } + + async prepare(orderId: string, cb: string) { + await this.send(orderId, cb, "prepare"); + } + + async send(orderId: string, cb: string, path: string) { + await axios.post( + `${RESTAURANT_ENDPOINT}/${path}`, + { + cb, + orderId, + }, + { + headers: { + "Content-Type": "application/json", + ...(RESTAURANT_TOKEN && { + Authorization: `Bearer ${RESTAURANT_TOKEN}`, + }), + }, + } + ); + } +} + +export function getRestaurantClient(): RestaurantClient { + return new RestaurantClientImpl(); +} \ No newline at end of file diff --git a/typescript/food-ordering/app/src/restate-app/services/delivery.ts b/typescript/food-ordering/app/src/restate-app/services/delivery.ts new file mode 100644 index 00000000..935863e4 --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/services/delivery.ts @@ -0,0 +1,93 @@ +import * as restate from "@restatedev/restate-sdk"; +import * as driver from "./driver"; +import * as driverpool from "./driver_pool"; +import * as geo from "../utils/geo"; +import { DEMO_REGION, Location, Order, Status } from "../types/types"; +import * as orderstatus from "./order_status_service"; +import { v4 as uuidv4 } from "uuid"; + +type OrderAndPromise = { + order: Order, + promise: string +} + +type OngoingDelivery = { + orderId: string, + orderPromise: string, + restaurantId: string, + restaurantLocation: Location, + customerLocation: Location, + orderPickedUp: boolean +} + +const DELIVERY_STATE = "state"; + +async function start(ctx: restate.RpcContext, deliveryId: string, { order, promise }: OrderAndPromise) { + + // temporary placeholder: random location + const [restaurantLocation, customerLocation] = await ctx.sideEffect(async () => [geo.randomLocation(), geo.randomLocation()]); + + const delivery: OngoingDelivery = { + orderId: order.id, + orderPromise: promise, + restaurantId: order.restaurantId, + restaurantLocation, + customerLocation, + orderPickedUp: false + } + + ctx.set(DELIVERY_STATE, delivery); + + // acquire a driver first + const driverPromise = ctx.awakeable(); + ctx.send(driverpool.service).requestDriverForOrder(DEMO_REGION, { promiseId: driverPromise.id }); + const driverId = await driverPromise.promise; + + // driver gets the work + await ctx + .rpc(driver.service) + .assignDeliveryJob(driverId, { + deliveryId, + restaurantId: order.restaurantId, + restaurantLocation: delivery.restaurantLocation, + customerLocation: delivery.customerLocation + }); + + ctx.send(orderstatus.service).setStatus(order.id, Status.WAITING_FOR_DRIVER); +} + +async function deliveryPickedUp(ctx: restate.RpcContext, _deliveryId: string) { + const delivery = (await ctx.get(DELIVERY_STATE))!; + delivery.orderPickedUp = true; + ctx.set(DELIVERY_STATE, delivery); + + ctx.send(orderstatus.service).setStatus(delivery.orderId, Status.IN_DELIVERY); +} + +async function deliveryDelivered(ctx: restate.RpcContext, _deliveryId: string) { + const delivery = (await ctx.get(DELIVERY_STATE))!; + ctx.clear(DELIVERY_STATE); + + ctx.resolveAwakeable(delivery.orderPromise, null); +} + +async function driverLocationUpdate(ctx: restate.RpcContext, _deliveryId: string, location: Location) { + const delivery = (await ctx.get(DELIVERY_STATE))!; + + const time = delivery.orderPickedUp + ? geo.calculateEtaMillis(location, delivery.customerLocation) + : geo.calculateEtaMillis(location, delivery.restaurantLocation) + + geo.calculateEtaMillis(delivery.restaurantLocation, delivery.customerLocation); + + ctx.send(orderstatus.service).setETA(delivery.orderId, time); +} + +export const router = restate.keyedRouter({ + start, + deliveryPickedUp, + deliveryDelivered, + driverLocationUpdate, +}); + +export type api = typeof router; +export const service: restate.ServiceApi = { path: "delivery" }; diff --git a/typescript/food-ordering/app/src/restate-app/services/driver.ts b/typescript/food-ordering/app/src/restate-app/services/driver.ts new file mode 100644 index 00000000..82f281b0 --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/services/driver.ts @@ -0,0 +1,111 @@ +import * as restate from "@restatedev/restate-sdk"; +import * as driverpool from "./driver_pool"; +import * as delivery from "./delivery"; +import { DeliveryRequest, Location } from "../types/types"; + +// -------------------------------------------------------- +// Digital Twin for the Driver +// -------------------------------------------------------- + +enum DriverStatus { + IDLE = "IDLE", + WAITING_FOR_WORK = "WAITING_FOR_WORK", + DELIVERING = "DELIVERING" +} + +const DRIVER_STATUS_STATE = "status"; +const CURRENT_DELIVERY_STATE = "delivery"; +const LOCATION_STATE = "location"; + +// ----------------------------------------------------------- + +async function setDriverAvailable(ctx: restate.RpcContext, driverId: string, region: string): Promise { + await expectStatus(DriverStatus.IDLE, ctx); + + ctx.set(DRIVER_STATUS_STATE, DriverStatus.WAITING_FOR_WORK); + ctx.send(driverpool.service).driverAvailable(region, driverId); +} + +async function notifyDeliveryPickUp(ctx: restate.RpcContext, driverId: string): Promise { + await expectStatus(DriverStatus.DELIVERING, ctx); + + const request = (await ctx.get(CURRENT_DELIVERY_STATE))!; + ctx.send(delivery.service).deliveryPickedUp(request.deliveryId); +} + +async function notifyDeliveryDelivered(ctx: restate.RpcContext, driverId: string): Promise { + await expectStatus(DriverStatus.DELIVERING, ctx); + + const request = (await ctx.get(CURRENT_DELIVERY_STATE))!; + ctx.clear(CURRENT_DELIVERY_STATE); + ctx.send(delivery.service).deliveryDelivered(request.deliveryId); + + ctx.set(DRIVER_STATUS_STATE, DriverStatus.IDLE); +} + +async function assignDeliveryJob(ctx: restate.RpcContext, _driverId: string, job: DeliveryRequest): Promise { + await expectStatus(DriverStatus.WAITING_FOR_WORK, ctx); + + ctx.set(DRIVER_STATUS_STATE, DriverStatus.DELIVERING); + ctx.set(CURRENT_DELIVERY_STATE, job); + + const currentLocation = await ctx.get(LOCATION_STATE); + if (currentLocation) { + ctx.send(delivery.service).driverLocationUpdate(job.deliveryId, currentLocation); + } +} + +async function updateCoordinate(ctx: restate.RpcContext, _driverId: string, location: Location): Promise { + ctx.set(LOCATION_STATE, location); + await updateDeliveryIfExists(ctx, location); +} + +async function coordinateUpdateHandler(ctx: restate.RpcContext, event: restate.Event) { + const driver = event.key; + const location = event.json(); + await updateCoordinate(ctx, driver, location); +} + +function pollAssignedDelivery(ctx: restate.RpcContext): Promise { + return ctx.get(CURRENT_DELIVERY_STATE); +} + + +export const router = restate.keyedRouter({ + // external API + driverAvailable: setDriverAvailable, + notifyDeliveryPickUp, + notifyDeliveryDelivered, + pollAssignedDelivery, + + // internal callbacks + assignDeliveryJob, + + // event handler + updateCoordinate, + handleUpdateEvent: restate.keyedEventHandler(coordinateUpdateHandler) + +}) + +export type api = typeof router; +export const service: restate.ServiceApi = { path: "driver" }; + + +// -------------------------------------------------------- +// utils +// -------------------------------------------------------- + +async function updateDeliveryIfExists(ctx: restate.RpcContext, location: Location): Promise { + const request = await ctx.get(CURRENT_DELIVERY_STATE); + if (request) { + ctx.send(delivery.service).driverLocationUpdate(request.deliveryId, location); + } +} + +async function expectStatus(expectedStatus: DriverStatus, ctx: restate.RpcContext): Promise { + const currentStatus = (await ctx.get(DRIVER_STATUS_STATE)) ?? DriverStatus.IDLE; + + if (currentStatus !== expectedStatus) { + throw new restate.TerminalError(`Driver status wrong. Expected ${expectedStatus} but was ${currentStatus}`); + } +} \ No newline at end of file diff --git a/typescript/food-ordering/app/src/restate-app/services/driver_pool.ts b/typescript/food-ordering/app/src/restate-app/services/driver_pool.ts new file mode 100644 index 00000000..6cee2ec6 --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/services/driver_pool.ts @@ -0,0 +1,52 @@ +import * as restate from "@restatedev/restate-sdk"; +import { DriverRequest } from "../types/types"; + + +const AVAILABLE_DRIVERS_STATE = "available-drivers"; +const PENDING_DRIVER_REQUESTS_STATE = "waiting-deliveries"; + +async function driverAvailable(ctx: restate.RpcContext, _region: string, driverId: string): Promise { + // if we have deliveries already waiting, assign those + const waitingDriverRequests = await ctx.get(PENDING_DRIVER_REQUESTS_STATE); + + if (waitingDriverRequests && waitingDriverRequests.length > 0) { + const nextRequest = waitingDriverRequests.shift()!; + ctx.set(PENDING_DRIVER_REQUESTS_STATE, waitingDriverRequests); + + ctx.resolveAwakeable(nextRequest.promiseId, driverId); + + return; + } + + // otherwise remember driver as available + const drivers = (await ctx.get(AVAILABLE_DRIVERS_STATE)) ?? []; + drivers.push(driverId); + ctx.set(AVAILABLE_DRIVERS_STATE, drivers); +} + +async function requestDriverForOrder(ctx: restate.RpcContext, _region: string, request: DriverRequest): Promise { + const availableDrivers = (await ctx.get(AVAILABLE_DRIVERS_STATE)); + + // if a driver is available, assign the delivery right away + if (availableDrivers && availableDrivers.length > 0) { + const driver = availableDrivers.shift()!; + ctx.set(AVAILABLE_DRIVERS_STATE, availableDrivers); + + ctx.resolveAwakeable(request.promiseId, driver); + + return; + } + + // else store the request and wait for a driver + const waitingDriverRequests = (await ctx.get(PENDING_DRIVER_REQUESTS_STATE)) ?? []; + waitingDriverRequests.push(request); + ctx.set(PENDING_DRIVER_REQUESTS_STATE, waitingDriverRequests); +} + +export const router = restate.keyedRouter({ + driverAvailable, + requestDriverForOrder, +}) + +export type api = typeof router; +export const service : restate.ServiceApi = { path: "driverpool" }; \ No newline at end of file diff --git a/typescript/food-ordering/app/src/restate-app/services/driversim.ts b/typescript/food-ordering/app/src/restate-app/services/driversim.ts new file mode 100644 index 00000000..85a88507 --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/services/driversim.ts @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2023 - Restate Software, Inc., Restate GmbH + * + * This file is part of the Restate Examples for the Node.js/TypeScript SDK, + * which is released under the MIT license. + * + * You can find a copy of the license in the file LICENSE + * in the root directory of this repository or package or at + * https://github.com/restatedev/examples/blob/main/LICENSE + */ + +import * as restate from "@restatedev/restate-sdk"; +import * as driver from "./driver"; +import * as geo from "../utils/geo"; +import { DEMO_REGION, DeliveryRequest, Location } from "../types/types"; +import { getPublisher, DriverUpdatesPublisher } from "../clients/publisher"; + +const locationPingSender: DriverUpdatesPublisher = getPublisher(); + +type DeliveryState = { + currentDelivery: DeliveryRequest, + delivering: boolean +} + +const DELIVERY_STATE = "driverstate"; +const LOCATION_STATE = "location"; + +const pollInterval = 1000; +const moveInterval = 1000; +const pauseBetweenDeliveries = 2000; + +async function startDriver(ctx: restate.RpcContext, driverId: string) { + // check if we exist already + if (await ctx.get(LOCATION_STATE) !== null) { + return; + } + + console.log(`Driver ${driverId} starting up`); + + const location = await ctx.sideEffect(async () => geo.randomLocation()); + ctx.set(LOCATION_STATE, location); + await locationPingSender.send(ctx, driverId, location); + + startWork(ctx, driverId); +} + +async function pollForWork(ctx: restate.RpcContext, driverId: string) { + const work = await ctx.rpc(driver.service).pollAssignedDelivery(driverId); + if (work === null || work === undefined) { + ctx.sendDelayed(service, pollInterval).pollForWork(driverId); + return; + } + + const delivery: DeliveryState = { + currentDelivery: work, + delivering: false + } + ctx.set(DELIVERY_STATE, delivery); + ctx.sendDelayed(service, moveInterval).move(driverId); +} + +async function move(ctx: restate.RpcContext, driverId: string) { + const location = (await ctx.get(LOCATION_STATE))!; + const delivery = (await ctx.get(DELIVERY_STATE))!; + + const nextTarget = delivery.delivering + ? delivery.currentDelivery.customerLocation + : delivery.currentDelivery.restaurantLocation; + + const { newLocation, arrived } = updateLocation(location, nextTarget); + + ctx.set(LOCATION_STATE, newLocation); + await locationPingSender.send(ctx, driverId, location); + + if (arrived) { + if (delivery.delivering) { + // fully done + ctx.clear(DELIVERY_STATE); + + await ctx.rpc(driver.service).notifyDeliveryDelivered(driverId); + await ctx.sleep(pauseBetweenDeliveries); + startWork(ctx, driverId); + return; + } + + delivery.delivering = true; + ctx.set(DELIVERY_STATE, delivery); + + await ctx.rpc(driver.service).notifyDeliveryPickUp(driverId); + } + + ctx.sendDelayed(service, moveInterval).move(driverId); +} + + +export const router = restate.keyedRouter({ + startDriver, + pollForWork, + move +}) + +export const service: restate.ServiceApi = { path : "simulateddriver" }; + +// -------------------------------------------------------- +// helpers +// -------------------------------------------------------- + +function updateLocation(current: Location, target: Location): { newLocation: Location, arrived: boolean} { + const newLong = dimStep(current.long, target.long); + const newLat = dimStep(current.lat, target.lat); + + const arrived = newLong === target.long && newLat === target.lat; + return { arrived, newLocation: { long: newLong, lat: newLat } } +} + +function dimStep(current: number, target: number): number { + const step = geo.step(); + return Math.abs(target - current) < step + ? target + : target > current + ? current + step + : current - step; +} + +function startWork(ctx: restate.RpcContext, driverId: string) { + ctx.send(driver.service).driverAvailable(driverId, DEMO_REGION); + ctx.send(service).pollForWork(driverId); +} diff --git a/typescript/food-ordering/app/src/restate-app/services/order_service.ts b/typescript/food-ordering/app/src/restate-app/services/order_service.ts new file mode 100644 index 00000000..0d2d1240 --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/services/order_service.ts @@ -0,0 +1,67 @@ +import * as restate from "@restatedev/restate-sdk"; +import * as delivery from "./delivery"; +import {Order, Status} from "../types/types"; +import * as orderstatus from "./order_status_service"; +import { completed } from "../utils/utils"; +import {getPaymentClient} from "../clients/payment_client"; +import {getRestaurantClient} from "../clients/restaurant_client"; + +const restaurant = getRestaurantClient(); +const paymentClnt = getPaymentClient(); + +const eventHandler = async (ctx: restate.RpcContext, event: restate.Event) => { + const order = JSON.parse(event.json()); + await create(ctx, event.key, order); +}; + +const create = async ( + ctx: restate.RpcContext, + orderId: string, + order: Order +) => { + // Ignore already completed orders + if (await completed(ctx)) { + return + } + + const { id, totalCost, deliveryDelay } = order; + + // 1. Set status + ctx.send(orderstatus.service).setStatus(id, Status.CREATED); + + // 2. Handle payment + const token = ctx.rand.uuidv4(); + const paid = await ctx.sideEffect(() => paymentClnt.charge(id, token, totalCost)); + + if (!paid) { + ctx.send(orderstatus.service).setStatus(id, Status.REJECTED); + return; + } + + // 3. Schedule preparation + ctx.send(orderstatus.service).setStatus(id, Status.SCHEDULED); + await ctx.sleep(deliveryDelay); + + // 4. Trigger preparation + const preparationPromise = ctx.awakeable(); + await ctx.sideEffect(() => restaurant.prepare(id, preparationPromise.id)); + ctx.send(orderstatus.service).setStatus(id, Status.IN_PREPARATION); + + await preparationPromise.promise; + ctx.send(orderstatus.service).setStatus(id, Status.SCHEDULING_DELIVERY); + + // 5. Find a driver and start delivery + const deliveryId = ctx.rand.uuidv4(); + const deliveryPromise = ctx.awakeable(); + await ctx.rpc(delivery.service).start(deliveryId, {order, promise: deliveryPromise.id}) + await deliveryPromise.promise; + ctx.send(orderstatus.service).setStatus(id, Status.DELIVERED); +}; + +export const router = restate.keyedRouter({ + create, + eventHandler: restate.keyedEventHandler(eventHandler), +}); + +export type orderApi = typeof router; +export const service: restate.ServiceApi = { path: "orders" }; \ No newline at end of file diff --git a/typescript/food-ordering/app/src/restate-app/services/order_status_service.ts b/typescript/food-ordering/app/src/restate-app/services/order_status_service.ts new file mode 100644 index 00000000..faad417d --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/services/order_status_service.ts @@ -0,0 +1,52 @@ +import { OrderStatus, Status } from "../types/types"; +import * as restate from "@restatedev/restate-sdk"; + +const ORDER_STATUS = "order_status"; + +const get = async (ctx: restate.RpcContext, orderId: string) => + ctx.get(ORDER_STATUS); + +const setStatus = async ( + ctx: restate.RpcContext, + orderId: string, + status: Status +) => { + console.info(`[${orderId}] Order is ${status}`); + const currentStatus = await ctx.get(ORDER_STATUS); + ctx.set(ORDER_STATUS, { ...currentStatus, ...{ status } }); +}; + +const setETA = async ( + ctx: restate.RpcContext, + orderId: string, + eta: number +) => { + const currentStatus = await ctx.get(ORDER_STATUS); + ctx.set(ORDER_STATUS, { + eta: eta, + status: eta === 0 ? Status.DELIVERED : currentStatus?.status, + }); +}; + +const handleDriverUpdate = async ( + ctx: restate.RpcContext, + event: restate.Event +) => { + const eta = +event.body().toString(); + const currentStatus = await ctx.get(ORDER_STATUS); + ctx.set(ORDER_STATUS, { + eta: eta, + status: eta === 0 ? Status.DELIVERED : currentStatus?.status, + }); +}; + +export const router = restate.keyedRouter({ + get, + setStatus, + setETA, + eventHandler: restate.keyedEventHandler(handleDriverUpdate), +}); +export type orderStatusApi = typeof router; +export const service: restate.ServiceApi = { + path: "orderStatus", +}; diff --git a/typescript/food-ordering/app/src/restate-app/types/types.ts b/typescript/food-ordering/app/src/restate-app/types/types.ts new file mode 100644 index 00000000..9dd84648 --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/types/types.ts @@ -0,0 +1,55 @@ +export type Product = { + productId: string; + description: string; + quantity: number; +}; + +export type Order = { + id: string, + restaurantId: string; + products: Product[]; + totalCost: number; + deliveryDelay: number; +}; + +export enum Status { + NEW = "NEW", + CREATED = "CREATED", + SCHEDULED = "SCHEDULED", + IN_PREPARATION = "IN_PREPARATION", + SCHEDULING_DELIVERY = "SCHEDULING_DELIVERY", + WAITING_FOR_DRIVER = "WAITING_FOR_DRIVER", + IN_DELIVERY = "IN_DELIVERY", + DELIVERED = "DELIVERED", + REJECTED = "REJECTED", + CANCELLED = "CANCELLED", +} + +export type OrderStatus = { + status?: Status; + eta?: number; +} + +export type DeliveryRequest = { + deliveryId: string, + restaurantId: string, + restaurantLocation: Location, + customerLocation: Location +} + +export type DriverRequest = { + promiseId: string; +} + +export type Location = { + long: number, + lat: number, +} + +export type LocationTimestamp = { + long: number, + lat: number, + timestamp: number +} + +export const DEMO_REGION = "San Jose (CA)"; diff --git a/typescript/food-ordering/app/src/restate-app/utils/geo.ts b/typescript/food-ordering/app/src/restate-app/utils/geo.ts new file mode 100644 index 00000000..d93ecd1f --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/utils/geo.ts @@ -0,0 +1,31 @@ +import { Location } from "../types/types"; + +const long_min = -0.0675; +const long_max = 0.0675; +const lat_min = -0.0675; +const lat_max = 0.0675; +const speed = 0.005; + +function randomInInterval(min: number, max: number): number { + const range = max - min; + return Math.random() * range + min; +} + + +export function randomLocation(): Location { + return { + long: randomInInterval(long_min, long_max), + lat: randomInInterval(lat_min, lat_max) + } +} + +export function step(): number { + return speed; +} + +export function calculateEtaMillis(currentLocation: Location, targetLocation: Location): number { + const longDiff = Math.abs(targetLocation.long - currentLocation.long); + const latDiff = Math.abs(targetLocation.lat - currentLocation.lat); + const distance = Math.max(longDiff, latDiff); + return 1000 * distance / speed; +} \ No newline at end of file diff --git a/typescript/food-ordering/app/src/restate-app/utils/utils.ts b/typescript/food-ordering/app/src/restate-app/utils/utils.ts new file mode 100644 index 00000000..117b3cec --- /dev/null +++ b/typescript/food-ordering/app/src/restate-app/utils/utils.ts @@ -0,0 +1,15 @@ +import * as restate from "@restatedev/restate-sdk"; + +export function fail(id: string, msg: string) { + const errorMsg = `[${id}] Error: ${msg}`; + console.error(errorMsg); + throw new Error(errorMsg); +} + +export const completed = async (ctx: restate.RpcContext): Promise => { + if (await ctx.get("completed") === true) { + return true + } + ctx.set("completed", true) + return false +} diff --git a/typescript/food-ordering/app/src/restaurant/server.ts b/typescript/food-ordering/app/src/restaurant/server.ts new file mode 100644 index 00000000..01c6c544 --- /dev/null +++ b/typescript/food-ordering/app/src/restaurant/server.ts @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2023 - Restate Software, Inc., Restate GmbH + * + * This file is part of the Restate Examples for the Node.js/TypeScript SDK, + * which is released under the MIT license. + * + * You can find a copy of the license in the file LICENSE + * in the root directory of this repository or package or at + * https://github.com/restatedev/examples/blob/main/LICENSE + */ + +import express, { Request, Response } from "express"; +import axios from "axios"; + +/** + * This file contains the logic for the Point of Sales API server of the restaurant. + * It responds to requests to create, cancel and prepare orders. + */ + +const RESTATE_RUNTIME_ENDPOINT = + process.env.RESTATE_RUNTIME_ENDPOINT || "http://localhost:8080"; +const RESTATE_TOKEN = process.env.RESTATE_RUNTIME_TOKEN; + +const app = express(); +const port = 5050; +app.use(express.json()); + +app.post("/create", (req: Request, res: Response) => { + console.info(`${logPrefix()} Creating order ${req.body.orderId}`); + res.sendStatus(200); + + setTimeout(async () => { + console.info(`${logPrefix()} Order ${req.body.orderId} accepted`); + console.info(`${logPrefix()} Order ${req.body.orderId} created`); + await resolveCb(req.body.cb, true); + }, 50); +}); + +app.post("/prepare", (req: Request, res: Response) => { + console.info( + `${logPrefix()} Started preparation of order ${ + req.body.orderId + }; expected duration: 5 seconds` + ); + res.sendStatus(200); + + setTimeout(async () => { + console.info( + `${logPrefix()} Order ${ + req.body.orderId + } prepared and ready for shipping` + ); + await resolveCb(req.body.cb); + }, 5000); +}); + +app.post("/cancel", (req: Request, res: Response) => { + console.info(`${logPrefix()} Cancelling order ${req.body.orderId}`); + res.sendStatus(200); + + setTimeout(async () => { + console.info(`${logPrefix} Order ${req.body.orderId} cancelled`); + await resolveCb(req.body.cb); + }, 50); +}); + +async function resolveCb(cb: string, payload?: boolean) { + await axios.post( + `${RESTATE_RUNTIME_ENDPOINT}/dev.restate.Awakeables/Resolve`, + { id: cb, json_result: payload ?? {} }, + { + headers: { + "Content-Type": "application/json", + ...(RESTATE_TOKEN && { Authorization: `Bearer ${RESTATE_TOKEN}` }), + }, + } + ); +} + +function logPrefix() { + return `[restaurant] [${new Date().toISOString()}] INFO:`; +} + +app.listen(port, () => { + console.log(`${logPrefix()} Restaurant is listening on port ${port}`); +}); diff --git a/typescript/food-ordering/pos_server/tsconfig.json b/typescript/food-ordering/app/tsconfig.json similarity index 85% rename from typescript/food-ordering/pos_server/tsconfig.json rename to typescript/food-ordering/app/tsconfig.json index 26a8776a..39a2c289 100644 --- a/typescript/food-ordering/pos_server/tsconfig.json +++ b/typescript/food-ordering/app/tsconfig.json @@ -11,8 +11,8 @@ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ /* Language and Environment */ - "target": "esnext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + "target": "esnext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + "lib": ["esnext"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ @@ -25,7 +25,7 @@ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ - "module": "commonjs" /* Specify what module code is generated. */, + "module": "commonjs", /* Specify what module code is generated. */ // "rootDir": "./", /* Specify the root folder within your source files. */ // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ @@ -44,15 +44,15 @@ // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - "allowJs": true /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */, + "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ - "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */, - "declarationMap": true /* Create sourcemaps for d.ts files. */, - "sourceMap": true /* Create source map files for emitted JavaScript files. */, - "outDir": "./dist" /* Specify an output folder for all emitted files. */, + "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + "declarationMap": true, /* Create sourcemaps for d.ts files. */ + "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + "outDir": "./dist", /* Specify an output folder for all emitted files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ @@ -74,15 +74,15 @@ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - "allowSyntheticDefaultImports": true /* Allow 'import x from y' when a module doesn't have a default export. */, + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, + "strict": true, /* Enable all strict type-checking options. */ // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ @@ -103,7 +103,10 @@ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ /* Completeness */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */, - "skipDefaultLibCheck": true /* Skip type checking .d.ts files that are included with TypeScript. */ - } + "skipLibCheck": true, /* Skip type checking all .d.ts files. */ + "skipDefaultLibCheck": true /* Skip type checking .d.ts files that are included with TypeScript. */ + }, + "include": [ + "./src/" + ] } diff --git a/typescript/food-ordering/demo_overview.png b/typescript/food-ordering/demo_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..d9eb37413d1718481a523e0eae57db6c0f7761ea GIT binary patch literal 60428 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

-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 N#OTQW0t1K8zX6og0b>9F literal 0 HcmV?d00001 diff --git a/typescript/food-ordering/docker-compose.yml b/typescript/food-ordering/docker-compose.yml index f80eac9f..40e5d6d5 100644 --- a/typescript/food-ordering/docker-compose.yml +++ b/typescript/food-ordering/docker-compose.yml @@ -1,11 +1,58 @@ -version: "3.3" - +version: '3' services: - services: - image: dev.local/food-ordering/services:0.0.1 + broker: + image: confluentinc/cp-kafka:7.5.0 + container_name: broker + ports: + - "9092:9092" + - "9101:9101" + environment: + KAFKA_BROKER_ID: 1 + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092 + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 + KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 + KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 + KAFKA_PROCESS_ROLES: broker,controller + KAFKA_NODE_ID: 1 + KAFKA_CONTROLLER_QUORUM_VOTERS: 1@broker:29093 + KAFKA_LISTENERS: PLAINTEXT://broker:29092,CONTROLLER://broker:29093,PLAINTEXT_HOST://0.0.0.0:9092 + KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER + KAFKA_LOG_DIRS: /tmp/kraft-combined-logs + CLUSTER_ID: MkU3OEVBNTcwNTJENDM2Qk + + init-kafka: + image: confluentinc/cp-kafka:7.5.0 + depends_on: + - broker + entrypoint: [ '/bin/sh', '-c' ] + command: | + " + # blocks until kafka is reachable + kafka-topics --bootstrap-server broker:29092 --list + echo -e 'Creating kafka topics' + kafka-topics --bootstrap-server broker:29092 --create --if-not-exists --topic orders --replication-factor 1 --partitions 1 + kafka-topics --bootstrap-server broker:29092 --create --if-not-exists --topic driver-updates --replication-factor 1 --partitions 1 + + echo -e 'Successfully created the following topics:' + kafka-topics --bootstrap-server broker:29092 --list + " + + rest-proxy: + image: confluentinc/cp-kafka-rest:7.5.0 + ports: + - 8088:8088 + hostname: rest-proxy + container_name: rest-proxy environment: - - RESTATE_DEBUG_LOGGING=JOURNAL_VERBOSE - - POS_ENDPOINT=http://pos_server:5050 + KAFKA_REST_HOST_NAME: rest-proxy + KAFKA_REST_LISTENERS: "http://0.0.0.0:8088" + KAFKA_REST_BOOTSTRAP_SERVERS: "broker:29092" + KAFKA_REST_ACCESS_CONTROL_ALLOW_ORIGIN: "*" + KAFKA_REST_ACCESS_CONTROL_ALLOW_METHODS: "OPTIONS,GET,POST,PUT,DELETE" + KAFKA_REST_ACCESS_CONTROL_ALLOW_HEADERS: "origin,content-type,accept,authorization" jaeger: image: jaegertracing/all-in-one:1.47 @@ -15,41 +62,61 @@ services: environment: - COLLECTOR_OTLP_ENABLED=true + restate_app: + container_name: restate_app + build: + context: ./app + environment: + - RESTATE_DEBUG_LOGGING=INVOKE + - RESTAURANT_ENDPOINT=http://restaurant_pos:5050 + - KAFKA_BOOTSTRAP_SERVERS=broker:29092 + + restaurant_pos: + container_name: restaurant_pos + build: + context: ./app + dockerfile: Dockerfile-restaurant + environment: + - RESTATE_RUNTIME_ENDPOINT=http://runtime:8080 + runtime: image: docker.io/restatedev/restate:latest depends_on: - - services + - restate_app + - restaurant_pos + - broker + - rest-proxy - jaeger ports: - - "8080:8080" - "9070:9070" + - "9071:9071" + - "8080:8080" + volumes: + - ./restate-docker.yaml:/restate.yaml environment: - RESTATE_OBSERVABILITY__TRACING__ENDPOINT=http://jaeger:4317 + - RESTATE_CONFIG=/restate.yaml runtimesetup: image: alpine depends_on: - runtime - - services + - restate_app restart: "no" - entrypoint: ["sh", "-c", "sleep 5 && apk add --no-cache bash jq curl && - curl -X POST 'runtime:9070/endpoints' -H 'content-type: application/json' -d '{\"uri\": \"http://services:8080\"}' - || exit 1"] + entrypoint: ["sh", "-c", "sleep 5 && + apk add --no-cache bash jq curl && + curl -X POST 'runtime:9070/endpoints' -H 'content-type: application/json' -d '{\"uri\": \"http://restate_app:9080\"}' && + sleep 3 && + curl -X POST 'runtime:9070/subscriptions' -H 'content-type: application/json' -d '{ \"source\":\"kafka://my-cluster/orders\", \"sink\":\"service://orders/eventHandler\" }' && + curl -X POST 'runtime:9070/subscriptions' -H 'content-type: application/json' -d '{ \"source\":\"kafka://my-cluster/driver-updates\", \"sink\":\"service://driver/handleUpdateEvent\" }' && + curl -X POST -H 'content-type: application/json' runtime:8080/simulateddriver/startDriver -d '{\"key\": \"driver-01\", \"request\": {} }' && + curl -X POST -H 'content-type: application/json' runtime:8080/simulateddriver/startDriver -d '{\"key\": \"driver-02\", \"request\": {} }' && + exit 1"] - grpcui: - image: fullstorydev/grpcui:v1.3.1 - ports: - - "3030:3030" - depends_on: - runtimesetup: - condition: service_completed_successfully - entrypoint: ["/bin/grpcui", "-bind=0.0.0.0", "-port=3030", "-plaintext", "runtime:8080"] - - pos_server: - image: dev.local/food-ordering/pos_server:0.0.1 + webui: + build: + context: ./webui depends_on: - runtimesetup - environment: - - RESTATE_RUNTIME_ENDPOINT=http://runtime:8080 ports: - - "5050:5050" + - "3000:3000" \ No newline at end of file diff --git a/typescript/food-ordering/img/arch.png b/typescript/food-ordering/img/arch.png deleted file mode 100644 index 3f1b5fb099ff889a258506290d5ec02b26330f7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26193 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 diff --git a/typescript/food-ordering/pos_server/.dockerignore b/typescript/food-ordering/pos_server/.dockerignore deleted file mode 100644 index b763d823..00000000 --- a/typescript/food-ordering/pos_server/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist -Dockerfile diff --git a/typescript/food-ordering/pos_server/package.json b/typescript/food-ordering/pos_server/package.json deleted file mode 100644 index 231f0906..00000000 --- a/typescript/food-ordering/pos_server/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "@restatedev/example-food-ordering-pos-server", - "version": "0.0.1", - "description": "Example of food ordering application with Restate: Point of sales server", - "main": "server.js", - "type": "commonjs", - "license": "MIT", - "author": "Restate developers", - "email": "code@restate.dev", - "private": true, - "scripts": { - "build": "./node_modules/.bin/tsc --noEmitOnError", - "format": "prettier --ignore-path .eslintignore --write \"**/*.+(js|ts|json)\"", - "app": "node ./dist/server.js", - "app-dev": "./node_modules/.bin/ts-node-dev --watch ./src --respawn --transpile-only src/server.ts" - }, - "dependencies": { - "axios": "^1.4.0", - "express": "^4.17.3" - }, - "devDependencies": { - "ts-node-dev": "^1.1.1", - "@types/express": "^4.17.3", - "prettier": "^2.8.4", - "typescript": "^5.1.6" - } -} \ No newline at end of file diff --git a/typescript/food-ordering/pos_server/src/server.ts b/typescript/food-ordering/pos_server/src/server.ts deleted file mode 100644 index 8e34896b..00000000 --- a/typescript/food-ordering/pos_server/src/server.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2023 - Restate Software, Inc., Restate GmbH - * - * This file is part of the Restate Examples for the Node.js/TypeScript SDK, - * which is released under the MIT license. - * - * You can find a copy of the license in the file LICENSE - * in the root directory of this repository or package or at - * https://github.com/restatedev/examples/blob/main/LICENSE - */ - -import express, { Request, Response } from "express"; -import axios from "axios"; - -/** - * This file contains the logic for the Point of Sales API server of the restaurant. - * It responds to requests to create, cancel and prepare orders. - */ - -const RESTATE_RUNTIME_ENDPOINT = - process.env.RESTATE_RUNTIME_ENDPOINT || "http://localhost:8080"; - -const app = express(); -const port = 5050; -app.use(express.json()); - -app.post("/create", (req: Request, res: Response) => { - console.info(`Creating order ${req.body.orderId - } in point of sales software of restaurant. - Order summary: - ${JSON.stringify(req.body.order)}`); - res.sendStatus(200); -}); - -app.post("/cancel", (req: Request, res: Response) => { - console.info(`Canceling order ${req.body.orderId} in point of sales software of restaurant.`); - res.sendStatus(200); -}); - -app.post("/prepare", (req: Request, res: Response) => { - console.info(`Scheduling order ${req.body.orderId} for preparation in point of sales software of restaurant... - Preparing order ${req.body.orderId}... - Expected duration: 5 seconds`); - res.sendStatus(200); - - // Send back a success message to the awakeable to signal that the food got prepared - setTimeout(() => { - console.info( - `Order ${req.body.orderId} prepared and ready for shipping...` - ); - axios.post( - `${RESTATE_RUNTIME_ENDPOINT}/dev.restate.Awakeables/Resolve`, - { id: req.body.awakeableId, json_result: {} }, - { headers: { "Content-Type": "application/json" } } - ); - }, 5000); -}); - -app.get("/opening-hours/:restaurantId", (req: Request, res: Response) => { - console.info(`Checking whether restaurant '${req.params.restaurantId}' is open.`); - // All our restaurants operate 24/7 :-) - res.send(true); -}) - -app.listen(port, () => { - console.log(`Server is listening on port ${port}`); -}); diff --git a/typescript/food-ordering/restate-docker.yaml b/typescript/food-ordering/restate-docker.yaml new file mode 100644 index 00000000..83398258 --- /dev/null +++ b/typescript/food-ordering/restate-docker.yaml @@ -0,0 +1,10 @@ +worker: + kafka: + clusters: + my-cluster: + bootstrap.servers: broker:29092 + storage_query: + bind_address: 0.0.0.0:5432 + invoker: + retry_policy: + max_interval: 2s diff --git a/typescript/food-ordering/services/.eslintignore b/typescript/food-ordering/services/.eslintignore deleted file mode 100644 index 96eb6d87..00000000 --- a/typescript/food-ordering/services/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist -src/generated \ No newline at end of file diff --git a/typescript/food-ordering/services/.eslintrc.json b/typescript/food-ordering/services/.eslintrc.json deleted file mode 100644 index 6083998e..00000000 --- a/typescript/food-ordering/services/.eslintrc.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "env": { - "browser": true, - "commonjs": true, - "es2021": true - }, - "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], - "overrides": [], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": "latest" - }, - "plugins": ["@typescript-eslint"], - "rules": { - "@typescript-eslint/no-unused-vars": [ - "error", - { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "^_", - "caughtErrorsIgnorePattern": "^_" - } - ] - } -} diff --git a/typescript/food-ordering/services/package-lock.json b/typescript/food-ordering/services/package-lock.json deleted file mode 100644 index 0fa38fef..00000000 --- a/typescript/food-ordering/services/package-lock.json +++ /dev/null @@ -1,4652 +0,0 @@ -{ - "name": "@restatedev/example-food-ordering", - "version": "0.0.1", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@restatedev/example-food-ordering", - "version": "0.0.1", - "license": "MIT", - "dependencies": { - "@restatedev/restate-sdk": "1.0.37", - "axios": "^1.4.0", - "ts-proto": "^1.140.0" - }, - "devDependencies": { - "@bufbuild/buf": "^1.26.1", - "@typescript-eslint/eslint-plugin": "^6.3.0", - "@typescript-eslint/parser": "^6.3.0", - "esbuild": "^0.19.0", - "eslint": "^8.46.0", - "prettier": "^2.8.4", - "ts-node-dev": "^2.0.0" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@bufbuild/buf": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf/-/buf-1.26.1.tgz", - "integrity": "sha512-NyYx4T//3ndtFYV3BfqX9Xrm1NZEx3eChXniAKc/osCVViFooC5nuLQUbyqglMonH0w39RohiURMXN+e/oEB4g==", - "dev": true, - "hasInstallScript": true, - "bin": { - "buf": "bin/buf", - "protoc-gen-buf-breaking": "bin/protoc-gen-buf-breaking", - "protoc-gen-buf-lint": "bin/protoc-gen-buf-lint" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@bufbuild/buf-darwin-arm64": "1.26.1", - "@bufbuild/buf-darwin-x64": "1.26.1", - "@bufbuild/buf-linux-aarch64": "1.26.1", - "@bufbuild/buf-linux-x64": "1.26.1", - "@bufbuild/buf-win32-arm64": "1.26.1", - "@bufbuild/buf-win32-x64": "1.26.1" - } - }, - "node_modules/@bufbuild/buf-darwin-arm64": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-darwin-arm64/-/buf-darwin-arm64-1.26.1.tgz", - "integrity": "sha512-nmyWiT/59RFja0ZuXFxjNGoAMDPTApU66CZUUevkFVWbNB9nzeQDjx2vsJyACY64k5fTgZiaelSiyppwObQknw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@bufbuild/buf-darwin-x64": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-darwin-x64/-/buf-darwin-x64-1.26.1.tgz", - "integrity": "sha512-jl5WmUv30OW8JiRLid9+mVx1XVH0XttpUfkQfmqDFdUHGfdy4XWYK8kr84YyWu0SiMTIt1mPXkqG5UM3x+tdIQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@bufbuild/buf-linux-aarch64": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-linux-aarch64/-/buf-linux-aarch64-1.26.1.tgz", - "integrity": "sha512-EedR2KDW/yDIxQKWuq1Y/g7IuwTgvelqylGVO7muMxt2JWShobyUaU6GIU8JB4yhIbqRQYCL2KqBsvDJbJtCUw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@bufbuild/buf-linux-x64": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-linux-x64/-/buf-linux-x64-1.26.1.tgz", - "integrity": "sha512-5iFL+MmWqR4cBLVNpgsjRecdHgcTxFaIkVYlQV9q8acbaJn5rgOIjUr1tzcBao9YsL3rdBhHvKkgnQ9gi1IiTw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@bufbuild/buf-win32-arm64": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-win32-arm64/-/buf-win32-arm64-1.26.1.tgz", - "integrity": "sha512-/ayymSD12gBetN98ErkH0CBGRLTmtYAp4fmbPuvq8zuJcL0eiAnK6d7ZFjTc+vDMuKY/aelQN7dj9WhzdYAQSQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@bufbuild/buf-win32-x64": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-win32-x64/-/buf-win32-x64-1.26.1.tgz", - "integrity": "sha512-k9Dy3Z9P96wYR43lUhUo0jbjMSo001+MRBlsadEYiw85POqx6RWVaGyHLrxC2Ly7g+aGMisey050OjqfCWtKTA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.2.tgz", - "integrity": "sha512-tM8yLeYVe7pRyAu9VMi/Q7aunpLwD139EY1S99xbQkT4/q2qa6eA4ige/WJQYdJ8GBL1K33pPFhPfPdJ/WzT8Q==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.2.tgz", - "integrity": "sha512-lsB65vAbe90I/Qe10OjkmrdxSX4UJDjosDgb8sZUKcg3oefEuW2OT2Vozz8ef7wrJbMcmhvCC+hciF8jY/uAkw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.2.tgz", - "integrity": "sha512-qK/TpmHt2M/Hg82WXHRc/W/2SGo/l1thtDHZWqFq7oi24AjZ4O/CpPSu6ZuYKFkEgmZlFoa7CooAyYmuvnaG8w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.2.tgz", - "integrity": "sha512-Ora8JokrvrzEPEpZO18ZYXkH4asCdc1DLdcVy8TGf5eWtPO1Ie4WroEJzwI52ZGtpODy3+m0a2yEX9l+KUn0tA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.2.tgz", - "integrity": "sha512-tP+B5UuIbbFMj2hQaUr6EALlHOIOmlLM2FK7jeFBobPy2ERdohI4Ka6ZFjZ1ZYsrHE/hZimGuU90jusRE0pwDw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.2.tgz", - "integrity": "sha512-YbPY2kc0acfzL1VPVK6EnAlig4f+l8xmq36OZkU0jzBVHcOTyQDhnKQaLzZudNJQyymd9OqQezeaBgkTGdTGeQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.2.tgz", - "integrity": "sha512-nSO5uZT2clM6hosjWHAsS15hLrwCvIWx+b2e3lZ3MwbYSaXwvfO528OF+dLjas1g3bZonciivI8qKR/Hm7IWGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.2.tgz", - "integrity": "sha512-Odalh8hICg7SOD7XCj0YLpYCEc+6mkoq63UnExDCiRA2wXEmGlK5JVrW50vZR9Qz4qkvqnHcpH+OFEggO3PgTg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.2.tgz", - "integrity": "sha512-ig2P7GeG//zWlU0AggA3pV1h5gdix0MA3wgB+NsnBXViwiGgY77fuN9Wr5uoCrs2YzaYfogXgsWZbm+HGr09xg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.2.tgz", - "integrity": "sha512-mLfp0ziRPOLSTek0Gd9T5B8AtzKAkoZE70fneiiyPlSnUKKI4lp+mGEnQXcQEHLJAcIYDPSyBvsUbKUG2ri/XQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.2.tgz", - "integrity": "sha512-hn28+JNDTxxCpnYjdDYVMNTR3SKavyLlCHHkufHV91fkewpIyQchS1d8wSbmXhs1fiYDpNww8KTFlJ1dHsxeSw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.2.tgz", - "integrity": "sha512-KbXaC0Sejt7vD2fEgPoIKb6nxkfYW9OmFUK9XQE4//PvGIxNIfPk1NmlHmMg6f25x57rpmEFrn1OotASYIAaTg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.2.tgz", - "integrity": "sha512-dJ0kE8KTqbiHtA3Fc/zn7lCd7pqVr4JcT0JqOnbj4LLzYnp+7h8Qi4yjfq42ZlHfhOCM42rBh0EwHYLL6LEzcw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.2.tgz", - "integrity": "sha512-7Z/jKNFufZ/bbu4INqqCN6DDlrmOTmdw6D0gH+6Y7auok2r02Ur661qPuXidPOJ+FSgbEeQnnAGgsVynfLuOEw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.2.tgz", - "integrity": "sha512-U+RinR6aXXABFCcAY4gSlv4CL1oOVvSSCdseQmGO66H+XyuQGZIUdhG56SZaDJQcLmrSfRmx5XZOWyCJPRqS7g==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.2.tgz", - "integrity": "sha512-oxzHTEv6VPm3XXNaHPyUTTte+3wGv7qVQtqaZCrgstI16gCuhNOtBXLEBkBREP57YTd68P0VgDgG73jSD8bwXQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.2.tgz", - "integrity": "sha512-WNa5zZk1XpTTwMDompZmvQLHszDDDN7lYjEHCUmAGB83Bgs20EMs7ICD+oKeT6xt4phV4NDdSi/8OfjPbSbZfQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.2.tgz", - "integrity": "sha512-S6kI1aT3S++Dedb7vxIuUOb3oAxqxk2Rh5rOXOTYnzN8JzW1VzBd+IqPiSpgitu45042SYD3HCoEyhLKQcDFDw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.2.tgz", - "integrity": "sha512-VXSSMsmb+Z8LbsQGcBMiM+fYObDNRm8p7tkUDMPG/g4fhFX5DEFmjxIEa3N8Zr96SjsJ1woAhF0DUnS3MF3ARw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.2.tgz", - "integrity": "sha512-5NayUlSAyb5PQYFAU9x3bHdsqB88RC3aM9lKDAz4X1mo/EchMIT1Q+pSeBXNgkfNmRecLXA0O8xP+x8V+g/LKg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.2.tgz", - "integrity": "sha512-47gL/ek1v36iN0wL9L4Q2MFdujR0poLZMJwhO2/N3gA89jgHp4MR8DKCmwYtGNksbfJb9JoTtbkoe6sDhg2QTA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.2.tgz", - "integrity": "sha512-tcuhV7ncXBqbt/Ybf0IyrMcwVOAPDckMK9rXNHtF17UTK18OKLpg08glminN06pt2WCoALhXdLfSPbVvK/6fxw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.7.0.tgz", - "integrity": "sha512-+HencqxU7CFJnQb7IKtuNBqS6Yx3Tz4kOL8BJXo+JyeiBm5MEX6pO8onXDkjrkCRlfYXS1Axro15ZjVFe9YgsA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/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==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.47.0.tgz", - "integrity": "sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@restatedev/restate-sdk": { - "version": "1.0.37", - "resolved": "https://npm.pkg.github.com/download/@restatedev/restate-sdk/1.0.37/950b2da91c86ba1b1f64aedaa1d125afdf489aa9", - "integrity": "sha512-PBHBKqjtaAyvCW7lQT9kNSG2x05ELjkf0d3m9gJ/7+XXOdTJFHChoXIbY6dPf2yDlcc4ye7wvZCW74hxPh8yOg==", - "license": "MIT", - "dependencies": { - "protobufjs": "^7.2.2", - "ts-proto": "^1.140.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.4.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz", - "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==" - }, - "node_modules/@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true - }, - "node_modules/@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==", - "dev": true - }, - "node_modules/@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.1.tgz", - "integrity": "sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.4.1", - "@typescript-eslint/type-utils": "6.4.1", - "@typescript-eslint/utils": "6.4.1", - "@typescript-eslint/visitor-keys": "6.4.1", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.4.1.tgz", - "integrity": "sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "6.4.1", - "@typescript-eslint/types": "6.4.1", - "@typescript-eslint/typescript-estree": "6.4.1", - "@typescript-eslint/visitor-keys": "6.4.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.4.1.tgz", - "integrity": "sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.4.1", - "@typescript-eslint/visitor-keys": "6.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.4.1.tgz", - "integrity": "sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "6.4.1", - "@typescript-eslint/utils": "6.4.1", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.4.1.tgz", - "integrity": "sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz", - "integrity": "sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.4.1", - "@typescript-eslint/visitor-keys": "6.4.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.4.1.tgz", - "integrity": "sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.4.1", - "@typescript-eslint/types": "6.4.1", - "@typescript-eslint/typescript-estree": "6.4.1", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.1.tgz", - "integrity": "sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.4.1", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/case-anything": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz", - "integrity": "sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==", - "engines": { - "node": ">=12.13" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.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" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/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 - }, - "node_modules/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, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dprint-node": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.7.tgz", - "integrity": "sha512-NTZOW9A7ipb0n7z7nC3wftvsbceircwVHSgzobJsEQa+7RnOMbhrfX5IflA6CtC4GA63DSAiHYXa4JKEy9F7cA==", - "dependencies": { - "detect-libc": "^1.0.3" - } - }, - "node_modules/dynamic-dedupe": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz", - "integrity": "sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==", - "dev": true, - "dependencies": { - "xtend": "^4.0.0" - } - }, - "node_modules/esbuild": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.2.tgz", - "integrity": "sha512-G6hPax8UbFakEj3hWO0Vs52LQ8k3lnBhxZWomUJDxfz3rZTLqF5k/FCzuNdLx2RbpBiQQF9H9onlDDH1lZsnjg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.19.2", - "@esbuild/android-arm64": "0.19.2", - "@esbuild/android-x64": "0.19.2", - "@esbuild/darwin-arm64": "0.19.2", - "@esbuild/darwin-x64": "0.19.2", - "@esbuild/freebsd-arm64": "0.19.2", - "@esbuild/freebsd-x64": "0.19.2", - "@esbuild/linux-arm": "0.19.2", - "@esbuild/linux-arm64": "0.19.2", - "@esbuild/linux-ia32": "0.19.2", - "@esbuild/linux-loong64": "0.19.2", - "@esbuild/linux-mips64el": "0.19.2", - "@esbuild/linux-ppc64": "0.19.2", - "@esbuild/linux-riscv64": "0.19.2", - "@esbuild/linux-s390x": "0.19.2", - "@esbuild/linux-x64": "0.19.2", - "@esbuild/netbsd-x64": "0.19.2", - "@esbuild/openbsd-x64": "0.19.2", - "@esbuild/sunos-x64": "0.19.2", - "@esbuild/win32-arm64": "0.19.2", - "@esbuild/win32-ia32": "0.19.2", - "@esbuild/win32-x64": "0.19.2" - } - }, - "node_modules/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, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz", - "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "^8.47.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/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, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-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 - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/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, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/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, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/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, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "13.21.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", - "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-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, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-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 - }, - "node_modules/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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/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 - }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "node_modules/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, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/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 - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-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, - "engines": { - "node": ">=8" - } - }, - "node_modules/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 - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/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, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/protobufjs": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz", - "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==", - "hasInstallScript": true, - "dependencies": { - "@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/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/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, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-api-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.2.tgz", - "integrity": "sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==", - "dev": true, - "engines": { - "node": ">=16.13.0" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node-dev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-2.0.0.tgz", - "integrity": "sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.1", - "dynamic-dedupe": "^0.3.0", - "minimist": "^1.2.6", - "mkdirp": "^1.0.4", - "resolve": "^1.0.0", - "rimraf": "^2.6.1", - "source-map-support": "^0.5.12", - "tree-kill": "^1.2.2", - "ts-node": "^10.4.0", - "tsconfig": "^7.0.0" - }, - "bin": { - "ts-node-dev": "lib/bin.js", - "tsnd": "lib/bin.js" - }, - "engines": { - "node": ">=0.8.0" - }, - "peerDependencies": { - "node-notifier": "*", - "typescript": "*" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/ts-poet": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.5.0.tgz", - "integrity": "sha512-44jURLT1HG6+NsDcadM826V6Ekux+wk07Go+MX5Gfx+8zcPKfUiFEtnjL9imuRVGSCRtloRLqw4bDGZVJYGZMQ==", - "dependencies": { - "dprint-node": "^1.0.7" - } - }, - "node_modules/ts-proto": { - "version": "1.156.2", - "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.156.2.tgz", - "integrity": "sha512-0ZAbGmfvB2R79QJfpTIk56T8xM4k9ZS+z77517HDpuFZFizCMceCIE3IhdYQWbmP1oSYLzw0AeVbVHi2PIigKQ==", - "dependencies": { - "case-anything": "^2.1.13", - "protobufjs": "^7.2.4", - "ts-poet": "^6.5.0", - "ts-proto-descriptors": "1.15.0" - }, - "bin": { - "protoc-gen-ts_proto": "protoc-gen-ts_proto" - } - }, - "node_modules/ts-proto-descriptors": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.15.0.tgz", - "integrity": "sha512-TYyJ7+H+7Jsqawdv+mfsEpZPTIj9siDHS6EMCzG/z3b/PZiphsX+mWtqFfFVe5/N0Th6V3elK9lQqjnrgTOfrg==", - "dependencies": { - "long": "^5.2.3", - "protobufjs": "^7.2.4" - } - }, - "node_modules/tsconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", - "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", - "dev": true, - "dependencies": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "node_modules/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, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", - "dev": true, - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, - "@bufbuild/buf": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf/-/buf-1.26.1.tgz", - "integrity": "sha512-NyYx4T//3ndtFYV3BfqX9Xrm1NZEx3eChXniAKc/osCVViFooC5nuLQUbyqglMonH0w39RohiURMXN+e/oEB4g==", - "dev": true, - "requires": { - "@bufbuild/buf-darwin-arm64": "1.26.1", - "@bufbuild/buf-darwin-x64": "1.26.1", - "@bufbuild/buf-linux-aarch64": "1.26.1", - "@bufbuild/buf-linux-x64": "1.26.1", - "@bufbuild/buf-win32-arm64": "1.26.1", - "@bufbuild/buf-win32-x64": "1.26.1" - } - }, - "@bufbuild/buf-darwin-arm64": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-darwin-arm64/-/buf-darwin-arm64-1.26.1.tgz", - "integrity": "sha512-nmyWiT/59RFja0ZuXFxjNGoAMDPTApU66CZUUevkFVWbNB9nzeQDjx2vsJyACY64k5fTgZiaelSiyppwObQknw==", - "dev": true, - "optional": true - }, - "@bufbuild/buf-darwin-x64": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-darwin-x64/-/buf-darwin-x64-1.26.1.tgz", - "integrity": "sha512-jl5WmUv30OW8JiRLid9+mVx1XVH0XttpUfkQfmqDFdUHGfdy4XWYK8kr84YyWu0SiMTIt1mPXkqG5UM3x+tdIQ==", - "dev": true, - "optional": true - }, - "@bufbuild/buf-linux-aarch64": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-linux-aarch64/-/buf-linux-aarch64-1.26.1.tgz", - "integrity": "sha512-EedR2KDW/yDIxQKWuq1Y/g7IuwTgvelqylGVO7muMxt2JWShobyUaU6GIU8JB4yhIbqRQYCL2KqBsvDJbJtCUw==", - "dev": true, - "optional": true - }, - "@bufbuild/buf-linux-x64": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-linux-x64/-/buf-linux-x64-1.26.1.tgz", - "integrity": "sha512-5iFL+MmWqR4cBLVNpgsjRecdHgcTxFaIkVYlQV9q8acbaJn5rgOIjUr1tzcBao9YsL3rdBhHvKkgnQ9gi1IiTw==", - "dev": true, - "optional": true - }, - "@bufbuild/buf-win32-arm64": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-win32-arm64/-/buf-win32-arm64-1.26.1.tgz", - "integrity": "sha512-/ayymSD12gBetN98ErkH0CBGRLTmtYAp4fmbPuvq8zuJcL0eiAnK6d7ZFjTc+vDMuKY/aelQN7dj9WhzdYAQSQ==", - "dev": true, - "optional": true - }, - "@bufbuild/buf-win32-x64": { - "version": "1.26.1", - "resolved": "https://registry.npmjs.org/@bufbuild/buf-win32-x64/-/buf-win32-x64-1.26.1.tgz", - "integrity": "sha512-k9Dy3Z9P96wYR43lUhUo0jbjMSo001+MRBlsadEYiw85POqx6RWVaGyHLrxC2Ly7g+aGMisey050OjqfCWtKTA==", - "dev": true, - "optional": true - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@esbuild/android-arm": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.2.tgz", - "integrity": "sha512-tM8yLeYVe7pRyAu9VMi/Q7aunpLwD139EY1S99xbQkT4/q2qa6eA4ige/WJQYdJ8GBL1K33pPFhPfPdJ/WzT8Q==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.2.tgz", - "integrity": "sha512-lsB65vAbe90I/Qe10OjkmrdxSX4UJDjosDgb8sZUKcg3oefEuW2OT2Vozz8ef7wrJbMcmhvCC+hciF8jY/uAkw==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.2.tgz", - "integrity": "sha512-qK/TpmHt2M/Hg82WXHRc/W/2SGo/l1thtDHZWqFq7oi24AjZ4O/CpPSu6ZuYKFkEgmZlFoa7CooAyYmuvnaG8w==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.2.tgz", - "integrity": "sha512-Ora8JokrvrzEPEpZO18ZYXkH4asCdc1DLdcVy8TGf5eWtPO1Ie4WroEJzwI52ZGtpODy3+m0a2yEX9l+KUn0tA==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.2.tgz", - "integrity": "sha512-tP+B5UuIbbFMj2hQaUr6EALlHOIOmlLM2FK7jeFBobPy2ERdohI4Ka6ZFjZ1ZYsrHE/hZimGuU90jusRE0pwDw==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.2.tgz", - "integrity": "sha512-YbPY2kc0acfzL1VPVK6EnAlig4f+l8xmq36OZkU0jzBVHcOTyQDhnKQaLzZudNJQyymd9OqQezeaBgkTGdTGeQ==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.2.tgz", - "integrity": "sha512-nSO5uZT2clM6hosjWHAsS15hLrwCvIWx+b2e3lZ3MwbYSaXwvfO528OF+dLjas1g3bZonciivI8qKR/Hm7IWGw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.2.tgz", - "integrity": "sha512-Odalh8hICg7SOD7XCj0YLpYCEc+6mkoq63UnExDCiRA2wXEmGlK5JVrW50vZR9Qz4qkvqnHcpH+OFEggO3PgTg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.2.tgz", - "integrity": "sha512-ig2P7GeG//zWlU0AggA3pV1h5gdix0MA3wgB+NsnBXViwiGgY77fuN9Wr5uoCrs2YzaYfogXgsWZbm+HGr09xg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.2.tgz", - "integrity": "sha512-mLfp0ziRPOLSTek0Gd9T5B8AtzKAkoZE70fneiiyPlSnUKKI4lp+mGEnQXcQEHLJAcIYDPSyBvsUbKUG2ri/XQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.2.tgz", - "integrity": "sha512-hn28+JNDTxxCpnYjdDYVMNTR3SKavyLlCHHkufHV91fkewpIyQchS1d8wSbmXhs1fiYDpNww8KTFlJ1dHsxeSw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.2.tgz", - "integrity": "sha512-KbXaC0Sejt7vD2fEgPoIKb6nxkfYW9OmFUK9XQE4//PvGIxNIfPk1NmlHmMg6f25x57rpmEFrn1OotASYIAaTg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.2.tgz", - "integrity": "sha512-dJ0kE8KTqbiHtA3Fc/zn7lCd7pqVr4JcT0JqOnbj4LLzYnp+7h8Qi4yjfq42ZlHfhOCM42rBh0EwHYLL6LEzcw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.2.tgz", - "integrity": "sha512-7Z/jKNFufZ/bbu4INqqCN6DDlrmOTmdw6D0gH+6Y7auok2r02Ur661qPuXidPOJ+FSgbEeQnnAGgsVynfLuOEw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.2.tgz", - "integrity": "sha512-U+RinR6aXXABFCcAY4gSlv4CL1oOVvSSCdseQmGO66H+XyuQGZIUdhG56SZaDJQcLmrSfRmx5XZOWyCJPRqS7g==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.2.tgz", - "integrity": "sha512-oxzHTEv6VPm3XXNaHPyUTTte+3wGv7qVQtqaZCrgstI16gCuhNOtBXLEBkBREP57YTd68P0VgDgG73jSD8bwXQ==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.2.tgz", - "integrity": "sha512-WNa5zZk1XpTTwMDompZmvQLHszDDDN7lYjEHCUmAGB83Bgs20EMs7ICD+oKeT6xt4phV4NDdSi/8OfjPbSbZfQ==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.2.tgz", - "integrity": "sha512-S6kI1aT3S++Dedb7vxIuUOb3oAxqxk2Rh5rOXOTYnzN8JzW1VzBd+IqPiSpgitu45042SYD3HCoEyhLKQcDFDw==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.2.tgz", - "integrity": "sha512-VXSSMsmb+Z8LbsQGcBMiM+fYObDNRm8p7tkUDMPG/g4fhFX5DEFmjxIEa3N8Zr96SjsJ1woAhF0DUnS3MF3ARw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.2.tgz", - "integrity": "sha512-5NayUlSAyb5PQYFAU9x3bHdsqB88RC3aM9lKDAz4X1mo/EchMIT1Q+pSeBXNgkfNmRecLXA0O8xP+x8V+g/LKg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.2.tgz", - "integrity": "sha512-47gL/ek1v36iN0wL9L4Q2MFdujR0poLZMJwhO2/N3gA89jgHp4MR8DKCmwYtGNksbfJb9JoTtbkoe6sDhg2QTA==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.2.tgz", - "integrity": "sha512-tcuhV7ncXBqbt/Ybf0IyrMcwVOAPDckMK9rXNHtF17UTK18OKLpg08glminN06pt2WCoALhXdLfSPbVvK/6fxw==", - "dev": true, - "optional": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.7.0.tgz", - "integrity": "sha512-+HencqxU7CFJnQb7IKtuNBqS6Yx3Tz4kOL8BJXo+JyeiBm5MEX6pO8onXDkjrkCRlfYXS1Axro15ZjVFe9YgsA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "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==", - "dev": true - } - } - }, - "@eslint/js": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.47.0.tgz", - "integrity": "sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@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==", - "dev": true, - "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==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@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": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "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": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "@restatedev/restate-sdk": { - "version": "1.0.37", - "resolved": "https://npm.pkg.github.com/download/@restatedev/restate-sdk/1.0.37/950b2da91c86ba1b1f64aedaa1d125afdf489aa9", - "integrity": "sha512-PBHBKqjtaAyvCW7lQT9kNSG2x05ELjkf0d3m9gJ/7+XXOdTJFHChoXIbY6dPf2yDlcc4ye7wvZCW74hxPh8yOg==", - "requires": { - "protobufjs": "^7.2.2", - "ts-proto": "^1.140.0" - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true - }, - "@types/node": { - "version": "20.4.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz", - "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==" - }, - "@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true - }, - "@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==", - "dev": true - }, - "@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.1.tgz", - "integrity": "sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.4.1", - "@typescript-eslint/type-utils": "6.4.1", - "@typescript-eslint/utils": "6.4.1", - "@typescript-eslint/visitor-keys": "6.4.1", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/parser": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.4.1.tgz", - "integrity": "sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "6.4.1", - "@typescript-eslint/types": "6.4.1", - "@typescript-eslint/typescript-estree": "6.4.1", - "@typescript-eslint/visitor-keys": "6.4.1", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.4.1.tgz", - "integrity": "sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.4.1", - "@typescript-eslint/visitor-keys": "6.4.1" - } - }, - "@typescript-eslint/type-utils": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.4.1.tgz", - "integrity": "sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "6.4.1", - "@typescript-eslint/utils": "6.4.1", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/types": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.4.1.tgz", - "integrity": "sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz", - "integrity": "sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.4.1", - "@typescript-eslint/visitor-keys": "6.4.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - } - }, - "@typescript-eslint/utils": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.4.1.tgz", - "integrity": "sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.4.1", - "@typescript-eslint/types": "6.4.1", - "@typescript-eslint/typescript-estree": "6.4.1", - "semver": "^7.5.4" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.1.tgz", - "integrity": "sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.4.1", - "eslint-visitor-keys": "^3.4.1" - } - }, - "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "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" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "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" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "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 - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "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 - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "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" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "case-anything": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz", - "integrity": "sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "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" - } - }, - "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 - }, - "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" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "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" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "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" - } - }, - "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" - } - }, - "dprint-node": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.7.tgz", - "integrity": "sha512-NTZOW9A7ipb0n7z7nC3wftvsbceircwVHSgzobJsEQa+7RnOMbhrfX5IflA6CtC4GA63DSAiHYXa4JKEy9F7cA==", - "requires": { - "detect-libc": "^1.0.3" - } - }, - "dynamic-dedupe": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz", - "integrity": "sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==", - "dev": true, - "requires": { - "xtend": "^4.0.0" - } - }, - "esbuild": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.2.tgz", - "integrity": "sha512-G6hPax8UbFakEj3hWO0Vs52LQ8k3lnBhxZWomUJDxfz3rZTLqF5k/FCzuNdLx2RbpBiQQF9H9onlDDH1lZsnjg==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.19.2", - "@esbuild/android-arm64": "0.19.2", - "@esbuild/android-x64": "0.19.2", - "@esbuild/darwin-arm64": "0.19.2", - "@esbuild/darwin-x64": "0.19.2", - "@esbuild/freebsd-arm64": "0.19.2", - "@esbuild/freebsd-x64": "0.19.2", - "@esbuild/linux-arm": "0.19.2", - "@esbuild/linux-arm64": "0.19.2", - "@esbuild/linux-ia32": "0.19.2", - "@esbuild/linux-loong64": "0.19.2", - "@esbuild/linux-mips64el": "0.19.2", - "@esbuild/linux-ppc64": "0.19.2", - "@esbuild/linux-riscv64": "0.19.2", - "@esbuild/linux-s390x": "0.19.2", - "@esbuild/linux-x64": "0.19.2", - "@esbuild/netbsd-x64": "0.19.2", - "@esbuild/openbsd-x64": "0.19.2", - "@esbuild/sunos-x64": "0.19.2", - "@esbuild/win32-arm64": "0.19.2", - "@esbuild/win32-ia32": "0.19.2", - "@esbuild/win32-x64": "0.19.2" - } - }, - "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 - }, - "eslint": { - "version": "8.47.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz", - "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "^8.47.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } - } - }, - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "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" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-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-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "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==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "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==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "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==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "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" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "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" - } - }, - "globals": { - "version": "13.21.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", - "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.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 - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-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-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "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": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "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 - }, - "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 - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-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-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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "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" - } - }, - "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==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "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 - }, - "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "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-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "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.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "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==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "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==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "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" - } - }, - "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "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 - }, - "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 - }, - "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 - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "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 - }, - "prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true - }, - "protobufjs": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz", - "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==", - "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/node": ">=13.7.0", - "long": "^5.0.0" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "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" - } - }, - "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "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 - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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 - }, - "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.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "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": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "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" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "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" - } - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, - "ts-api-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.2.tgz", - "integrity": "sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==", - "dev": true, - "requires": {} - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "ts-node-dev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-2.0.0.tgz", - "integrity": "sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==", - "dev": true, - "requires": { - "chokidar": "^3.5.1", - "dynamic-dedupe": "^0.3.0", - "minimist": "^1.2.6", - "mkdirp": "^1.0.4", - "resolve": "^1.0.0", - "rimraf": "^2.6.1", - "source-map-support": "^0.5.12", - "tree-kill": "^1.2.2", - "ts-node": "^10.4.0", - "tsconfig": "^7.0.0" - } - }, - "ts-poet": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.5.0.tgz", - "integrity": "sha512-44jURLT1HG6+NsDcadM826V6Ekux+wk07Go+MX5Gfx+8zcPKfUiFEtnjL9imuRVGSCRtloRLqw4bDGZVJYGZMQ==", - "requires": { - "dprint-node": "^1.0.7" - } - }, - "ts-proto": { - "version": "1.156.2", - "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.156.2.tgz", - "integrity": "sha512-0ZAbGmfvB2R79QJfpTIk56T8xM4k9ZS+z77517HDpuFZFizCMceCIE3IhdYQWbmP1oSYLzw0AeVbVHi2PIigKQ==", - "requires": { - "case-anything": "^2.1.13", - "protobufjs": "^7.2.4", - "ts-poet": "^6.5.0", - "ts-proto-descriptors": "1.15.0" - } - }, - "ts-proto-descriptors": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.15.0.tgz", - "integrity": "sha512-TYyJ7+H+7Jsqawdv+mfsEpZPTIj9siDHS6EMCzG/z3b/PZiphsX+mWtqFfFVe5/N0Th6V3elK9lQqjnrgTOfrg==", - "requires": { - "long": "^5.2.3", - "protobufjs": "^7.2.4" - } - }, - "tsconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", - "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", - "dev": true, - "requires": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "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-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 - }, - "typescript": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", - "dev": true, - "peer": true - }, - "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" - } - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "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" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "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==", - "dev": true - } - } -} diff --git a/typescript/food-ordering/services/package.json b/typescript/food-ordering/services/package.json deleted file mode 100644 index 71403332..00000000 --- a/typescript/food-ordering/services/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "@restatedev/example-food-ordering", - "version": "0.0.1", - "description": "An example application which uses Awakeables and side effects to integrate with external services.", - "main": "app.js", - "type": "commonjs", - "license": "MIT", - "author": "Restate developers", - "email": "code@restate.dev", - "private": true, - "scripts": { - "lint": "eslint --ignore-path .eslintignore --ext .ts .", - "format": "prettier --ignore-path .eslintignore --write \"**/*.+(js|ts|json)\"", - "verify": "npm run format -- --check && npm run lint && npm run build", - "build": "tsc --noEmitOnError", - "app": "RESTATE_DEBUG_LOGGING=JOURNAL node ./dist/app.js", - "dev": "RESTATE_DEBUG_LOGGING=JOURNAL ts-node-dev --respawn --transpile-only ./src/app.ts", - "prebundle": "rm -rf ../dist", - "bundle": "esbuild src/app.ts --bundle --minify --sourcemap --platform=node --target=es2020 --outfile=dist/index.js", - "postbundle": "cd ../dist && zip -r index.zip index.js*" - }, - "dependencies": { - "@restatedev/restate-sdk": "^0.6.0", - "axios": "^1.4.0" - }, - "devDependencies": { - "@typescript-eslint/eslint-plugin": "^6.3.0", - "@typescript-eslint/parser": "^6.3.0", - "esbuild": "^0.19.0", - "eslint": "^8.46.0", - "prettier": "^2.8.4", - "ts-node-dev": "^2.0.0", - "typescript": "^5.1.6" - } -} diff --git a/typescript/food-ordering/services/src/app.ts b/typescript/food-ordering/services/src/app.ts deleted file mode 100644 index fca7f246..00000000 --- a/typescript/food-ordering/services/src/app.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2023 - Restate Software, Inc., Restate GmbH - * - * This file is part of the Restate Examples for the Node.js/TypeScript SDK, - * which is released under the MIT license. - * - * You can find a copy of the license in the file LICENSE - * in the root directory of this repository or package or at - * https://github.com/restatedev/examples/blob/main/LICENSE - */ - -import * as restate from "@restatedev/restate-sdk"; - -import { orderApi, orderService } from "./order_service"; - -restate.createServer().bindKeyedRouter(orderApi.path, orderService).listen(); diff --git a/typescript/food-ordering/services/src/auxiliary/delivery_provider_api_client.ts b/typescript/food-ordering/services/src/auxiliary/delivery_provider_api_client.ts deleted file mode 100644 index 4831f4f4..00000000 --- a/typescript/food-ordering/services/src/auxiliary/delivery_provider_api_client.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2023 - Restate Software, Inc., Restate GmbH - * - * This file is part of the Restate Examples for the Node.js/TypeScript SDK, - * which is released under the MIT license. - * - * You can find a copy of the license in the file LICENSE - * in the root directory of this repository or package or at - * https://github.com/restatedev/examples/blob/main/LICENSE - */ - -export class DeliveryProviderApiClient { - requestOrderDelivery(orderId: string) { - console.info(`Schedule order ${orderId} for delivery`); - } -} diff --git a/typescript/food-ordering/services/src/order_service.ts b/typescript/food-ordering/services/src/order_service.ts deleted file mode 100644 index 9ba0e4ed..00000000 --- a/typescript/food-ordering/services/src/order_service.ts +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (c) 2023 - Restate Software, Inc., Restate GmbH - * - * This file is part of the Restate Examples for the Node.js/TypeScript SDK, - * which is released under the MIT license. - * - * You can find a copy of the license in the file LICENSE - * in the root directory of this repository or package or at - * https://github.com/restatedev/examples/blob/main/LICENSE - */ - -import * as restate from "@restatedev/restate-sdk"; -import { Order, OrderStatus } from "./types/types"; -import { DeliveryProviderApiClient } from "./auxiliary/delivery_provider_api_client"; -import axios from "axios"; - -const STATUS = "status"; -const POS_ENDPOINT = process.env.POS_ENDPOINT || "http://localhost:5050"; -const deliveryProviderApiClient = new DeliveryProviderApiClient(); - -const createOrder = async ( - ctx: restate.RpcContext, - orderId: string, - order: Order -) => { - // Use sideEffects to call the external service so that the call can be replayed w/o - // calling the external service again. - const restaurantOpen = await ctx.sideEffect( - async () => - ( - await axios.get(`${POS_ENDPOINT}/opening-hours/${order.restaurantId}`) - ).data - ); - - if (restaurantOpen) { - ctx.set(STATUS, OrderStatus.ACCEPTED); - - // Use sideEffects to call external service so that it can be replayed w/o - // calling the external service again. Idempotency is provided by the orderId - await ctx.sideEffect(async () => { - await axios.post(`${POS_ENDPOINT}/create`, { - orderId: orderId, - order: order, - }); - }); - - // Schedule the prepare order request based on the desired delivery delay - ctx.sendDelayed(orderApi, order.deliveryDelay).prepareOrder(orderId); - - return true; - } else { - ctx.set(STATUS, OrderStatus.REJECTED); - return false; - } -}; - -const prepareOrder = async (ctx: restate.RpcContext, orderId: string) => { - const currentStatus = await ctx.get(STATUS); - - if (currentStatus === OrderStatus.ACCEPTED) { - ctx.set(STATUS, OrderStatus.PROCESSING); - - // Create an awakeable (persistent promise) which can be resolved by an external system. - // In order to resolve the promise, the external system needs the awakeable id. - const orderPreparationAwakeable = ctx.awakeable(); - - // Trigger the asynchronous order preparation whose completion will be awaited on. - // The point of sales service will resolve the promise once the preparation is complete. - // Idempotency is provided by the orderId. - await ctx.sideEffect(async () => { - await axios.post(`${POS_ENDPOINT}/prepare`, { - awakeableId: orderPreparationAwakeable.id, // include so that POS is able to resolve the awakeable - orderId: orderId, - }); - }); - - // Wait for the restaurant to notify us that the order is prepared. - // This promise gets resolved when the point of sales service completes the - // preparation and notifies Restate. Check the prepare handler in - // @restatedev/example-food-ordering-pos-server for more details. - await orderPreparationAwakeable.promise; - - ctx.set(STATUS, OrderStatus.PREPARED); - - // Tell the delivery provider to deliver the order. In order to make this call replayable - // w/o calling the service again it is wrapped in a sideEffect. Idempotency is provided - // by the orderId. - await ctx.sideEffect(async () => - deliveryProviderApiClient.requestOrderDelivery(orderId) - ); - } -}; - -const cancelOrder = async (ctx: restate.RpcContext, orderId: string) => { - const currentStatus = await ctx.get(STATUS); - - // You can only cancel an order that is not yet being prepared or canceled - if (currentStatus === OrderStatus.ACCEPTED) { - ctx.set(STATUS, OrderStatus.CANCELED); - - // Notify the restaurant; cancel the order in their POS system. In order to make the call - // replayable w/o calling the serivce again, it is wrapped in a sideEffect. Idempotency is - // provided by the orderId. - await ctx.sideEffect(async () => { - await axios.post(`${POS_ENDPOINT}/cancel`, { orderId: orderId }); - }); - - return true; - } else { - return false; - } -}; - -const getOrderStatus = async (ctx: restate.RpcContext, _orderId: string) => { - const status = (await ctx.get(STATUS)) ?? OrderStatus.UNKNOWN; - return OrderStatus[status]; -}; - -export const orderService = restate.keyedRouter({ - createOrder, - prepareOrder, - cancelOrder, - getOrderStatus, -}); - -export const orderApi: restate.ServiceApi = { - path: "OrderService", -}; diff --git a/typescript/food-ordering/services/src/types/types.ts b/typescript/food-ordering/services/src/types/types.ts deleted file mode 100644 index 0ef6aec6..00000000 --- a/typescript/food-ordering/services/src/types/types.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2023 - Restate Software, Inc., Restate GmbH - * - * This file is part of the Restate Examples for the Node.js/TypeScript SDK, - * which is released under the MIT license. - * - * You can find a copy of the license in the file LICENSE - * in the root directory of this repository or package or at - * https://github.com/restatedev/examples/blob/main/LICENSE - */ - -export interface Order { - restaurantId: string; - deliveryDelay: number; - items: OrderItem[]; -} - -export interface OrderItem { - productName: string; - quantity: number; -} - -export enum OrderStatus { - UNKNOWN, - ACCEPTED, - PROCESSING, - PREPARED, - REJECTED, - CANCELED, -} diff --git a/typescript/food-ordering/services/tsconfig.json b/typescript/food-ordering/services/tsconfig.json deleted file mode 100644 index 26a8776a..00000000 --- a/typescript/food-ordering/services/tsconfig.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "esnext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "commonjs" /* Specify what module code is generated. */, - // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ - // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ - // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ - // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - "allowJs": true /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */, - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */, - "declarationMap": true /* Create sourcemaps for d.ts files. */, - "sourceMap": true /* Create source map files for emitted JavaScript files. */, - "outDir": "./dist" /* Specify an output folder for all emitted files. */, - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - "allowSyntheticDefaultImports": true /* Allow 'import x from y' when a module doesn't have a default export. */, - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - - /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */, - "skipDefaultLibCheck": true /* Skip type checking .d.ts files that are included with TypeScript. */ - } -} diff --git a/typescript/food-ordering/webui/.commitlintrc.js b/typescript/food-ordering/webui/.commitlintrc.js new file mode 100644 index 00000000..422b1944 --- /dev/null +++ b/typescript/food-ordering/webui/.commitlintrc.js @@ -0,0 +1 @@ +module.exports = { extends: ['@commitlint/config-conventional'] }; diff --git a/typescript/food-ordering/webui/.dockerignore b/typescript/food-ordering/webui/.dockerignore new file mode 100644 index 00000000..0cdf3fc8 --- /dev/null +++ b/typescript/food-ordering/webui/.dockerignore @@ -0,0 +1,5 @@ +.idea +node_modules +build +.dockerignore +Dockerfile diff --git a/typescript/food-ordering/webui/.editorconfig b/typescript/food-ordering/webui/.editorconfig new file mode 100644 index 00000000..74fb9e0b --- /dev/null +++ b/typescript/food-ordering/webui/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +end_of_line = lf diff --git a/typescript/food-ordering/webui/.gitignore b/typescript/food-ordering/webui/.gitignore new file mode 100644 index 00000000..f2754230 --- /dev/null +++ b/typescript/food-ordering/webui/.gitignore @@ -0,0 +1,28 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. +.idea +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.vercel +/.idea/ + +# Local Netlify folder +.netlify diff --git a/typescript/food-ordering/webui/.nvmrc b/typescript/food-ordering/webui/.nvmrc new file mode 100644 index 00000000..17de732a --- /dev/null +++ b/typescript/food-ordering/webui/.nvmrc @@ -0,0 +1 @@ +v14.17.3 \ No newline at end of file diff --git a/typescript/food-ordering/webui/.prettierrc b/typescript/food-ordering/webui/.prettierrc new file mode 100644 index 00000000..2ddc9656 --- /dev/null +++ b/typescript/food-ordering/webui/.prettierrc @@ -0,0 +1,4 @@ +{ + "singleQuote": true, + "printWidth": 80 +} diff --git a/typescript/food-ordering/webui/Dockerfile b/typescript/food-ordering/webui/Dockerfile new file mode 100644 index 00000000..54195a95 --- /dev/null +++ b/typescript/food-ordering/webui/Dockerfile @@ -0,0 +1,20 @@ +# pull official base image +FROM node:14.17.3-alpine + +# set working directory +WORKDIR /app + +# add `/node_modules/.bin` to $PATH +ENV PATH /node_modules/.bin:$PATH + +# install app dependencies +COPY package.json ./ +COPY package-lock.json ./ +RUN npm install + +# add app +COPY . ./ + +EXPOSE 3000 +# start app +CMD ["npm", "start"] diff --git a/typescript/food-ordering/webui/README.md b/typescript/food-ordering/webui/README.md new file mode 100644 index 00000000..fced2e78 --- /dev/null +++ b/typescript/food-ordering/webui/README.md @@ -0,0 +1,45 @@ +# Shopping cart application + +A React application that implements a webshop. This is implemented as a Jamstack front-end, +so requests go straight from the browser to Restate (via API gateway or reversed proxy). + +## Requirements + +- Node.js +- NPM + +## Running locally + +First, Install the needed packages + +```shell +npm install +``` + +Then start the React app with: + +```shell +npm start +``` + +## Building the Docker image + +You can build a Docker image by executing: + +```shell +docker build -t dev.local/shopping-cart/react-app:0.0.1 . +``` + +## Running on Vercel + +If you have the Vercel CLI installed and are logged in. You can deploy the app by executing: + +```shell +vercel +``` + +And following the prompted instructions. + +## Attribution + +We based this implementation on the MIT Licensed repository here: https://github.com/jeffersonRibeiro/react-shopping-cart. diff --git a/typescript/food-ordering/webui/babel-plugin-macros.config.js b/typescript/food-ordering/webui/babel-plugin-macros.config.js new file mode 100644 index 00000000..e9a231f9 --- /dev/null +++ b/typescript/food-ordering/webui/babel-plugin-macros.config.js @@ -0,0 +1,11 @@ +const isProduction = process.env.NODE_ENV === 'production'; + +module.exports = { + styledComponents: { + pure: true, + meaninglessFileNames: ['index', 'style'], + displayName: !isProduction, + }, + + isProduction: isProduction, +}; diff --git a/typescript/food-ordering/webui/package-lock.json b/typescript/food-ordering/webui/package-lock.json new file mode 100644 index 00000000..3a87d844 --- /dev/null +++ b/typescript/food-ordering/webui/package-lock.json @@ -0,0 +1,28379 @@ +{ + "name": "@restatedev/example-ecommerce-store-react-shopping-cart", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@restatedev/example-ecommerce-store-react-shopping-cart", + "version": "0.1.0", + "dependencies": { + "axios": "^0.26.0", + "react": "^18.0.0", + "react-dom": "^18.0.0", + "react-scripts": "^5.0.0", + "react-spinners": "^0.13.8", + "react-twitter-widgets": "^1.11.0", + "styled-components": "^5.3.3", + "typescript": "^4.6.3", + "unique-names-generator": "^4.7.1", + "uuid": "^8.3.2" + }, + "devDependencies": { + "@testing-library/jest-dom": "^5.16.2", + "@testing-library/react": "^13.0.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.4.1", + "@types/node": "^16.11.25", + "@types/react": "^17.0.43", + "@types/react-dom": "^17.0.14", + "@types/styled-components": "^5.1.23", + "@types/uuid": "^8.3.4", + "prettier": "^2.5.1" + }, + "engines": { + "node": "14.17.3" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@apideck/better-ajv-errors": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", + "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/generator": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/parser": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "dependencies": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/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==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/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==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", + "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", + "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dependencies": { + "@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" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", + "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", + "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", + "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "dependencies": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", + "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", + "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", + "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-flow": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", + "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", + "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz", + "integrity": "sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", + "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", + "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", + "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", + "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", + "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dependencies": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@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-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dependencies": { + "@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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", + "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-react-display-name": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", + "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", + "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz", + "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==", + "dependencies": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz", + "integrity": "sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", + "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", + "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", + "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz", + "integrity": "sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", + "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz", + "integrity": "sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + }, + "node_modules/@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "node_modules/@eslint/eslintrc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "node_modules/@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==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/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==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", + "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.8.1", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <3.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.1.tgz", + "integrity": "sha512-BUyKJGdDWqvWC5GEhyOiUrGNi9iJUr4CU0O2WxJL6QJhHeeA/NVBalH+FeK0r/x/W0rPymXt5s78TDS7d6lCwg==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.12.0.tgz", + "integrity": "sha512-rBrJk5WjI02X1edtiUcZhgyhgBhiut96r5Jp8J5qktKdcvLcZpKDW8i2hkGMMItxrghjXuQ5AM6aE0imnFawaw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.16.2", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz", + "integrity": "sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "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" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@testing-library/jest-dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.0.0.tgz", + "integrity": "sha512-p0lYA1M7uoEmk2LnCbZLGmHJHyH59sAaZVXChTXlyhV/PRW9LoIh4mdf7tiXsO8BoNG+vN8UnFJff1hbZeXv+w==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "*" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", + "dev": true + }, + "node_modules/@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@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==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dev": true, + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "node_modules/@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==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@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==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "27.4.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz", + "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==", + "dev": true, + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "node_modules/@types/node": { + "version": "16.11.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.25.tgz", + "integrity": "sha512-NrTwfD7L1RTc2qrHQD4RTTy4p0CO2LatKBEKEds3CaVuhoM/+DJzmWZl5f+ikR8cm8F5mfJxK+9rQq07gRiSjQ==" + }, + "node_modules/@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==" + }, + "node_modules/@types/prettier": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", + "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==", + "dev": true + }, + "node_modules/@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "node_modules/@types/react": { + "version": "17.0.43", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz", + "integrity": "sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "17.0.14", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.14.tgz", + "integrity": "sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@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==" + }, + "node_modules/@types/styled-components": { + "version": "5.1.23", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.23.tgz", + "integrity": "sha512-zt8oQGU6XB4LH1Xpq169YnAVmt22+swzHJvyKMyTZu/z8+afvgKjjg0s79aAodgNSf36ZOEG6DyVAW/JhLH2Nw==", + "dev": true, + "dependencies": { + "@types/hoist-non-react-statics": "*", + "@types/react": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.2.tgz", + "integrity": "sha512-vehbtyHUShPxIa9SioxDwCvgxukDMH//icJG90sXQBUm5lJOHLT5kNeU9tnivhnA/TkOFMzGIXN2cTc4hY8/kg==", + "dev": true, + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", + "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", + "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz", + "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/type-utils": "5.17.0", + "@typescript-eslint/utils": "5.17.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.17.0.tgz", + "integrity": "sha512-U4sM5z0/ymSYqQT6I7lz8l0ZZ9zrya5VIwrwAP5WOJVabVtVsIpTMxPQe+D3qLyePT+VlETUTO2nA1+PufPx9Q==", + "dependencies": { + "@typescript-eslint/utils": "5.17.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz", + "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", + "debug": "^4.3.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", + "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", + "dependencies": { + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz", + "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==", + "dependencies": { + "@typescript-eslint/utils": "5.17.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", + "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", + "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", + "dependencies": { + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", + "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/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==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", + "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", + "dependencies": { + "@typescript-eslint/types": "5.17.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/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==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/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==", + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/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==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", + "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/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==", + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "node_modules/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=" + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/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==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", + "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001317", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axe-core": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", + "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.0.tgz", + "integrity": "sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "node_modules/axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", + "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/babel-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/babel-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/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==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-styled-components": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.5.tgz", + "integrity": "sha512-A7kfST5odbf8Ev42OQbj5teEiT8DskpRoQ/iPYePLLdcTCAsodpYKqtoy4SJthpsGzQKc2vvnrtlUgdmJq6WKQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11", + "picomatch": "^2.3.0" + }, + "peerDependencies": { + "styled-components": ">= 2" + } + }, + "node_modules/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=" + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "node_modules/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==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "node_modules/bfj": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", + "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "dependencies": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==" + }, + "node_modules/browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + }, + "node_modules/builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camel-case/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001323", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001323.tgz", + "integrity": "sha512-e4BF2RlCVELKx8+RmklSEIVub1TWrmdhvA5kEUueummz1XyySW0DVk+3x9HyhU9MuWTa2BhqLgEuEmUwASAdCA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "engines": { + "node": ">=10" + } + }, + "node_modules/charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/check-types": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", + "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.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" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + }, + "node_modules/clean-css": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", + "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/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==" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/core-js": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", + "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", + "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "dependencies": { + "browserslist": "^4.19.1", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-js-pure": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", + "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", + "deprecated": "core-js-pure@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js-pure.", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", + "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "node_modules/css-to-react-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", + "dev": true + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssdb": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz", + "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.5.tgz", + "integrity": "sha512-VZO1e+bRRVixMeia1zKagrv0lLN1B/r/u12STGNNUFxnp97LIFgZHQa0JxqlwEkvzUyA9Oz/WnCTAFkdEbONmg==", + "dependencies": { + "cssnano-preset-default": "^5.2.5", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.5.tgz", + "integrity": "sha512-WopL7PzN7sos3X8B54/QGl+CZUh1f0qN4ds+y2d5EPwRSSc3jsitVw81O+Uyop0pXyOfPfZxnc+LmA8w/Ki/WQ==", + "dependencies": { + "css-declaration-sorter": "^6.0.3", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.0", + "postcss-discard-comments": "^5.1.1", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.3", + "postcss-merge-rules": "^5.1.1", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.2", + "postcss-minify-selectors": "^5.2.0", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/csstype": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", + "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==", + "dev": true + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + }, + "node_modules/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=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "node_modules/del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dependencies": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.12.tgz", + "integrity": "sha512-gQ2mON6fLWZeM8ubjzL7RtMeHS/g8hb82j4MjHmcQECD7pevWsMlhqwp9BjIRrQvmyJMMyv/XiO1cXzeFlUw4g==", + "dev": true + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domhandler/node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-case/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/ejs": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", + "dependencies": { + "jake": "^10.6.1" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.103", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz", + "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", + "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", + "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "dependencies": { + "stackframe": "^1.1.1" + } + }, + "node_modules/es-abstract": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz", + "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + }, + "node_modules/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==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", + "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", + "dependencies": { + "@eslint/eslintrc": "^1.2.1", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.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": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "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", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.0.tgz", + "integrity": "sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.2", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", + "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "dependencies": { + "@babel/runtime": "^7.16.3", + "aria-query": "^4.2.2", + "array-includes": "^3.1.4", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.3.5", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.7", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.2.1", + "language-tags": "^1.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", + "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz", + "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/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==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.2.0.tgz", + "integrity": "sha512-fYFH8lA1hbc1Epr9laNm/+YIR2d+R7WI8sFz9jIRAUfqCf21Nb5BzZwhNeZlu9wKXwDtuf+hUM5QJxG1PuDsTQ==", + "dependencies": { + "@typescript-eslint/utils": "^5.13.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/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==", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", + "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", + "dependencies": { + "@types/eslint": "^7.28.2", + "jest-worker": "^27.3.1", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/eslint/node_modules/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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "dependencies": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/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==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", + "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/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==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/finalhandler/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + }, + "node_modules/follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", + "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/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=" + }, + "node_modules/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==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/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==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/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==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/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==" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/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==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/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==", + "dependencies": { + "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" + } + }, + "node_modules/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==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/htmlparser2/node_modules/dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/htmlparser2/node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/htmlparser2/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/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==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", + "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/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==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/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==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", + "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.12", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz", + "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.8.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.4.tgz", + "integrity": "sha512-MtWeTkl1qGsWUtbl/Jsca/8xSoK3x0UmS82sNbjqxxG/de/M/3b1DntdjHgPMC50enlTNwXOCRqPXLLt5cCfZA==", + "dependencies": { + "async": "0.9.x", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.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.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz", + "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^27.0.0", + "jest-watcher": "^27.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-watch-typeahead/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest/node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/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==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dependencies": { + "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.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/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==" + }, + "node_modules/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=" + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", + "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "dependencies": { + "array-includes": "^3.1.3", + "object.assign": "^4.1.2" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/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==" + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/loadjs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loadjs/-/loadjs-4.2.0.tgz", + "integrity": "sha512-AgQGZisAlTPbTEzrHPb6q+NYBMD+DP9uvGSIjSUM5uG+0jG15cb8axWpxuOIqrmQjn6scaaH8JwloiP27b2KXA==" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "node_modules/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==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "node_modules/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==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lower-case/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/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==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/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==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/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==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", + "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/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==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + }, + "node_modules/nanoid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", + "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/no-case/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node_modules/node-releases": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/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==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "dependencies": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/param-case/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/pascal-case/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/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==" + }, + "node_modules/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=" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/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==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/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==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/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==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "engines": { + "node": ">=4" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/postcss": { + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.1", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", + "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.2" + }, + "peerDependencies": { + "postcss": "^8.0.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", + "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", + "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", + "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz", + "integrity": "sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", + "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.5", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.5.tgz", + "integrity": "sha512-FHbbB/hRo/7cxLGkc2NS7cDRIDN1oFqQnUKBiyh4b/gwk8DD8udvmRDpUhEK836kB8ggUCieHVOvZDnF9XhI3g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", + "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.2" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", + "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", + "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", + "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", + "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", + "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", + "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz", + "integrity": "sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz", + "integrity": "sha512-lX8GPGvZ0iGP/IboM7HXH5JwkXvXod1Rr8H8ixwiA372hArk0zP4ZcCy4z4Prg/bfNlbbTf0KCOjCF9kKnpP/w==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", + "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz", + "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==", + "dependencies": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", + "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", + "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "dependencies": { + "postcss-selector-parser": "^6.0.6" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.3.tgz", + "integrity": "sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", + "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", + "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dependencies": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", + "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", + "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", + "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz", + "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==", + "dependencies": { + "@csstools/postcss-color-function": "^1.0.3", + "@csstools/postcss-font-format-keywords": "^1.0.0", + "@csstools/postcss-hwb-function": "^1.0.0", + "@csstools/postcss-ic-unit": "^1.0.0", + "@csstools/postcss-is-pseudo-class": "^2.0.1", + "@csstools/postcss-normalize-display-values": "^1.0.0", + "@csstools/postcss-oklab-function": "^1.0.2", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "autoprefixer": "^10.4.4", + "browserslist": "^4.20.2", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^6.5.0", + "postcss-attribute-case-insensitive": "^5.0.0", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.2", + "postcss-color-hex-alpha": "^8.0.3", + "postcss-color-rebeccapurple": "^7.0.2", + "postcss-custom-media": "^8.0.0", + "postcss-custom-properties": "^12.1.5", + "postcss-custom-selectors": "^6.0.0", + "postcss-dir-pseudo-class": "^6.0.4", + "postcss-double-position-gradients": "^3.1.1", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.3", + "postcss-image-set-function": "^4.0.6", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.1.2", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.1.3", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.3", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.4", + "postcss-pseudo-class-any-link": "^7.1.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^5.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", + "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", + "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "dependencies": { + "balanced-match": "^1.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/css-what": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.0.1.tgz", + "integrity": "sha512-z93ZGFLNc6yaoXAmVhqoSIb+BduplteCt1fepvwhBUQK6MNE4g6fgjpuZKJKp0esUe+vXWlIkwZZjNWoOKw0ZA==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/postcss-svgo/node_modules/dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/postcss-svgo/node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/postcss-svgo/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/postcss-svgo/node_modules/nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/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==" + }, + "node_modules/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==" + }, + "node_modules/promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/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==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/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==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.0.tgz", + "integrity": "sha512-xBQkitdxozPxt1YZ9O1097EJiVpwHr9FoAuEVURCKV0Av8NBERovJauzP7bo1ThvuhZ4shsQ1AJiu4vQpoT1AQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.10", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/react-dev-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/react-dev-utils/node_modules/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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", + "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==" + }, + "node_modules/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==" + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-scripts": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.0.tgz", + "integrity": "sha512-3i0L2CyIlROz7mxETEdfif6Sfhh9Lfpzi10CtcGs1emDQStmZfWjJbAIMtRD0opVUjQuFWqHZyRZ9PPzKCFxWg==", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.0", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.0", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-spinners": { + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/react-spinners/-/react-spinners-0.13.8.tgz", + "integrity": "sha512-3e+k56lUkPj0vb5NDXPVFAOkPC//XyhKPJjvcGjyMNPWsBKpplfeyialP74G7H7+It7KzhtET+MvGqbKgAqpZA==", + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-twitter-widgets": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/react-twitter-widgets/-/react-twitter-widgets-1.11.0.tgz", + "integrity": "sha512-PMCLJQc30iqy01y1b2+HnMfCX+ZkOxWaPKJb4BhHgOgjSjoZb68K5T0nq3q+3YbX9K7OH0bhptgDihtBG/BqRQ==", + "dependencies": { + "loadjs": "^4.2.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "dependencies": { + "minimatch": "3.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/recursive-readdir/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/css-what": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.0.1.tgz", + "integrity": "sha512-z93ZGFLNc6yaoXAmVhqoSIb+BduplteCt1fepvwhBUQK6MNE4g6fgjpuZKJKp0esUe+vXWlIkwZZjNWoOKw0ZA==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.70.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", + "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "node_modules/selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/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=", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "node_modules/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==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", + "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", + "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/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, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/styled-components": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.3.tgz", + "integrity": "sha512-++4iHwBM7ZN+x6DtPPWkCI4vdtwumQ+inA/DdAsqYd4SVgUKJie5vXyzotA00ttcFdQkCng7zc6grwlfIfw+lw==", + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0", + "react-is": ">= 16.8.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dependencies": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tailwindcss": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", + "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", + "dependencies": { + "arg": "^5.0.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "cosmiconfig": "^7.0.1", + "detective": "^5.2.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "normalize-path": "^3.0.0", + "object-hash": "^2.2.0", + "postcss": "^8.4.6", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.0", + "postcss-nested": "5.0.6", + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "autoprefixer": "^10.0.2", + "postcss": "^8.0.9" + } + }, + "node_modules/tailwindcss/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/tailwindcss/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/tailwindcss/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/tailwindcss/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/tailwindcss/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tailwindcss/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", + "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "dependencies": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dependencies": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/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==" + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/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==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "node_modules/throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "node_modules/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=", + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/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==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-names-generator": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/unique-names-generator/-/unique-names-generator-4.7.1.tgz", + "integrity": "sha512-lMx9dX+KRmG8sq6gulYYpKWZc9RlGsgBR6aoO8Qsm3qvkSJ+3rAymr+TnV8EDMrIrwuFJ4kruzMWM/OpYzPoow==", + "engines": { + "node": ">=8" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/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==" + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/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==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.70.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", + "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.2", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", + "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", + "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.2.2", + "ansi-html-community": "^0.0.8", + "bonjour": "^3.5.0", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "del": "^6.0.0", + "express": "^4.17.1", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.0", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "strip-ansi": "^7.0.0", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/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==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/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==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "node_modules/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==" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/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==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.2.tgz", + "integrity": "sha512-EjG37LSMDJ1TFlFg56wx6YXbH4/NkG09B9OHvyxx+cGl2gP5OuOzsCY3rOPJSpbcz6jpuA40VIC3HzSD4OvE1g==", + "dependencies": { + "idb": "^6.1.4", + "workbox-core": "6.5.2" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.2.tgz", + "integrity": "sha512-DjJYraYnprTZE/AQNoeogaxI1dPuYmbw+ZJeeP8uXBSbg9SNv5wLYofQgywXeRepv4yr/vglMo9yaHUmBMc+4Q==", + "dependencies": { + "workbox-core": "6.5.2" + } + }, + "node_modules/workbox-build": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.2.tgz", + "integrity": "sha512-TVi4Otf6fgwikBeMpXF9n0awHfZTMNu/nwlMIT9W+c13yvxkmDFMPb7vHYK6RUmbcxwPnz4I/R+uL76+JxG4JQ==", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.5.2", + "workbox-broadcast-update": "6.5.2", + "workbox-cacheable-response": "6.5.2", + "workbox-core": "6.5.2", + "workbox-expiration": "6.5.2", + "workbox-google-analytics": "6.5.2", + "workbox-navigation-preload": "6.5.2", + "workbox-precaching": "6.5.2", + "workbox-range-requests": "6.5.2", + "workbox-recipes": "6.5.2", + "workbox-routing": "6.5.2", + "workbox-strategies": "6.5.2", + "workbox-streams": "6.5.2", + "workbox-sw": "6.5.2", + "workbox-window": "6.5.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/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==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/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==" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.2.tgz", + "integrity": "sha512-UnHGih6xqloV808T7ve1iNKZMbpML0jGLqkkmyXkJbZc5j16+HRSV61Qrh+tiq3E3yLvFMGJ3AUBODOPNLWpTg==", + "dependencies": { + "workbox-core": "6.5.2" + } + }, + "node_modules/workbox-core": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.2.tgz", + "integrity": "sha512-IlxLGQf+wJHCR+NM0UWqDh4xe/Gu6sg2i4tfZk6WIij34IVk9BdOQgi6WvqSHd879jbQIUgL2fBdJUJyAP5ypQ==" + }, + "node_modules/workbox-expiration": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.2.tgz", + "integrity": "sha512-5Hfp0uxTZJrgTiy9W7AjIIec+9uTOtnxY/tRBm4DbqcWKaWbVTa+izrKzzOT4MXRJJIJUmvRhWw4oo8tpmMouw==", + "dependencies": { + "idb": "^6.1.4", + "workbox-core": "6.5.2" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.2.tgz", + "integrity": "sha512-8SMar+N0xIreP5/2we3dwtN1FUmTMScoopL86aKdXBpio8vXc8Oqb5fCJG32ialjN8BAOzDqx/FnGeCtkIlyvw==", + "dependencies": { + "workbox-background-sync": "6.5.2", + "workbox-core": "6.5.2", + "workbox-routing": "6.5.2", + "workbox-strategies": "6.5.2" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.2.tgz", + "integrity": "sha512-iqDNWWMswjCsZuvGFDpcX1Z8InBVAlVBELJ28xShsWWntALzbtr0PXMnm2WHkXCc56JimmGldZi1N5yDPiTPOg==", + "dependencies": { + "workbox-core": "6.5.2" + } + }, + "node_modules/workbox-precaching": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.2.tgz", + "integrity": "sha512-OZAlQ8AAT20KugGKKuJMHdQ8X1IyNQaLv+mPTHj+8Dmv8peBq5uWNzs4g/1OSFmXsbXZ6a1CBC6YtQWVPhJQ9w==", + "dependencies": { + "workbox-core": "6.5.2", + "workbox-routing": "6.5.2", + "workbox-strategies": "6.5.2" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.2.tgz", + "integrity": "sha512-zi5VqF1mWqfCyJLTMXn1EuH/E6nisqWDK1VmOJ+TnjxGttaQrseOhMn+BMvULFHeF8AvrQ0ogfQ6bSv0rcfAlg==", + "dependencies": { + "workbox-core": "6.5.2" + } + }, + "node_modules/workbox-recipes": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.2.tgz", + "integrity": "sha512-2lcUKMYDiJKvuvRotOxLjH2z9K7jhj8GNUaHxHNkJYbTCUN3LsX1cWrsgeJFDZ/LgI565t3fntpbG9J415ZBXA==", + "dependencies": { + "workbox-cacheable-response": "6.5.2", + "workbox-core": "6.5.2", + "workbox-expiration": "6.5.2", + "workbox-precaching": "6.5.2", + "workbox-routing": "6.5.2", + "workbox-strategies": "6.5.2" + } + }, + "node_modules/workbox-routing": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.2.tgz", + "integrity": "sha512-nR1w5PjF6IVwo0SX3oE88LhmGFmTnqqU7zpGJQQPZiKJfEKgDENQIM9mh3L1ksdFd9Y3CZVkusopHfxQvit/BA==", + "dependencies": { + "workbox-core": "6.5.2" + } + }, + "node_modules/workbox-strategies": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.2.tgz", + "integrity": "sha512-fgbwaUMxbG39BHjJIs2y2X21C0bmf1Oq3vMQxJ1hr6y5JMJIm8rvKCcf1EIdAr+PjKdSk4ddmgyBQ4oO8be4Uw==", + "dependencies": { + "workbox-core": "6.5.2" + } + }, + "node_modules/workbox-streams": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.2.tgz", + "integrity": "sha512-ovD0P4UrgPtZ2Lfc/8E8teb1RqNOSZr+1ZPqLR6sGRZnKZviqKbQC3zVvvkhmOIwhWbpL7bQlWveLVONHjxd5w==", + "dependencies": { + "workbox-core": "6.5.2", + "workbox-routing": "6.5.2" + } + }, + "node_modules/workbox-sw": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.2.tgz", + "integrity": "sha512-2KhlYqtkoqlnPdllj2ujXUKRuEFsRDIp6rdE4l1PsxiFHRAFaRTisRQpGvRem5yxgXEr+fcEKiuZUW2r70KZaw==" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-StrJ7wKp5tZuGVcoKLVjFWlhDy+KT7ZWsKnNcD6F08wA9Cpt6JN+PLIrplcsTHbQpoAV8+xg6RvcG0oc9z+RpQ==", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.5.2" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.2.tgz", + "integrity": "sha512-2kZH37r9Wx8swjEOL4B8uGM53lakMxsKkQ7mOKzGA/QAn/DQTEZGrdHWtypk2tbhKY5S0jvPS+sYDnb2Z3378A==", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.5.2" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/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==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, + "@apideck/better-ajv-errors": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", + "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", + "requires": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + } + }, + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/compat-data": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==" + }, + "@babel/core": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/parser": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/eslint-parser": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", + "requires": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "dependencies": { + "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==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "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==" + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "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.17.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", + "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", + "requires": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "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.17.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", + "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "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-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "requires": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helper-replace-supers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "requires": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "requires": { + "@babel/types": "^7.17.0" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + }, + "@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "requires": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + } + }, + "@babel/helpers": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", + "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", + "requires": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" + } + }, + "@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", + "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", + "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.17.6", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", + "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "requires": { + "@babel/compat-data": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@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==", + "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-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@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-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.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", + "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@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==", + "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.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@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-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@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==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", + "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", + "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-flow": "^7.16.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "requires": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", + "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", + "requires": { + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", + "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "requires": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "requires": { + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz", + "integrity": "sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", + "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", + "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/types": "^7.17.0" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", + "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "requires": { + "@babel/plugin-transform-react-jsx": "^7.16.7" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", + "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", + "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.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.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", + "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "requires": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@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-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "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/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "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-react": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", + "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-react-display-name": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + } + }, + "@babel/preset-typescript": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", + "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.16.7" + } + }, + "@babel/runtime": { + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", + "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz", + "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==", + "requires": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/traverse": { + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.3", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "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==" + }, + "@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" + }, + "@csstools/postcss-color-function": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz", + "integrity": "sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-font-format-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", + "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-hwb-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", + "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-ic-unit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", + "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-is-pseudo-class": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz", + "integrity": "sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "@csstools/postcss-normalize-display-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", + "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-oklab-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz", + "integrity": "sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@eslint/eslintrc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.1", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "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" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "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" + } + }, + "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==" + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "@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==", + "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==" + }, + "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" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + } + } + }, + "@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==" + }, + "@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.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" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "requires": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + } + }, + "@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "requires": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + } + }, + "@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.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" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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" + } + } + } + }, + "@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "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==" + } + } + }, + "@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "requires": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + } + }, + "@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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" + } + } + } + }, + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "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": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", + "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", + "requires": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.8.1", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.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==" + } + } + }, + "@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + } + }, + "@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + } + }, + "@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + } + } + }, + "@rushstack/eslint-patch": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.1.tgz", + "integrity": "sha512-BUyKJGdDWqvWC5GEhyOiUrGNi9iJUr4CU0O2WxJL6QJhHeeA/NVBalH+FeK0r/x/W0rPymXt5s78TDS7d6lCwg==" + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "requires": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==" + }, + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==" + }, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==" + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==" + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==" + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==" + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==" + }, + "@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + } + }, + "@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "requires": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "requires": { + "@babel/types": "^7.12.6" + } + }, + "@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "requires": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + } + }, + "@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "requires": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + } + }, + "@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "requires": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + } + }, + "@testing-library/dom": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.12.0.tgz", + "integrity": "sha512-rBrJk5WjI02X1edtiUcZhgyhgBhiut96r5Jp8J5qktKdcvLcZpKDW8i2hkGMMItxrghjXuQ5AM6aE0imnFawaw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.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==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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" + } + } + } + }, + "@testing-library/jest-dom": { + "version": "5.16.2", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz", + "integrity": "sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug==", + "dev": true, + "requires": { + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "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": { + "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" + } + }, + "aria-query": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "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 + }, + "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": "13.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.0.0.tgz", + "integrity": "sha512-p0lYA1M7uoEmk2LnCbZLGmHJHyH59sAaZVXChTXlyhV/PRW9LoIh4mdf7tiXsO8BoNG+vN8UnFJff1hbZeXv+w==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "*" + } + }, + "@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "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==" + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" + }, + "@types/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "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.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/eslint": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + }, + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "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.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "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==", + "requires": { + "@types/node": "*" + } + }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "dev": true, + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "@types/http-proxy": { + "version": "1.17.8", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", + "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "@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.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "27.4.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz", + "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==", + "dev": true, + "requires": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + }, + "@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": "16.11.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.25.tgz", + "integrity": "sha512-NrTwfD7L1RTc2qrHQD4RTTy4p0CO2LatKBEKEds3CaVuhoM/+DJzmWZl5f+ikR8cm8F5mfJxK+9rQq07gRiSjQ==" + }, + "@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==" + }, + "@types/prettier": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", + "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==" + }, + "@types/prop-types": { + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==", + "dev": true + }, + "@types/q": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/react": { + "version": "17.0.43", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz", + "integrity": "sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "17.0.14", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.14.tgz", + "integrity": "sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "requires": { + "@types/node": "*" + } + }, + "@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "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==" + }, + "@types/styled-components": { + "version": "5.1.23", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.23.tgz", + "integrity": "sha512-zt8oQGU6XB4LH1Xpq169YnAVmt22+swzHJvyKMyTZu/z8+afvgKjjg0s79aAodgNSf36ZOEG6DyVAW/JhLH2Nw==", + "dev": true, + "requires": { + "@types/hoist-non-react-statics": "*", + "@types/react": "*", + "csstype": "^3.0.2" + } + }, + "@types/testing-library__jest-dom": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.2.tgz", + "integrity": "sha512-vehbtyHUShPxIa9SioxDwCvgxukDMH//icJG90sXQBUm5lJOHLT5kNeU9tnivhnA/TkOFMzGIXN2cTc4hY8/kg==", + "dev": true, + "requires": { + "@types/jest": "*" + } + }, + "@types/trusted-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", + "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" + }, + "@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "dev": true + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "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==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz", + "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==", + "requires": { + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/type-utils": "5.17.0", + "@typescript-eslint/utils": "5.17.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.17.0.tgz", + "integrity": "sha512-U4sM5z0/ymSYqQT6I7lz8l0ZZ9zrya5VIwrwAP5WOJVabVtVsIpTMxPQe+D3qLyePT+VlETUTO2nA1+PufPx9Q==", + "requires": { + "@typescript-eslint/utils": "5.17.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz", + "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==", + "requires": { + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", + "debug": "^4.3.2" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", + "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", + "requires": { + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz", + "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==", + "requires": { + "@typescript-eslint/utils": "5.17.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", + "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==" + }, + "@typescript-eslint/typescript-estree": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", + "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", + "requires": { + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", + "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "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==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", + "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", + "requires": { + "@typescript-eslint/types": "5.17.0", + "eslint-visitor-keys": "^3.0.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" + }, + "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==", + "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==" + } + } + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "requires": {} + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "requires": {} + }, + "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==", + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "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==" + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" + }, + "adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "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": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "requires": { + "ajv": "^8.0.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==", + "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==" + } + } + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "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" + } + }, + "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" + } + }, + "arg": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", + "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" + }, + "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" + } + }, + "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==", + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "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==" + }, + "array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, + "array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "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=" + }, + "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=" + }, + "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==", + "dev": true + }, + "autoprefixer": { + "version": "10.4.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", + "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "requires": { + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001317", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "axe-core": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", + "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==" + }, + "axios": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.0.tgz", + "integrity": "sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==", + "requires": { + "follow-redirects": "^1.14.8" + } + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "requires": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "babel-loader": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", + "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "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" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "requires": {} + }, + "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==" + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "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-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, + "babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "requires": {} + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "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.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + } + }, + "babel-plugin-styled-components": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.5.tgz", + "integrity": "sha512-A7kfST5odbf8Ev42OQbj5teEiT8DskpRoQ/iPYePLLdcTCAsodpYKqtoy4SJthpsGzQKc2vvnrtlUgdmJq6WKQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11", + "picomatch": "^2.3.0" + } + }, + "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-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "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==", + "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.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "requires": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "requires": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "bfj": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", + "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "requires": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "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" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "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" + } + }, + "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==" + }, + "browserslist": { + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "requires": { + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", + "escalade": "^3.1.1", + "node-releases": "^2.0.2", + "picocolors": "^1.0.0" + } + }, + "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-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "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==" + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + }, + "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==" + }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001323", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001323.tgz", + "integrity": "sha512-e4BF2RlCVELKx8+RmklSEIVub1TWrmdhvA5kEUueummz1XyySW0DVk+3x9HyhU9MuWTa2BhqLgEuEmUwASAdCA==" + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" + }, + "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" + } + }, + "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==" + }, + "charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==" + }, + "check-types": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", + "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "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==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + }, + "ci-info": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + }, + "clean-css": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", + "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", + "requires": { + "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==" + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "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" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "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==" + }, + "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=" + }, + "colord": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", + "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" + }, + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + }, + "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": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + }, + "common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==" + }, + "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==", + "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=" + }, + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + }, + "dependencies": { + "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==" + } + } + }, + "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.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-js": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", + "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==" + }, + "core-js-compat": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", + "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "requires": { + "browserslist": "^4.19.1", + "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-js-pure": { + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", + "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "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" + } + }, + "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" + } + }, + "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==" + }, + "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-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" + }, + "css-declaration-sorter": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", + "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "requires": {} + }, + "css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + } + }, + "css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "requires": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.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==" + } + } + }, + "css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "requires": {} + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "css-to-react-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "requires": { + "mdn-data": "2.0.4", + "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==" + } + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", + "dev": true + }, + "cssdb": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz", + "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.5.tgz", + "integrity": "sha512-VZO1e+bRRVixMeia1zKagrv0lLN1B/r/u12STGNNUFxnp97LIFgZHQa0JxqlwEkvzUyA9Oz/WnCTAFkdEbONmg==", + "requires": { + "cssnano-preset-default": "^5.2.5", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.5.tgz", + "integrity": "sha512-WopL7PzN7sos3X8B54/QGl+CZUh1f0qN4ds+y2d5EPwRSSc3jsitVw81O+Uyop0pXyOfPfZxnc+LmA8w/Ki/WQ==", + "requires": { + "css-declaration-sorter": "^6.0.3", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.0", + "postcss-discard-comments": "^5.1.1", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.3", + "postcss-merge-rules": "^5.1.1", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.2", + "postcss-minify-selectors": "^5.2.0", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "requires": {} + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "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==" + } + } + }, + "csstype": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", + "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==", + "dev": true + }, + "damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "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==" + }, + "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=", + "dev": true + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "requires": { + "execa": "^5.0.0" + } + }, + "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=" + }, + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "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==" + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.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=" + } + } + }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-accessibility-api": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.12.tgz", + "integrity": "sha512-gQ2mON6fLWZeM8ubjzL7RtMeHS/g8hb82j4MjHmcQECD7pevWsMlhqwp9BjIRrQvmyJMMyv/XiO1cXzeFlUw4g==", + "dev": true + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + } + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "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==" + } + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + } + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "ejs": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", + "requires": { + "jake": "^10.6.1" + } + }, + "electron-to-chromium": { + "version": "1.4.103", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz", + "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==" + }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "enhanced-resolve": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", + "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "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" + } + }, + "error-stack-parser": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", + "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz", + "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + }, + "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": "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==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "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==", + "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=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", + "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", + "requires": { + "@eslint/eslintrc": "^1.2.1", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.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": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "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", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-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.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "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==" + }, + "globals": { + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "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==" + }, + "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" + } + }, + "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==" + }, + "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" + } + } + } + }, + "eslint-config-react-app": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.0.tgz", + "integrity": "sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g==", + "requires": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "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=", + "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" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "requires": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + } + }, + "eslint-plugin-import": { + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.2", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.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" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "requires": { + "@typescript-eslint/experimental-utils": "^5.0.0" + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", + "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "requires": { + "@babel/runtime": "^7.16.3", + "aria-query": "^4.2.2", + "array-includes": "^3.1.4", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.3.5", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.7", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.2.1", + "language-tags": "^1.0.5", + "minimatch": "^3.0.4" + } + }, + "eslint-plugin-react": { + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", + "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "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==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz", + "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==", + "requires": {} + }, + "eslint-plugin-testing-library": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.2.0.tgz", + "integrity": "sha512-fYFH8lA1hbc1Epr9laNm/+YIR2d+R7WI8sFz9jIRAUfqCf21Nb5BzZwhNeZlu9wKXwDtuf+hUM5QJxG1PuDsTQ==", + "requires": { + "@typescript-eslint/utils": "^5.13.0" + } + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "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==" + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" + }, + "eslint-webpack-plugin": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", + "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", + "requires": { + "@types/eslint": "^7.28.2", + "jest-worker": "^27.3.1", + "micromatch": "^4.0.4", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1" + } + }, + "espree": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "requires": { + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "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": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "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=" + }, + "expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "requires": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "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" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "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==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } + } + }, + "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.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "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==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "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-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "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==", + "requires": { + "bser": "2.1.1" + } + }, + "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==", + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, + "filelist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", + "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.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" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + }, + "follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + }, + "fork-ts-checker-webpack-plugin": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", + "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "dependencies": { + "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" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "requires": {} + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.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==" + }, + "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==" + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.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" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + } + } + }, + "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" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "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=" + }, + "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-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "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==" + }, + "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==" + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "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": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "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==" + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "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" + } + } + } + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "requires": { + "duplexer": "^0.1.2" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "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.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "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" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.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" + } + } + } + }, + "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==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + } + } + }, + "html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "requires": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + }, + "dependencies": { + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } + } + }, + "http-parser-js": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==" + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "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" + } + }, + "http-proxy-middleware": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", + "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "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==" + }, + "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" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "requires": {} + }, + "idb": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", + "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==" + }, + "identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "requires": { + "harmony-reflect": "^1.4.6" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + }, + "immer": { + "version": "9.0.12", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz", + "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "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==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^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=" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "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==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + }, + "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.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + }, + "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==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "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-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "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=" + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" + }, + "istanbul-lib-instrument": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "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==", + "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==" + }, + "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" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "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==" + } + } + }, + "istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jake": { + "version": "10.8.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.4.tgz", + "integrity": "sha512-MtWeTkl1qGsWUtbl/Jsca/8xSoK3x0UmS82sNbjqxxG/de/M/3b1DntdjHgPMC50enlTNwXOCRqPXLLt5cCfZA==", + "requires": { + "async": "0.9.x", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "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" + } + }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "requires": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.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": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "requires": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.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" + } + } + } + }, + "jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "requires": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + } + }, + "jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.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" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "requires": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.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": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.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": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.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": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + } + }, + "jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" + }, + "jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "requires": { + "@jest/types": "^27.5.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.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.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" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "requires": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.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": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "requires": { + "@jest/types": "^27.5.1", + "@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==", + "requires": {} + }, + "jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" + }, + "jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "requires": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + } + }, + "jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "requires": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.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" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^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==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==" + }, + "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" + } + } + } + }, + "jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.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.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.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": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "requires": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.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": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watch-typeahead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz", + "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==", + "requires": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^27.0.0", + "jest-watcher": "^27.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==" + }, + "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==" + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + }, + "string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "requires": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.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" + } + } + } + }, + "jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "requires": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.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" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "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==" + }, + "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" + } + } + } + }, + "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" + } + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "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.6", + "xml-name-validator": "^3.0.0" + } + }, + "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==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "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==" + }, + "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=" + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + }, + "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" + } + }, + "jsonpointer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", + "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==" + }, + "jsx-ast-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "requires": { + "array-includes": "^3.1.3", + "object.assign": "^4.1.2" + } + }, + "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==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==" + }, + "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==" + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, + "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.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==" + }, + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "loadjs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loadjs/-/loadjs-4.2.0.tgz", + "integrity": "sha512-AgQGZisAlTPbTEzrHPb6q+NYBMD+DP9uvGSIjSUM5uG+0jG15cb8axWpxuOIqrmQjn6scaaH8JwloiP27b2KXA==" + }, + "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.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "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==" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "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" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "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" + } + }, + "lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", + "dev": true + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "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" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "requires": { + "tmpl": "1.0.5" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "requires": { + "fs-monkey": "1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "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" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "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-css-extract-plugin": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", + "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", + "requires": { + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "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==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + }, + "nanoid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", + "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-releases": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" + }, + "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=" + }, + "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==", + "requires": { + "path-key": "^3.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.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==" + }, + "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.12.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + }, + "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.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "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.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "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" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "requires": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + } + }, + "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==" + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "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==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "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" + } + }, + "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==" + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } + } + }, + "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==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + }, + "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" + }, + "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" + } + } + } + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "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" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "postcss": { + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "requires": { + "nanoid": "^3.3.1", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-attribute-case-insensitive": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", + "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "requires": { + "postcss-selector-parser": "^6.0.2" + } + }, + "postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "requires": {} + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-functional-notation": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", + "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-hex-alpha": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", + "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-color-rebeccapurple": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", + "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz", + "integrity": "sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-media": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", + "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", + "requires": {} + }, + "postcss-custom-properties": { + "version": "12.1.5", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.5.tgz", + "integrity": "sha512-FHbbB/hRo/7cxLGkc2NS7cDRIDN1oFqQnUKBiyh4b/gwk8DD8udvmRDpUhEK836kB8ggUCieHVOvZDnF9XhI3g==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-custom-selectors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", + "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-dir-pseudo-class": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", + "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-discard-comments": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", + "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", + "requires": {} + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "requires": {} + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "requires": {} + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "requires": {} + }, + "postcss-double-position-gradients": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", + "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "requires": {} + }, + "postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "requires": {} + }, + "postcss-gap-properties": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", + "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", + "requires": {} + }, + "postcss-image-set-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", + "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "requires": {} + }, + "postcss-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", + "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-lab-function": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz", + "integrity": "sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q==", + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + } + }, + "postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + } + }, + "postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "requires": {} + }, + "postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "requires": {} + }, + "postcss-merge-longhand": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz", + "integrity": "sha512-lX8GPGvZ0iGP/IboM7HXH5JwkXvXod1Rr8H8ixwiA372hArk0zP4ZcCy4z4Prg/bfNlbbTf0KCOjCF9kKnpP/w==", + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + } + }, + "postcss-merge-rules": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", + "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz", + "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==", + "requires": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", + "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-nested": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", + "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "requires": { + "postcss-selector-parser": "^6.0.6" + } + }, + "postcss-nesting": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.3.tgz", + "integrity": "sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "requires": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "requires": {} + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", + "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", + "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "requires": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-opacity-percentage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", + "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==" + }, + "postcss-ordered-values": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-overflow-shorthand": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", + "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", + "requires": {} + }, + "postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "requires": {} + }, + "postcss-place": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", + "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-preset-env": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz", + "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==", + "requires": { + "@csstools/postcss-color-function": "^1.0.3", + "@csstools/postcss-font-format-keywords": "^1.0.0", + "@csstools/postcss-hwb-function": "^1.0.0", + "@csstools/postcss-ic-unit": "^1.0.0", + "@csstools/postcss-is-pseudo-class": "^2.0.1", + "@csstools/postcss-normalize-display-values": "^1.0.0", + "@csstools/postcss-oklab-function": "^1.0.2", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "autoprefixer": "^10.4.4", + "browserslist": "^4.20.2", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^6.5.0", + "postcss-attribute-case-insensitive": "^5.0.0", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.2", + "postcss-color-hex-alpha": "^8.0.3", + "postcss-color-rebeccapurple": "^7.0.2", + "postcss-custom-media": "^8.0.0", + "postcss-custom-properties": "^12.1.5", + "postcss-custom-selectors": "^6.0.0", + "postcss-dir-pseudo-class": "^6.0.4", + "postcss-double-position-gradients": "^3.1.1", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.3", + "postcss-image-set-function": "^4.0.6", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.1.2", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.1.3", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.3", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.4", + "postcss-pseudo-class-any-link": "^7.1.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^5.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-pseudo-class-any-link": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", + "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", + "requires": { + "postcss-selector-parser": "^6.0.9" + } + }, + "postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "requires": {} + }, + "postcss-selector-not": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", + "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "dependencies": { + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.0.1.tgz", + "integrity": "sha512-z93ZGFLNc6yaoXAmVhqoSIb+BduplteCt1fepvwhBUQK6MNE4g6fgjpuZKJKp0esUe+vXWlIkwZZjNWoOKw0ZA==" + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "requires": { + "boolbase": "^1.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==" + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + } + } + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + }, + "prettier": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "dev": true + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" + }, + "pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "requires": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "requires": { + "ansi-regex": "^5.0.1", + "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==" + }, + "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-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": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "requires": { + "asap": "~2.0.6" + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "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" + }, + "dependencies": { + "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==" + } + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "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" + } + }, + "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.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + } + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "requires": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + } + }, + "react-dev-utils": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.0.tgz", + "integrity": "sha512-xBQkitdxozPxt1YZ9O1097EJiVpwHr9FoAuEVURCKV0Av8NBERovJauzP7bo1ThvuhZ4shsQ1AJiu4vQpoT1AQ==", + "requires": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.10", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" + }, + "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-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "react-error-overlay": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", + "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==" + }, + "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-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" + }, + "react-scripts": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.0.tgz", + "integrity": "sha512-3i0L2CyIlROz7mxETEdfif6Sfhh9Lfpzi10CtcGs1emDQStmZfWjJbAIMtRD0opVUjQuFWqHZyRZ9PPzKCFxWg==", + "requires": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.0", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "fsevents": "^2.3.2", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.0", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + } + }, + "react-spinners": { + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/react-spinners/-/react-spinners-0.13.8.tgz", + "integrity": "sha512-3e+k56lUkPj0vb5NDXPVFAOkPC//XyhKPJjvcGjyMNPWsBKpplfeyialP74G7H7+It7KzhtET+MvGqbKgAqpZA==", + "requires": {} + }, + "react-twitter-widgets": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/react-twitter-widgets/-/react-twitter-widgets-1.11.0.tgz", + "integrity": "sha512-PMCLJQc30iqy01y1b2+HnMfCX+ZkOxWaPKJb4BhHgOgjSjoZb68K5T0nq3q+3YbX9K7OH0bhptgDihtBG/BqRQ==", + "requires": { + "loadjs": "^4.2.0" + } + }, + "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.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "requires": { + "minimatch": "3.0.4" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + }, + "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": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "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-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + }, + "regexp.prototype.flags": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "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==" + }, + "regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + }, + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "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=" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.0.1.tgz", + "integrity": "sha512-z93ZGFLNc6yaoXAmVhqoSIb+BduplteCt1fepvwhBUQK6MNE4g6fgjpuZKJKp0esUe+vXWlIkwZZjNWoOKw0ZA==" + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "requires": { + "boolbase": "^1.0.0" + } + } + } + }, + "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==" + }, + "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.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "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==", + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + } + } + }, + "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==" + }, + "resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "requires": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.70.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", + "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.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==" + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.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" + } + } + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "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==" + }, + "sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + }, + "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==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "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" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "requires": {} + }, + "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==" + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "requires": { + "node-forge": "^1" + } + }, + "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" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "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.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" + } + }, + "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=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "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.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" + }, + "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.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", + "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "requires": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "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==" + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "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.1", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", + "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "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" + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "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==" + } + } + }, + "string.prototype.matchall": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.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" + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" + }, + "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==" + }, + "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==" + }, + "style-loader": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", + "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "requires": {} + }, + "styled-components": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.3.tgz", + "integrity": "sha512-++4iHwBM7ZN+x6DtPPWkCI4vdtwumQ+inA/DdAsqYd4SVgUKJie5vXyzotA00ttcFdQkCng7zc6grwlfIfw+lw==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + } + }, + "stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "requires": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + } + }, + "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==", + "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==" + }, + "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" + } + } + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.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==" + }, + "tailwindcss": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", + "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", + "requires": { + "arg": "^5.0.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "cosmiconfig": "^7.0.1", + "detective": "^5.2.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "normalize-path": "^3.0.0", + "object-hash": "^2.2.0", + "postcss": "^8.4.6", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.0", + "postcss-nested": "5.0.6", + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==" + }, + "tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "requires": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" + } + } + }, + "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==", + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", + "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "requires": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "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==" + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "requires": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "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==", + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "throat": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "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.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "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==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "dependencies": { + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "requires": { + "punycode": "^2.1.1" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "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==" + }, + "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==" + }, + "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-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.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", + "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==" + }, + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" + }, + "unique-names-generator": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/unique-names-generator/-/unique-names-generator-4.7.1.tgz", + "integrity": "sha512-lMx9dX+KRmG8sq6gulYYpKWZc9RlGsgBR6aoO8Qsm3qvkSJ+3rAymr+TnV8EDMrIrwuFJ4kruzMWM/OpYzPoow==" + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "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" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "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==" + }, + "v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "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==" + } + } + }, + "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==", + "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==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "requires": { + "makeerror": "1.0.12" + } + }, + "watchpack": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "webpack": { + "version": "5.70.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", + "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.2", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "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==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + } + } + }, + "webpack-dev-middleware": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", + "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", + "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.2.2", + "ansi-html-community": "^0.0.8", + "bonjour": "^3.5.0", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "del": "^6.0.0", + "express": "^4.17.1", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.0", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "strip-ansi": "^7.0.0", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "dependencies": { + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "requires": {} + } + } + }, + "webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "requires": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.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==" + }, + "webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "requires": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + } + } + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" + }, + "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==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "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==" + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "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==", + "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" + } + }, + "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==" + }, + "workbox-background-sync": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.2.tgz", + "integrity": "sha512-EjG37LSMDJ1TFlFg56wx6YXbH4/NkG09B9OHvyxx+cGl2gP5OuOzsCY3rOPJSpbcz6jpuA40VIC3HzSD4OvE1g==", + "requires": { + "idb": "^6.1.4", + "workbox-core": "6.5.2" + } + }, + "workbox-broadcast-update": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.2.tgz", + "integrity": "sha512-DjJYraYnprTZE/AQNoeogaxI1dPuYmbw+ZJeeP8uXBSbg9SNv5wLYofQgywXeRepv4yr/vglMo9yaHUmBMc+4Q==", + "requires": { + "workbox-core": "6.5.2" + } + }, + "workbox-build": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.2.tgz", + "integrity": "sha512-TVi4Otf6fgwikBeMpXF9n0awHfZTMNu/nwlMIT9W+c13yvxkmDFMPb7vHYK6RUmbcxwPnz4I/R+uL76+JxG4JQ==", + "requires": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.5.2", + "workbox-broadcast-update": "6.5.2", + "workbox-cacheable-response": "6.5.2", + "workbox-core": "6.5.2", + "workbox-expiration": "6.5.2", + "workbox-google-analytics": "6.5.2", + "workbox-navigation-preload": "6.5.2", + "workbox-precaching": "6.5.2", + "workbox-range-requests": "6.5.2", + "workbox-recipes": "6.5.2", + "workbox-routing": "6.5.2", + "workbox-strategies": "6.5.2", + "workbox-streams": "6.5.2", + "workbox-sw": "6.5.2", + "workbox-window": "6.5.2" + }, + "dependencies": { + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "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" + } + }, + "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" + } + }, + "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==" + }, + "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" + } + } + } + }, + "workbox-cacheable-response": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.2.tgz", + "integrity": "sha512-UnHGih6xqloV808T7ve1iNKZMbpML0jGLqkkmyXkJbZc5j16+HRSV61Qrh+tiq3E3yLvFMGJ3AUBODOPNLWpTg==", + "requires": { + "workbox-core": "6.5.2" + } + }, + "workbox-core": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.2.tgz", + "integrity": "sha512-IlxLGQf+wJHCR+NM0UWqDh4xe/Gu6sg2i4tfZk6WIij34IVk9BdOQgi6WvqSHd879jbQIUgL2fBdJUJyAP5ypQ==" + }, + "workbox-expiration": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.2.tgz", + "integrity": "sha512-5Hfp0uxTZJrgTiy9W7AjIIec+9uTOtnxY/tRBm4DbqcWKaWbVTa+izrKzzOT4MXRJJIJUmvRhWw4oo8tpmMouw==", + "requires": { + "idb": "^6.1.4", + "workbox-core": "6.5.2" + } + }, + "workbox-google-analytics": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.2.tgz", + "integrity": "sha512-8SMar+N0xIreP5/2we3dwtN1FUmTMScoopL86aKdXBpio8vXc8Oqb5fCJG32ialjN8BAOzDqx/FnGeCtkIlyvw==", + "requires": { + "workbox-background-sync": "6.5.2", + "workbox-core": "6.5.2", + "workbox-routing": "6.5.2", + "workbox-strategies": "6.5.2" + } + }, + "workbox-navigation-preload": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.2.tgz", + "integrity": "sha512-iqDNWWMswjCsZuvGFDpcX1Z8InBVAlVBELJ28xShsWWntALzbtr0PXMnm2WHkXCc56JimmGldZi1N5yDPiTPOg==", + "requires": { + "workbox-core": "6.5.2" + } + }, + "workbox-precaching": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.2.tgz", + "integrity": "sha512-OZAlQ8AAT20KugGKKuJMHdQ8X1IyNQaLv+mPTHj+8Dmv8peBq5uWNzs4g/1OSFmXsbXZ6a1CBC6YtQWVPhJQ9w==", + "requires": { + "workbox-core": "6.5.2", + "workbox-routing": "6.5.2", + "workbox-strategies": "6.5.2" + } + }, + "workbox-range-requests": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.2.tgz", + "integrity": "sha512-zi5VqF1mWqfCyJLTMXn1EuH/E6nisqWDK1VmOJ+TnjxGttaQrseOhMn+BMvULFHeF8AvrQ0ogfQ6bSv0rcfAlg==", + "requires": { + "workbox-core": "6.5.2" + } + }, + "workbox-recipes": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.2.tgz", + "integrity": "sha512-2lcUKMYDiJKvuvRotOxLjH2z9K7jhj8GNUaHxHNkJYbTCUN3LsX1cWrsgeJFDZ/LgI565t3fntpbG9J415ZBXA==", + "requires": { + "workbox-cacheable-response": "6.5.2", + "workbox-core": "6.5.2", + "workbox-expiration": "6.5.2", + "workbox-precaching": "6.5.2", + "workbox-routing": "6.5.2", + "workbox-strategies": "6.5.2" + } + }, + "workbox-routing": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.2.tgz", + "integrity": "sha512-nR1w5PjF6IVwo0SX3oE88LhmGFmTnqqU7zpGJQQPZiKJfEKgDENQIM9mh3L1ksdFd9Y3CZVkusopHfxQvit/BA==", + "requires": { + "workbox-core": "6.5.2" + } + }, + "workbox-strategies": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.2.tgz", + "integrity": "sha512-fgbwaUMxbG39BHjJIs2y2X21C0bmf1Oq3vMQxJ1hr6y5JMJIm8rvKCcf1EIdAr+PjKdSk4ddmgyBQ4oO8be4Uw==", + "requires": { + "workbox-core": "6.5.2" + } + }, + "workbox-streams": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.2.tgz", + "integrity": "sha512-ovD0P4UrgPtZ2Lfc/8E8teb1RqNOSZr+1ZPqLR6sGRZnKZviqKbQC3zVvvkhmOIwhWbpL7bQlWveLVONHjxd5w==", + "requires": { + "workbox-core": "6.5.2", + "workbox-routing": "6.5.2" + } + }, + "workbox-sw": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.2.tgz", + "integrity": "sha512-2KhlYqtkoqlnPdllj2ujXUKRuEFsRDIp6rdE4l1PsxiFHRAFaRTisRQpGvRem5yxgXEr+fcEKiuZUW2r70KZaw==" + }, + "workbox-webpack-plugin": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-StrJ7wKp5tZuGVcoKLVjFWlhDy+KT7ZWsKnNcD6F08wA9Cpt6JN+PLIrplcsTHbQpoAV8+xg6RvcG0oc9z+RpQ==", + "requires": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.5.2" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "workbox-window": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.2.tgz", + "integrity": "sha512-2kZH37r9Wx8swjEOL4B8uGM53lakMxsKkQ7mOKzGA/QAn/DQTEZGrdHWtypk2tbhKY5S0jvPS+sYDnb2Z3378A==", + "requires": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.5.2" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-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==" + } + } + }, + "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.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "requires": {} + }, + "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==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "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==" + }, + "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==" + }, + "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==" + } + } +} diff --git a/typescript/food-ordering/webui/package.json b/typescript/food-ordering/webui/package.json new file mode 100644 index 00000000..87c07b70 --- /dev/null +++ b/typescript/food-ordering/webui/package.json @@ -0,0 +1,50 @@ +{ + "name": "@restatedev/example-ecommerce-store-react-shopping-cart", + "version": "0.1.0", + "private": true, + "engines": { + "node": "14.17.3" + }, + "dependencies": { + "axios": "^0.26.0", + "react": "^18.0.0", + "react-dom": "^18.0.0", + "react-scripts": "^5.0.0", + "react-spinners": "^0.13.8", + "react-twitter-widgets": "^1.11.0", + "styled-components": "^5.3.3", + "typescript": "^4.6.3", + "unique-names-generator": "^4.7.1", + "uuid": "^8.3.2" + }, + "proxy": "http://localhost:3000/", + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "format": "prettier --write \"**/*.+(ts|tsx|js|json|css)\"" + }, + "devDependencies": { + "@testing-library/jest-dom": "^5.16.2", + "@testing-library/react": "^13.0.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.4.1", + "@types/node": "^16.11.25", + "@types/react": "^17.0.43", + "@types/react-dom": "^17.0.14", + "@types/styled-components": "^5.1.23", + "@types/uuid": "^8.3.4", + "prettier": "^2.5.1" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/typescript/food-ordering/webui/public/favicon.ico b/typescript/food-ordering/webui/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..1d74485e10504ccc044907146b1276ffd9f06153 GIT binary patch literal 1150 zcmbVL%WfJ$5Zq-gIItkc0;DXjz3^17VIhaaA7L91vd>05egigKqgX-+2p}Qgl*EZY zuRJxOZh{a-o`Ft*Ixm?2czoY6^U+fbM2GQwsu-$Ia zXf%*Yr4SB>rO~g~>)32I==FLCg+d2hOw&ZW-Ntx4MlzW^$nA4vZZesm-|vGMm8(=L zSg+TwVpT1BkYlY@)A+$)AUUfV%d&9(?JKTtZjel+b)CvLn@x;HBguht=BzTAjIR4s zF5%(fzli_BkDqt2tP`DMk90Z>&XjxMj%KqNY}?i~XJ;Q!E|>A8R>kkX_Xyh&ogA6bjPc$19#*<+H@wk*E0SbSm+&SWI$pUH9M}>_PmW`+qpblRwW){;Z>3TCLU- zyyJYt#pM;K4aJGS)Q9i;dWYQKZnu+j*{^%frQv>GeyEMt^y4^=)K9nD)$dk4 zlzypE?l+swA{vb%B4)?kk~4GE-m!jF58fZ1g=br>R{9RnXN;WRdJnmmTrP)vJ`egY K;~?hnetQI`Ynmqj literal 0 HcmV?d00001 diff --git a/typescript/food-ordering/webui/public/index.html b/typescript/food-ordering/webui/public/index.html new file mode 100644 index 00000000..20ae3055 --- /dev/null +++ b/typescript/food-ordering/webui/public/index.html @@ -0,0 +1,35 @@ + + + + + + + + + + Typescript React Shopping cart + + + +
+ + + + diff --git a/typescript/food-ordering/webui/public/manifest.json b/typescript/food-ordering/webui/public/manifest.json new file mode 100644 index 00000000..7b151a47 --- /dev/null +++ b/typescript/food-ordering/webui/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "React Shopping Cart", + "name": "Typescript React Shopping Cart", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/typescript/food-ordering/webui/public/normalize.css b/typescript/food-ordering/webui/public/normalize.css new file mode 100644 index 00000000..eaee67a7 --- /dev/null +++ b/typescript/food-ordering/webui/public/normalize.css @@ -0,0 +1,423 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type='checkbox'], +input[type='radio'] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type='number']::-webkit-inner-spin-button, +input[type='number']::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type='search'] { + -webkit-appearance: textfield; /* 1 */ /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type='search']::-webkit-search-cancel-button, +input[type='search']::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/typescript/food-ordering/webui/public/products.json b/typescript/food-ordering/webui/public/products.json new file mode 100644 index 00000000..5d84abbd --- /dev/null +++ b/typescript/food-ordering/webui/public/products.json @@ -0,0 +1,58 @@ +{ + "data": { + "products": [ + { + "availableSizes": ["Pizza"], + "currencyFormat": "$", + "currencyId": "USD", + "description": "Pepperoni pizza", + "id": 1000, + "installments": 0, + "isFreeShipping": true, + "price": 10.9, + "sku": 1000, + "style": "Pepperoni pizza", + "title": "Pepperoni pizza" + }, + { + "availableSizes": ["Sushi"], + "currencyFormat": "$", + "currencyId": "USD", + "description": "Sushi box", + "id": 1001, + "installments": 0, + "isFreeShipping": true, + "price": 17.6, + "sku": 1001, + "style": "Sushi box", + "title": "Sushi box" + }, + { + "availableSizes": ["Burger"], + "currencyFormat": "$", + "currencyId": "USD", + "description": "Cheese burger", + "id": 1002, + "installments": 0, + "isFreeShipping": true, + "price": 8.5, + "sku": 1002, + "style": "Cheese burger", + "title": "Cheese burger" + }, + { + "availableSizes": ["Snack"], + "currencyFormat": "$", + "currencyId": "USD", + "description": "Chicken wings", + "id": 1003, + "installments": 0, + "isFreeShipping": true, + "price": 3.4, + "sku": 1003, + "style": "Chicken wings", + "title": "Chicken wings" + } + ] + } +} diff --git a/typescript/food-ordering/webui/public/robots.txt b/typescript/food-ordering/webui/public/robots.txt new file mode 100644 index 00000000..e9e57dc4 --- /dev/null +++ b/typescript/food-ordering/webui/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/typescript/food-ordering/webui/readme-banner.png b/typescript/food-ordering/webui/readme-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..aaeaa2346f92202ad590158390476ea691f9fb70 GIT binary patch literal 345174 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

9-7xYD^JN8f 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%0DCHIgRn1?;N^?ReC0qOUB7&08b0ywchZuV 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 ZKLcolXX6bT{n`Kk002ovPDHLkV1m=M`NaSL literal 0 HcmV?d00001 diff --git a/typescript/food-ordering/webui/src/commons/Checkbox/Checkbox.tsx b/typescript/food-ordering/webui/src/commons/Checkbox/Checkbox.tsx new file mode 100644 index 00000000..d0ef3563 --- /dev/null +++ b/typescript/food-ordering/webui/src/commons/Checkbox/Checkbox.tsx @@ -0,0 +1,34 @@ +import { useState } from 'react'; + +interface IProps { + className?: string; + label: string; + handleOnChange(label: string): void; +} + +const Checkbox = ({ className, label, handleOnChange }: IProps) => { + const [isChecked, setIsChecked] = useState(false); + + const toggleCheckboxChange = () => { + setIsChecked(!isChecked); + handleOnChange(label); + }; + + return ( +

+ ); +}; + +export default Checkbox; diff --git a/typescript/food-ordering/webui/src/commons/Checkbox/index.ts b/typescript/food-ordering/webui/src/commons/Checkbox/index.ts new file mode 100644 index 00000000..dd6385d4 --- /dev/null +++ b/typescript/food-ordering/webui/src/commons/Checkbox/index.ts @@ -0,0 +1 @@ +export { default } from './Checkbox'; diff --git a/typescript/food-ordering/webui/src/commons/style/global-style.tsx b/typescript/food-ordering/webui/src/commons/style/global-style.tsx new file mode 100644 index 00000000..f5b39cd0 --- /dev/null +++ b/typescript/food-ordering/webui/src/commons/style/global-style.tsx @@ -0,0 +1,14 @@ +import { createGlobalStyle } from './styled-components'; + +const GlobalStyle = createGlobalStyle` + body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } +`; + +export default GlobalStyle; diff --git a/typescript/food-ordering/webui/src/commons/style/index.d.ts b/typescript/food-ordering/webui/src/commons/style/index.d.ts new file mode 100644 index 00000000..8c6dbc70 --- /dev/null +++ b/typescript/food-ordering/webui/src/commons/style/index.d.ts @@ -0,0 +1,16 @@ +import * as React from 'react'; +import { ThemedStyledComponentsModule } from 'styled-components'; + +declare module 'styled-components' { + export interface ThemedStyledComponentsModule { + createGlobalStyle( + strings: TemplateStringsArray, + ...interpolations: SimpleInterpolation[] + ): React.ComponentClass; + } + + export function createGlobalStyle( + strings: TemplateStringsArray, + ...interpolations: SimpleInterpolation[] + ): React.ComponentClass; +} diff --git a/typescript/food-ordering/webui/src/commons/style/styled-components.ts b/typescript/food-ordering/webui/src/commons/style/styled-components.ts new file mode 100644 index 00000000..f686fafc --- /dev/null +++ b/typescript/food-ordering/webui/src/commons/style/styled-components.ts @@ -0,0 +1,15 @@ +import * as styledComponents from 'styled-components'; +import { ThemedStyledComponentsModule } from 'styled-components'; + +import { StyleClosetTheme } from './theme'; + +const { + default: styled, + css, + createGlobalStyle, + keyframes, + ThemeProvider, +} = styledComponents as ThemedStyledComponentsModule; + +export { css, createGlobalStyle, keyframes, ThemeProvider }; +export default styled; diff --git a/typescript/food-ordering/webui/src/commons/style/theme.ts b/typescript/food-ordering/webui/src/commons/style/theme.ts new file mode 100644 index 00000000..6f128f8d --- /dev/null +++ b/typescript/food-ordering/webui/src/commons/style/theme.ts @@ -0,0 +1,22 @@ +export interface StyleClosetTheme { + colors: { [key in keyof typeof colors]: string }; + breakpoints: { [key in keyof typeof breakpoints]: string }; +} + +const colors = { + primary: '#1b1a20', + secondary: '#eabf00', +}; + +const breakpoints = { + mobile: '480px', + tablet: '768px', + desktop: '1025px', +}; + +const theme: StyleClosetTheme = { + colors, + breakpoints, +}; + +export { theme }; diff --git a/typescript/food-ordering/webui/src/components/App/App.tsx b/typescript/food-ordering/webui/src/components/App/App.tsx new file mode 100644 index 00000000..7bf10df9 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/App/App.tsx @@ -0,0 +1,73 @@ +import { useEffect, useState } from 'react'; + +import Loader from 'components/Loader'; +import Filter from 'components/Filter'; +import { Products, MiniProducts } from 'components/Products'; +import Cart from 'components/Cart'; +import OrderStatus from 'components/OrderStatus'; + +import { useProducts } from 'contexts/products-context'; + +import * as S from './style'; +import { useUser } from 'contexts/user-context'; +import { IProduct } from 'models'; +import { useCart } from '../../contexts/cart-context'; + +function App() { + const { isFetching, products, fetchProducts } = useProducts(); + const { user, fetchUser } = useUser(); + const { details } = useCart(); + + useEffect(() => { + fetchProducts(); + }, [fetchProducts]); + + useEffect(() => { + fetchUser(); + }, [fetchUser]); + + const convert = (ids: string[] | undefined): IProduct[] => { + if (ids === undefined) { + return []; + } + var index = products.reduce(function (map: any, p: IProduct) { + map[p.id] = p; + return map; + }, {}); + + let response = ids.map((id) => index[id]); + console.log(response); + return response; + }; + + return ( + + {isFetching && } + + + {!details.checked_out ? :
} + {!details.checked_out ? ( +

Hello {user?.user_full_name} !

+ ) : ( +
+ )} +
+ {!details.checked_out ? ( + + +

{products?.length} Product(s) found

+
+ +
+ ) : ( + + + + )} +
+ {!details.checked_out ? :
} +
+ ); +} + +export default App; diff --git a/typescript/food-ordering/webui/src/components/App/index.ts b/typescript/food-ordering/webui/src/components/App/index.ts new file mode 100644 index 00000000..9122fa1a --- /dev/null +++ b/typescript/food-ordering/webui/src/components/App/index.ts @@ -0,0 +1 @@ +export { default } from './App'; diff --git a/typescript/food-ordering/webui/src/components/App/style.ts b/typescript/food-ordering/webui/src/components/App/style.ts new file mode 100644 index 00000000..6ba6890a --- /dev/null +++ b/typescript/food-ordering/webui/src/components/App/style.ts @@ -0,0 +1,36 @@ +import styled from 'styled-components/macro'; + +export const Container = styled.div``; + +export const TwoColumnGrid = styled.main` + display: grid; + grid-template-columns: 1fr; + max-width: 1200px; + margin: 50px auto auto; + + @media only screen and (min-width: ${({ theme: { breakpoints } }) => + breakpoints.tablet}) { + grid-template-columns: 1fr 4fr; + } +`; + +export const Side = styled.div` + display: grid; + justify-content: center; + padding: 15px; + box-sizing: border-box; + + @media only screen and (min-width: ${({ theme: { breakpoints } }) => + breakpoints.tablet}) { + align-content: baseline; + } +`; + +export const Main = styled.main``; + +export const MainHeader = styled.main` + display: grid; + grid-template-columns: 1fr 1fr; + justify-content: end; + padding: 0 15px; +`; diff --git a/typescript/food-ordering/webui/src/components/Cart/Cart.tsx b/typescript/food-ordering/webui/src/components/Cart/Cart.tsx new file mode 100644 index 00000000..7ee3ab05 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Cart/Cart.tsx @@ -0,0 +1,250 @@ +import formatPrice from 'utils/formatPrice'; +import CartProducts from './CartProducts'; +import { useCart } from 'contexts/cart-context'; +import * as S from './style'; +import { publishToKafka, sendRequestToRestate } from 'services/sendToRestate'; +import { useUser } from 'contexts/user-context'; +import { useOrderStatusContext } from '../../contexts/status-context/OrderStatusProvider'; +import { useState } from 'react'; +import Dropdown from '../Dropdown'; + +const isKafkaEnabled = process.env.REACT_APP_ENABLE_KAFKA !== 'false'; + +const Cart = () => { + const { + products, + total, + isOpen, + openCart, + closeCart, + clearCart, + details, + updateCartDetails, + } = useCart(); + const { user, setNewShoppingCartId } = useUser(); + const { orderStatus, setOrderStatus } = useOrderStatusContext(); + /* Dropdown for delivery time */ + const [deliveryTimeDropdownOpen, setDeliveryTimeDropdown] = useState(false); + const handleOpen = () => { + setDeliveryTimeDropdown(!deliveryTimeDropdownOpen); + }; + + const handleDeliveryTime = (delay: number, description: string) => { + const newDeliveryTime = { + delivery_delay: delay, + delivery_delay_description: description, + delivery_time: new Date(Date.now() + delay).toString(), + }; + updateCartDetails({ ...details, ...newDeliveryTime }); + setDeliveryTimeDropdown(false); + }; + + /* Dropdown for restaurant selection */ + const [restaurantDropdownOpen, setRestaurantDropdownOpen] = useState(false); + const handleRestaurantDropdownOpen = () => { + setRestaurantDropdownOpen(!restaurantDropdownOpen); + }; + + const handleRestaurantSelection = ( + restaurantId: string, + restaurant: string + ) => { + const newRestaurant = { + restaurant_id: restaurantId, + restaurant: restaurant, + }; + updateCartDetails({ ...details, ...newRestaurant }); + setRestaurantDropdownOpen(false); + }; + + const handleCheckout = () => { + if (!total.productQuantity) { + alert('Add some product in the cart!'); + return; + } + + const generateJsonReq = () => { + const productsToSend = products.map((prod) => { + return { + productId: prod.id, + description: prod.description, + quantity: prod.quantity, + }; + }); + return { + id: user!.user_id, + restaurantId: details.restaurant_id, + products: productsToSend, + totalCost: total.totalPrice, + deliveryDelay: details.delivery_delay, + }; + }; + + const kafkaRecord = JSON.stringify({ + key: user!.user_id, + value: JSON.stringify(generateJsonReq()), + }); + const request = JSON.stringify({ + key: user!.user_id, + request: generateJsonReq(), + }); + + const flow = async () => { + closeCart(); + const checkedOutStatus = { checked_out: true }; + updateCartDetails({ ...details, ...checkedOutStatus }); + + if (isKafkaEnabled) { + console.info('Generating Kafka record'); + console.info(kafkaRecord); + await publishToKafka(kafkaRecord); + } else { + console.info(request); + sendRequestToRestate('orders', 'create', request); + } + + let done = false; + while (!done) { + const newOrderStatus = ( + await sendRequestToRestate('orderStatus', 'get', { + key: user!.user_id, + }) + ).response; + console.info(newOrderStatus); + + if (newOrderStatus) { + setOrderStatus(newOrderStatus); + if (newOrderStatus.status === 'DELIVERED') { + done = true; + } + } + await new Promise((f) => setTimeout(f, 1000)); + } + + setNewShoppingCartId(); + }; + + flow(); + }; + + const handleToggleCart = (isOpen: boolean) => () => + isOpen ? closeCart() : openCart(); + + return ( + + + {isOpen ? ( + X + ) : ( + + + {total.productQuantity} + + + )} + + + {isOpen && ( + + + + {total.productQuantity} + + Cart + + + + + + SUBTOTAL + + {`${total.currencyFormat} ${formatPrice( + total.totalPrice, + total.currencyId + )}`} + + {total.installments ? ( + + {`OR UP TO ${total.installments} x ${ + total.currencyFormat + } ${formatPrice( + total.totalPrice / total.installments, + total.currencyId + )}`} + + ) : null} + + + + {details.delivery_delay_description} + + } + menu={[ + , + , + , + ]} + dropDownDescription={'Select the delivery time'} + /> + + {details.restaurant} + + } + menu={[ + , + , + , + ]} + dropDownDescription={'Select the restaurant'} + /> + + Checkout + + + + )} + + ); +}; + +export default Cart; diff --git a/typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProduct/CartProduct.tsx b/typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProduct/CartProduct.tsx new file mode 100644 index 00000000..b563c758 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProduct/CartProduct.tsx @@ -0,0 +1,63 @@ +import formatPrice from 'utils/formatPrice'; +import { ICartProduct } from 'models'; + +import { useCart } from 'contexts/cart-context'; + +import * as S from './style'; +import useCartDetails from '../../../../contexts/cart-context/useCartDetails'; + +interface IProps { + product: ICartProduct; +} +const CartProduct = ({ product }: IProps) => { + const { removeProduct, increaseProductQuantity, decreaseProductQuantity } = + useCart(); + const { details } = useCartDetails(); + const { + sku, + title, + price, + style, + currencyId, + currencyFormat, + availableSizes, + quantity, + } = product; + + const handleRemoveProduct = () => removeProduct(product); + const handleIncreaseProductQuantity = () => increaseProductQuantity(product); + const handleDecreaseProductQuantity = () => decreaseProductQuantity(product); + + return ( + + {!details.checked_out ? ( + + ) : ( +
+ )} + + + {!details.checked_out ? ( + {title} + ) : ( + {title} + )} + + {`${availableSizes[0]} | ${style}`}
+ Quantity: {quantity} +
+
+ +

{`${currencyFormat} ${formatPrice(price, currencyId)}`}

+
+
+ ); +}; + +export default CartProduct; diff --git a/typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProduct/index.ts b/typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProduct/index.ts new file mode 100644 index 00000000..6ce5fa3b --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProduct/index.ts @@ -0,0 +1 @@ +export { default } from './CartProduct'; diff --git a/typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProduct/style.ts b/typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProduct/style.ts new file mode 100644 index 00000000..626fa3c3 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProduct/style.ts @@ -0,0 +1,96 @@ +import styled from 'styled-components/macro'; + +export const Container = styled.div` + position: relative; + box-sizing: border-box; + padding: 5%; + + transition: background-color 0.2s, opacity 0.2s; + + &::before { + content: ''; + width: 90%; + height: 2px; + background-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: 0; + left: 5%; + } +`; + +export const Details = styled.div` + width: 57%; + display: inline-block; + vertical-align: middle; +`; + +export const Title = styled.p` + color: #ececec; + margin: 0; +`; + +export const DarkTitle = styled.p` + color: #413f3f; + margin: 0; +`; + +export const Desc = styled.p` + color: #918f96; + margin: 0; +`; + +export const Price = styled.div` + display: inline-block; + vertical-align: middle; + color: ${({ theme }) => theme.colors.secondary}; + text-align: right; + width: 25%; +`; + +export const DeleteButton = styled.button` + width: 16px; + height: 16px; + top: 15px; + right: 5%; + border-radius: 50%; + position: absolute; + background-size: auto 100%; + background-image: url(${require('static/delete-icon.png')}); + background-repeat: no-repeat; + z-index: 2; + cursor: pointer; + border: 0; + background-color: transparent; + + &:focus-visible { + outline: 3px solid ${({ theme }) => theme.colors.secondary}; + } + + &:hover { + background-position-x: -17px; + } +`; + +export const ChangeQuantity = styled.button` + color: #b7b7b7; + border: 0; + background-color: #000; + width: 25px; + height: 25px; + + &:focus-visible { + outline: 3px solid ${({ theme }) => theme.colors.secondary}; + } + + &:disabled { + opacity: 0.2; + } +`; + +export const Image = styled.img` + display: inline-block; + vertical-align: middle; + width: 15%; + height: auto; + margin-right: 3%; +`; diff --git a/typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProducts.tsx b/typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProducts.tsx new file mode 100644 index 00000000..8493a923 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Cart/CartProducts/CartProducts.tsx @@ -0,0 +1,25 @@ +import { ICartProduct } from 'models'; +import CartProduct from './CartProduct'; + +import * as S from './style'; + +interface IProps { + products: ICartProduct[]; +} + +const CartProducts = ({ products }: IProps) => { + return ( + + {products?.length ? ( + products.map((p) => ) + ) : ( + + Add some products in the cart
+ :) +
+ )} +
+ ); +}; + +export default CartProducts; diff --git a/typescript/food-ordering/webui/src/components/Cart/CartProducts/index.ts b/typescript/food-ordering/webui/src/components/Cart/CartProducts/index.ts new file mode 100644 index 00000000..7316be58 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Cart/CartProducts/index.ts @@ -0,0 +1 @@ +export { default } from './CartProducts'; diff --git a/typescript/food-ordering/webui/src/components/Cart/CartProducts/style.ts b/typescript/food-ordering/webui/src/components/Cart/CartProducts/style.ts new file mode 100644 index 00000000..5d463251 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Cart/CartProducts/style.ts @@ -0,0 +1,13 @@ +import styled from 'styled-components/macro'; + +export const Container = styled.div` + position: relative; + min-height: 280px; + padding-bottom: 200px; +`; + +export const CartProductsEmpty = styled.p` + color: #ececec; + text-align: center; + line-height: 40px; +`; diff --git a/typescript/food-ordering/webui/src/components/Cart/index.ts b/typescript/food-ordering/webui/src/components/Cart/index.ts new file mode 100644 index 00000000..3ca3494a --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Cart/index.ts @@ -0,0 +1 @@ +export { default } from './Cart'; diff --git a/typescript/food-ordering/webui/src/components/Cart/style.ts b/typescript/food-ordering/webui/src/components/Cart/style.ts new file mode 100644 index 00000000..13df8cdf --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Cart/style.ts @@ -0,0 +1,193 @@ +import styled from 'styled-components/macro'; + +export const CartButton = styled.button` + border: 0; + padding: 0; + width: 50px; + height: 50px; + color: #ececec; + background-color: ${({ theme }) => theme.colors.primary}; + text-align: center; + line-height: 50px; + position: absolute; + top: 0; + left: 0; + cursor: pointer; + z-index: 2; + + &:focus-visible { + outline: 3px solid ${({ theme }) => theme.colors.secondary}; + } + + &:hover { + filter: brightness(85%); + } +`; + +interface IContainer { + isOpen: boolean; +} +export const Container = styled.div` + position: fixed; + top: 0; + right: ${({ isOpen }) => (isOpen ? '0' : '-100%')}; + width: 100%; + height: 100%; + background-color: ${({ theme }) => theme.colors.primary}; + box-sizing: border-box; + z-index: 99; + + transition: right 0.2s; + + ${CartButton} { + left: ${({ isOpen }) => (isOpen ? '0' : '-50px')}; + background-color: ${({ theme, isOpen }) => + isOpen ? theme.colors.black : theme.colors.primary}; + } + + @media only screen and (min-width: ${({ theme: { breakpoints } }) => + breakpoints.tablet}) { + width: 450px; + right: ${({ isOpen }) => (isOpen ? '0' : '-450px')}; + + ${CartButton} { + left: -50px; + } + } +`; + +interface ICartIcon { + large?: boolean; +} +export const CartIcon = styled.div` + width: ${({ large }) => (large ? '60px' : '50px')}; + height: ${({ large }) => (large ? '60px' : '50px')}; + position: relative; + display: inline-block; + vertical-align: middle; + margin-right: 15px; + background-image: url(${require('static/cart-icon.png')}); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + + background-size: 50%; +`; + +export const CartQuantity = styled.div` + display: inline-block; + width: 18px; + height: 18px; + color: #0c0b10; + font-weight: bold; + font-size: 0.7em; + text-align: center; + line-height: 18px; + border-radius: 50%; + background-color: ${({ theme }) => theme.colors.secondary}; + position: absolute; + bottom: 0; + right: 5px; +`; + +export const CartContent = styled.div` + height: 100%; + overflow-y: scroll; + + /* MAC scrollbar para desktop*/ + @media screen and (min-width: 640px) { + &::-webkit-scrollbar { + -webkit-appearance: none; + width: 10px; + background-color: rgba(0, 0, 0, 0.2); + padding: 10px; + } + &::-webkit-scrollbar-thumb { + border-radius: 4px; + background-color: #0c0b10; + } + } +`; + +export const CartContentHeader = styled.div` + color: #ececec; + box-sizing: border-box; + text-align: center; + padding: 45px 0; +`; + +export const HeaderTitle = styled.span` + font-weight: bold; + font-size: 1.2em; + vertical-align: middle; +`; + +export const Sub = styled.p` + width: 20%; + color: #918f96; + vertical-align: middle; + display: inline-block; +`; + +export const SubPrice = styled.div` + width: 80%; + text-align: right; + color: #5b5a5e; + vertical-align: middle; + display: inline-block; +`; + +export const SubPriceValue = styled.p` + color: ${({ theme }) => theme.colors.secondary}; + font-size: 22px; + margin: 0; +`; + +export const SubPriceInstallment = styled.p` + margin: 0; +`; + +export const CheckoutButton = styled.button` + width: 100%; + border: 0; + color: #ececec; + text-transform: uppercase; + background-color: #0c0b10; + text-align: center; + padding: 15px 0; + margin-top: 40px; + cursor: pointer; + outline: none; + + transition: background-color 0.2s; + + &:focus-visible { + outline: 3px solid ${({ theme }) => theme.colors.secondary}; + } + + &:hover { + background-color: #000; + } +`; + +export const CartFooter = styled.div` + box-sizing: border-box; + padding: 5%; + position: absolute; + bottom: 0; + width: 100%; + height: 350px; + z-index: 2; + background-color: ${({ theme }) => theme.colors.primary}; + + &::before { + content: ''; + width: 100%; + height: 20px; + display: block; + position: absolute; + top: -20px; + left: 0; + background: linear-gradient(to top, rgba(0, 0, 0, 0.2), transparent); + } +`; diff --git a/typescript/food-ordering/webui/src/components/Dropdown/Dropdown.tsx b/typescript/food-ordering/webui/src/components/Dropdown/Dropdown.tsx new file mode 100644 index 00000000..0879082e --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Dropdown/Dropdown.tsx @@ -0,0 +1,35 @@ +import { DescriptionP, DropdownDiv } from './style'; +import React from 'react'; + +interface DropdownProps { + open: boolean; + trigger: JSX.Element; + menu: JSX.Element[]; + dropDownDescription: string; +} + +const Dropdown: React.FC = ({ + open, + trigger, + menu, + dropDownDescription, +}) => { + // @ts-ignore + return ( + + {dropDownDescription} + {trigger} + {open ? ( +
    + {menu.map((menuItem, index) => ( +
  • + {menuItem} +
  • + ))} +
+ ) : null} +
+ ); +}; + +export default Dropdown; diff --git a/typescript/food-ordering/webui/src/components/Dropdown/index.ts b/typescript/food-ordering/webui/src/components/Dropdown/index.ts new file mode 100644 index 00000000..45377173 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Dropdown/index.ts @@ -0,0 +1 @@ +export { default } from './Dropdown'; diff --git a/typescript/food-ordering/webui/src/components/Dropdown/style.ts b/typescript/food-ordering/webui/src/components/Dropdown/style.ts new file mode 100644 index 00000000..162657e9 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Dropdown/style.ts @@ -0,0 +1,50 @@ +import styled from 'styled-components/macro'; + +export {}; + +export const DescriptionP = styled.p` + { + color: white; + } +`; + +export const DropdownDiv = styled.div` + .dropdown { + position: relative; + } + + .menu { + position: absolute; + + list-style-type: none; + margin: 5px 0; + padding: 0; + + border: 1px solid grey; + width: 200px; + } + + .menu > li { + margin: 0; + + background-color: white; + } + + .menu > li:hover { + background-color: lightgray; + } + + .menu > li > button { + width: 100%; + height: 100%; + text-align: left; + + background: none; + color: inherit; + border: none; + padding: 5px; + margin: 0; + font: inherit; + cursor: pointer; + } +`; diff --git a/typescript/food-ordering/webui/src/components/Filter/Filter.tsx b/typescript/food-ordering/webui/src/components/Filter/Filter.tsx new file mode 100644 index 00000000..3adeafff --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Filter/Filter.tsx @@ -0,0 +1,38 @@ +import { useProducts } from 'contexts/products-context'; + +import * as S from './style'; + +export const filterCategories = ['Pizza', 'Burger', 'Sushi', 'Snack', 'Other']; + +const Filter = () => { + const { filters, filterProducts } = useProducts(); + + const selectedCheckboxes = new Set(filters); + + const toggleCheckbox = (label: string) => { + if (selectedCheckboxes.has(label)) { + selectedCheckboxes.delete(label); + } else { + selectedCheckboxes.add(label); + } + + const filters = Array.from(selectedCheckboxes) as []; + + filterProducts(filters); + }; + + const createCheckbox = (label: string) => ( + + ); + + const createCheckboxes = () => filterCategories.map(createCheckbox); + + return ( + + Category: + {createCheckboxes()} + + ); +}; + +export default Filter; diff --git a/typescript/food-ordering/webui/src/components/Filter/index.ts b/typescript/food-ordering/webui/src/components/Filter/index.ts new file mode 100644 index 00000000..74949696 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Filter/index.ts @@ -0,0 +1 @@ +export { default } from './Filter'; diff --git a/typescript/food-ordering/webui/src/components/Filter/style.ts b/typescript/food-ordering/webui/src/components/Filter/style.ts new file mode 100644 index 00000000..d452e9b7 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Filter/style.ts @@ -0,0 +1,81 @@ +import styled from 'styled-components/macro'; + +import CB from 'commons/Checkbox'; + +export const Container = styled.div``; + +export const Checkbox = styled(CB)` + display: inline-block; + margin-bottom: 10px; + + /* Customize the label (the container) */ + label { + display: inline-block; + position: relative; + cursor: pointer; + font-size: 22px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + width: 35px; + height: 35px; + font-size: 0.8em; + margin-bottom: 8px; + margin-right: 8px; + border-radius: 50%; + line-height: 35px; + text-align: center; + + /* On mouse-over, add a border with the primary color */ + &:hover input ~ .checkmark { + border: 1px solid ${({ theme }) => theme.colors.primary}; + } + + input:focus-visible ~ .checkmark { + box-sizing: border-box; + line-height: 30px; + border: 3px solid ${({ theme }) => theme.colors.secondary}; + } + + /* When the checkbox is checked, add the primary color to background */ + & input:checked ~ .checkmark { + background-color: ${({ theme }) => theme.colors.primary}; + color: #ececec; + } + + /* Show the checkmark when checked */ + & input:checked ~ .checkmark:after { + display: block; + } + + input { + position: absolute; + opacity: 0; + cursor: pointer; + } + + /* Create a custom checkbox */ + .checkmark { + position: absolute; + top: 0; + left: 0; + width: 35px; + height: 35px; + font-size: 0.8em; + border-radius: 50%; + box-sizing: border-box; + line-height: 35px; + text-align: center; + color: ${({ theme }) => theme.colors.primary}; + background-color: #ececec; + + border: 1px solid transparent; + } + } +`; + +export const Title = styled.h4` + margin-top: 2px; + margin-bottom: 20px; +`; diff --git a/typescript/food-ordering/webui/src/components/Loader/Loader.tsx b/typescript/food-ordering/webui/src/components/Loader/Loader.tsx new file mode 100644 index 00000000..075bd6bb --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Loader/Loader.tsx @@ -0,0 +1,12 @@ +import * as S from './style'; + +const Loader = () => ( + +
+
+
+
+ +); + +export default Loader; diff --git a/typescript/food-ordering/webui/src/components/Loader/index.ts b/typescript/food-ordering/webui/src/components/Loader/index.ts new file mode 100644 index 00000000..348c02a9 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Loader/index.ts @@ -0,0 +1 @@ +export { default } from './Loader'; diff --git a/typescript/food-ordering/webui/src/components/Loader/style.ts b/typescript/food-ordering/webui/src/components/Loader/style.ts new file mode 100644 index 00000000..dee3d8ca --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Loader/style.ts @@ -0,0 +1,46 @@ +import styled from 'styled-components/macro'; + +export const Container = styled.div` + position: fixed; + top: 50%; + left: 50%; + margin-left: -32px; + margin-top: -32px; + width: 64px; + height: 64px; + z-index: 10; + border-radius: 5px; + background-color: #000; + + div { + box-sizing: border-box; + display: block; + position: absolute; + width: 51px; + height: 51px; + margin: 6px; + border: 6px solid #fff; + border-radius: 50%; + animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; + border-color: #fff transparent transparent transparent; + &:nth-child(1) { + animation-delay: -0.45s; + } + &:nth-child(2) { + animation-delay: -0.3s; + } + &:nth-child(3) { + animation-delay: -0.15s; + } + } + + @keyframes lds-ring { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } + } +`; diff --git a/typescript/food-ordering/webui/src/components/OrderStatus/OrderStatus.tsx b/typescript/food-ordering/webui/src/components/OrderStatus/OrderStatus.tsx new file mode 100644 index 00000000..d8dfb8db --- /dev/null +++ b/typescript/food-ordering/webui/src/components/OrderStatus/OrderStatus.tsx @@ -0,0 +1,226 @@ +import * as S from './style'; +import { useUser } from '../../contexts/user-context'; +import { useOrderStatusContext } from '../../contexts/status-context/OrderStatusProvider'; +import { Done, Tobedone } from './style'; +import CartProducts from '../Cart/CartProducts'; +import { useCart } from '../../contexts/cart-context'; +import { Share } from 'react-twitter-widgets'; +import { ICartProduct } from 'models'; +import { ClockLoader } from 'react-spinners'; +import React from 'react'; + +const tweetText = (products: ICartProduct[]): string => { + const productDescriptions = products + .map((p) => `${p.description}`) + .join(' and, '); + return `I've just (virtually) ordered ${productDescriptions} with`; +}; + +const Tweet = () => { + const { products } = useCart(); + + const text = tweetText(products); + + return ( + +

Share your order - feed the Twitter feed!

+ +
+ ); +}; + +const TBD = ({ text }: { text: string }) => { + return ( + + {text} + + ); +}; + + + +enum OrderState { + NEW = 0, + CREATED = 1, + SCHEDULED = 2, + IN_PREPARATION = 3, + SCHEDULED_DELIVERY = 4, + WAITING_FOR_DRIVER = 5, + IN_DELIVERY = 6, + DELIVERED = 7, +} + +// Define the possible statuses and their corresponding progress values +const STATUS_PROGRESS = new Map([ + ['NEW', OrderState.NEW], + ['CREATED', OrderState.CREATED], + ['SCHEDULED', OrderState.SCHEDULED], + ['IN_PREPARATION', OrderState.IN_PREPARATION], + ['SCHEDULING_DELIVERY', OrderState.SCHEDULED_DELIVERY], + ['WAITING_FOR_DRIVER', OrderState.WAITING_FOR_DRIVER], + ['IN_DELIVERY', OrderState.IN_DELIVERY], + ['DELIVERED', OrderState.DELIVERED], + ]); + +const OrderStateContext = React.createContext(OrderState.NEW); + +const OrderItem2 = ({ + me, + before, + during, + after, +}: { + me: OrderState; + before: JSX.Element; + during?: JSX.Element; + after: JSX.Element; +}) => { + const status = React.useContext(OrderStateContext); + + if (status < me) { + return before; + } + if (status === me) { + return during ?? after; + } + return after; +}; + +const OrderItem = ({ + me, + txt, + done, +}: { + me: OrderState; + txt: string; + done: string; +}) => { + const status = React.useContext(OrderStateContext); + if (status < me) { + return ; + } + return {done} {txt}; +}; + +export const OrderStatus = () => { + const { orderStatus, setOrderStatus } = useOrderStatusContext(); + const { + products, + openCart, + closeCart, + clearCart, + details, + updateCartDetails, + } = useCart(); + const { user, fetchUser, isLoadingUser } = useUser(); + + + const status = orderStatus?.status || 'NEW'; + + const currentProgress: OrderState = + STATUS_PROGRESS.get(status) ?? OrderState.NEW; + + const etaSeconds = orderStatus ? Math.round(orderStatus.eta / 1000) : 0; + + return ( + +
+

Purchase overview

+
+ +
+

+ Order ID: {user?.user_id} +

+
+
+

+ Restaurant: {details.restaurant} +

+
+
+

+ Desired delivery time:{' '} + + {details.delivery_delay_description}: {details.delivery_time} + +

+
+ +
+

Status:

+
+
+ +
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + } + after={🪪 Waiting for driver } + during={🔜 Waiting for a driver. ETA {etaSeconds} seconds} + /> +
  • +
  • + } + after={✅ In delivery } + during={🚴 Delivery. ETA {etaSeconds} seconds} + /> +
  • +
  • + +
  • +
+
+
+
{currentProgress >= OrderState.DELIVERED && }
+
+

Your Order:

+
+ +
+ ); +}; + +export default OrderStatus; diff --git a/typescript/food-ordering/webui/src/components/OrderStatus/index.tsx b/typescript/food-ordering/webui/src/components/OrderStatus/index.tsx new file mode 100644 index 00000000..90002d55 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/OrderStatus/index.tsx @@ -0,0 +1 @@ +export { default } from './OrderStatus'; diff --git a/typescript/food-ordering/webui/src/components/OrderStatus/style.ts b/typescript/food-ordering/webui/src/components/OrderStatus/style.ts new file mode 100644 index 00000000..29607a7d --- /dev/null +++ b/typescript/food-ordering/webui/src/components/OrderStatus/style.ts @@ -0,0 +1,72 @@ +import styled from 'styled-components/macro'; + +export const Container = styled.div` + @media only screen and (min-width: ${({ theme: { breakpoints } }) => + breakpoints.tablet}) { + } + + @media only screen and (min-width: ${({ theme: { breakpoints } }) => + breakpoints.desktop}) { + } + + @media (min-width: 1025px) { + .h-custom { + height: 100vh !important; + } + } + + .horizontal-timeline .items { + border-top: 2px solid #ddd; + } + + .horizontal-timeline .items .items-list { + position: relative; + margin-right: 0; + } + + .horizontal-timeline .items .items-list:before { + content: ''; + position: absolute; + height: 8px; + width: 8px; + border-radius: 50%; + background-color: #ddd; + top: 0; + margin-top: -5px; + } + + .horizontal-timeline .items .items-list { + padding-top: 15px; + } +`; + +export const SimpleContainer = styled.div` + @media only screen and (min-width: ${({ theme: { breakpoints } }) => + breakpoints.tablet}) { + } + + @media only screen and (min-width: ${({ theme: { breakpoints } }) => + breakpoints.desktop}) { + } + + @media (min-width: 1025px) { + .h-custom { + height: 100vh !important; + } + } + + display: inline-block; + color: #c0c0c0; +`; + +export const Tobedone = styled.p` + color: #c0c0c0; +`; + +export const Done = styled.span` + color: #42b015; +`; + +export const Bold = styled.p` + font-weight: 600; +`; diff --git a/typescript/food-ordering/webui/src/components/Products/Product/Product.tsx b/typescript/food-ordering/webui/src/components/Products/Product/Product.tsx new file mode 100644 index 00000000..a19e68ae --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Products/Product/Product.tsx @@ -0,0 +1,100 @@ +import { KeyboardEvent } from 'react'; + +import formatPrice from 'utils/formatPrice'; +import { IProduct } from 'models'; + +import { useCart } from 'contexts/cart-context'; + +import * as S from './style'; + +interface IProps { + product: IProduct; +} + +export const Product = ({ product }: IProps) => { + const { openCart, addProduct } = useCart(); + const { + sku, + title, + price, + installments, + currencyId, + currencyFormat, + isFreeShipping, + } = product; + + const formattedPrice = formatPrice(price, currencyId); + let productInstallment; + + if (installments) { + const installmentPrice = price / installments; + + productInstallment = ( + + or {installments} x + + {currencyFormat} + {formatPrice(installmentPrice, currencyId)} + + + ); + } + + const handleAddProduct = () => { + addProduct({ ...product, quantity: 1 }); + openCart(); + }; + + const handleAddProductWhenEnter = (event: KeyboardEvent) => { + if (event.key === 'Enter' || event.code === 'Space') { + addProduct({ ...product, quantity: 1 }); + openCart(); + } + }; + + return ( + + {isFreeShipping && Free shipping} + + {title} + + + {currencyFormat} + {formattedPrice.substring(0, formattedPrice.length - 3)} + {formattedPrice.substring(formattedPrice.length - 3)} + + {productInstallment} + + + Add to cart + + + ); +}; + +export const MiniProduct = ({ product }: IProps) => { + const { openCart, addProduct } = useCart(); + const { + sku, + title, + price, + installments, + currencyId, + currencyFormat, + isFreeShipping, + } = product; + + const handleAddProduct = () => { + addProduct({ ...product, quantity: 1 }); + openCart(); + }; + + const handleAddProductWhenEnter = (event: KeyboardEvent) => { + if (event.key === 'Enter' || event.code === 'Space') { + addProduct({ ...product, quantity: 1 }); + openCart(); + } + }; + + return
  • {title}
  • ; +}; diff --git a/typescript/food-ordering/webui/src/components/Products/Product/index.tsx b/typescript/food-ordering/webui/src/components/Products/Product/index.tsx new file mode 100644 index 00000000..f053e5cc --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Products/Product/index.tsx @@ -0,0 +1 @@ +export { Product, MiniProduct } from './Product'; diff --git a/typescript/food-ordering/webui/src/components/Products/Product/style.ts b/typescript/food-ordering/webui/src/components/Products/Product/style.ts new file mode 100644 index 00000000..d54b0e2b --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Products/Product/style.ts @@ -0,0 +1,125 @@ +import styled from 'styled-components/macro'; + +export const BuyButton = styled.button` + background-color: ${({ theme }) => theme.colors.primary}; + color: #fff; + padding: 15px 0; + margin-top: 10px; + cursor: pointer; + width: 100%; + border: 0; + + transition: background-color 0.2s; + + &:focus-visible { + outline: 3px solid ${({ theme }) => theme.colors.secondary}; + } +`; + +interface IImage { + alt: string; +} +export const Image = styled.div``; + +interface IContainer { + sku: number | string; +} +export const Container = styled.div` + position: relative; + text-align: center; + box-sizing: border-box; + padding: 10px; + margin-bottom: 30px; + cursor: default; + outline: none; + + &:focus-visible { + outline: 3px solid ${({ theme }) => theme.colors.secondary}; + } + + ${Image} { + width: 100%; + height: 270px; + position: relative; + background-image: ${({ sku }) => + `url(${require(`static/products/${sku}-1-product.webp`)})`}; + background-repeat: no-repeat; + background-size: cover; + background-position: center; + + ::before { + content: ''; + display: block; + position: absolute; + background: #eee; + width: 100%; + height: 100%; + z-index: -1; + } + + @media only screen and (min-width: ${({ theme: { breakpoints } }) => + breakpoints.tablet}) { + height: 320px; + } + } + + &:hover { + + ${BuyButton} { + background-color: ${({ theme }) => theme.colors.secondary}; + } + } +`; + +export const Stopper = styled.div` + position: absolute; + color: #ececec; + top: 10px; + right: 10px; + padding: 5px; + font-size: 0.6em; + background-color: ${({ theme }) => theme.colors.primary}; + cursor: default; + z-index: 1; +`; + +export const Title = styled.p` + position: relative; + padding: 0 20px; + height: 45px; + + &::before { + content: ''; + width: 20px; + height: 2px; + background-color: ${({ theme }) => theme.colors.secondary}; + position: absolute; + bottom: 0; + left: 50%; + margin-left: -10px; + } +`; + +export const Price = styled.div` + height: 60px; + + .val { + b { + font-size: 1.5em; + margin-left: 5px; + } + } +`; + +export const Val = styled.p` + margin: 0; + b { + font-size: 1.5em; + margin-left: 5px; + } +`; + +export const Installment = styled.p` + margin: 0; + color: #9c9b9b; +`; diff --git a/typescript/food-ordering/webui/src/components/Products/Products.tsx b/typescript/food-ordering/webui/src/components/Products/Products.tsx new file mode 100644 index 00000000..e00e4e84 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Products/Products.tsx @@ -0,0 +1,30 @@ +import { IProduct } from 'models'; +import { Product, MiniProduct } from './Product'; + +import * as S from './style'; + +interface IProps { + products: IProduct[]; +} + +export const Products = ({ products }: IProps) => { + return ( + + {products?.map((p) => ( + + ))} + + ); +}; + +export const MiniProducts = ({ products }: IProps) => { + return ( + +
      + {products?.map((p) => ( + + ))} +
    +
    + ); +}; diff --git a/typescript/food-ordering/webui/src/components/Products/index.tsx b/typescript/food-ordering/webui/src/components/Products/index.tsx new file mode 100644 index 00000000..7dcc59e1 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Products/index.tsx @@ -0,0 +1 @@ +export { Products, MiniProducts } from './Products'; diff --git a/typescript/food-ordering/webui/src/components/Products/style.ts b/typescript/food-ordering/webui/src/components/Products/style.ts new file mode 100644 index 00000000..f40795e7 --- /dev/null +++ b/typescript/food-ordering/webui/src/components/Products/style.ts @@ -0,0 +1,16 @@ +import styled from 'styled-components/macro'; + +export const Container = styled.div` + display: grid; + grid-template-columns: repeat(2, 1fr); + + @media only screen and (min-width: ${({ theme: { breakpoints } }) => + breakpoints.tablet}) { + grid-template-columns: repeat(3, 1fr); + } + + @media only screen and (min-width: ${({ theme: { breakpoints } }) => + breakpoints.desktop}) { + grid-template-columns: repeat(4, 1fr); + } +`; diff --git a/typescript/food-ordering/webui/src/contexts/cart-context/CartContextProvider.tsx b/typescript/food-ordering/webui/src/contexts/cart-context/CartContextProvider.tsx new file mode 100644 index 00000000..0ffcd20a --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/cart-context/CartContextProvider.tsx @@ -0,0 +1,63 @@ +import { createContext, useContext, FC, useState } from 'react'; +import { ICartDetails, ICartProduct, ICartTotal } from 'models'; + +export interface ICartContext { + isOpen: boolean; + setIsOpen(state: boolean): void; + products: ICartProduct[]; + setProducts(products: ICartProduct[]): void; + total: ICartTotal; + setTotal(products: any): void; + details: ICartDetails; + setDetails(details: ICartDetails): void; +} + +const CartContext = createContext(undefined); +const useCartContext = (): ICartContext => { + const context = useContext(CartContext); + + if (!context) { + throw new Error('useCartContext must be used within a CartProvider'); + } + + return context; +}; + +const totalInitialValues = { + productQuantity: 0, + installments: 0, + totalPrice: 0, + currencyId: 'USD', + currencyFormat: '$', +}; + +const detailsInitialValues = { + delivery_time: new Date(Date.now()).toString(), + delivery_delay: 0, + delivery_delay_description: 'Right now', + restaurant_id: 'bites_n_bytes', + restaurant: "Bites 'n Bytes", + checked_out: false, +}; + +const CartProvider: FC = (props) => { + const [isOpen, setIsOpen] = useState(false); + const [products, setProducts] = useState([]); + const [total, setTotal] = useState(totalInitialValues); + const [details, setDetails] = useState(detailsInitialValues); + + const CartContextValue: ICartContext = { + isOpen, + setIsOpen, + products, + setProducts, + total, + setTotal, + details, + setDetails, + }; + + return ; +}; + +export { CartProvider, useCartContext }; diff --git a/typescript/food-ordering/webui/src/contexts/cart-context/index.ts b/typescript/food-ordering/webui/src/contexts/cart-context/index.ts new file mode 100644 index 00000000..b7c9cf12 --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/cart-context/index.ts @@ -0,0 +1,2 @@ +export { CartProvider } from './CartContextProvider'; +export { default as useCart } from './useCart'; diff --git a/typescript/food-ordering/webui/src/contexts/cart-context/useCart.ts b/typescript/food-ordering/webui/src/contexts/cart-context/useCart.ts new file mode 100644 index 00000000..acf6f4d5 --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/cart-context/useCart.ts @@ -0,0 +1,39 @@ +import { useCartContext } from './CartContextProvider'; +import useCartProducts from './useCartProducts'; +import useCartTotal from './useCartTotal'; +import useCartDetails from './useCartDetails'; + +const useCart = () => { + const { isOpen, setIsOpen } = useCartContext(); + const { + products, + addProduct, + removeProduct, + increaseProductQuantity, + decreaseProductQuantity, + clearCart, + } = useCartProducts(); + const { total, updateCartTotal } = useCartTotal(); + const { details, updateCartDetails } = useCartDetails(); + + const openCart = () => setIsOpen(true); + const closeCart = () => setIsOpen(false); + + return { + isOpen, + openCart, + closeCart, + products, + addProduct, + removeProduct, + increaseProductQuantity, + decreaseProductQuantity, + total, + updateCartTotal, + clearCart, + details, + updateCartDetails, + }; +}; + +export default useCart; diff --git a/typescript/food-ordering/webui/src/contexts/cart-context/useCartDetails.ts b/typescript/food-ordering/webui/src/contexts/cart-context/useCartDetails.ts new file mode 100644 index 00000000..ad872e04 --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/cart-context/useCartDetails.ts @@ -0,0 +1,17 @@ +import { useCartContext } from './CartContextProvider'; +import { ICartDetails } from 'models'; + +const useCartDetails = () => { + const { details, setDetails } = useCartContext(); + + const updateCartDetails = (details: ICartDetails) => { + setDetails(details); + }; + + return { + details, + updateCartDetails, + }; +}; + +export default useCartDetails; diff --git a/typescript/food-ordering/webui/src/contexts/cart-context/useCartProducts.ts b/typescript/food-ordering/webui/src/contexts/cart-context/useCartProducts.ts new file mode 100644 index 00000000..5c39138f --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/cart-context/useCartProducts.ts @@ -0,0 +1,100 @@ +import { useCartContext } from './CartContextProvider'; +import useCartTotal from './useCartTotal'; +import { ICartProduct } from 'models'; +import { useUser } from 'contexts/user-context'; + +const useCartProducts = () => { + const { products, setProducts } = useCartContext(); + const { updateCartTotal } = useCartTotal(); + const { user } = useUser(); + + const updateQuantitySafely = ( + currentProduct: ICartProduct, + targetProduct: ICartProduct, + quantity: number + ): ICartProduct => { + if (currentProduct.id === targetProduct.id) { + return Object.assign({ + ...currentProduct, + quantity: currentProduct.quantity + quantity, + }); + } else { + return currentProduct; + } + }; + + const addProduct = (newProduct: ICartProduct) => { + let updatedProducts; + const isProductAlreadyInCart = products.some( + (product: ICartProduct) => newProduct.id === product.id + ); + + if (isProductAlreadyInCart) { + // TODO: make this a noop, or maybe a popup. + //updatedProducts = products.map((product: ICartProduct) => { + // return updateQuantitySafely(product, newProduct, newProduct.quantity); + //}); + alert(`${newProduct.description} was already added`); + updatedProducts = products; + } else { + // const req = { "shopping_cart_id" : user!.shopping_cart_id, "product_id" : ""+newProduct.id}; + + updatedProducts = [...products, newProduct]; + setProducts(updatedProducts); + updateCartTotal(updatedProducts); + + // sendRequestToRestate('ShoppingCartService', 'AddProduct', req).then((res: any) => { + // if (res.success) { + // updatedProducts = [...products, newProduct]; + // setProducts(updatedProducts); + // updateCartTotal(updatedProducts); + // } else { + // alert(`Unable to add the product to the shopping cart.`); + // } + // }); + } + }; + + const removeProduct = (productToRemove: ICartProduct) => { + const updatedProducts = products.filter( + (product: ICartProduct) => product.id !== productToRemove.id + ); + + setProducts(updatedProducts); + updateCartTotal(updatedProducts); + }; + + const increaseProductQuantity = (productToIncrease: ICartProduct) => { + const updatedProducts = products.map((product: ICartProduct) => { + return updateQuantitySafely(product, productToIncrease, +1); + }); + + setProducts(updatedProducts); + updateCartTotal(updatedProducts); + }; + + const decreaseProductQuantity = (productToDecrease: ICartProduct) => { + const updatedProducts = products.map((product: ICartProduct) => { + return updateQuantitySafely(product, productToDecrease, -1); + }); + + setProducts(updatedProducts); + updateCartTotal(updatedProducts); + }; + + const clearCart = () => { + setProducts([]); + updateCartTotal([]); + }; + + return { + products, + addProduct, + removeProduct, + increaseProductQuantity, + decreaseProductQuantity, + clearCart, + }; +}; + +export default useCartProducts; diff --git a/typescript/food-ordering/webui/src/contexts/cart-context/useCartTotal.ts b/typescript/food-ordering/webui/src/contexts/cart-context/useCartTotal.ts new file mode 100644 index 00000000..1ecd104d --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/cart-context/useCartTotal.ts @@ -0,0 +1,47 @@ +import { useCartContext } from './CartContextProvider'; +import { ICartProduct } from 'models'; + +const useCartTotal = () => { + const { total, setTotal } = useCartContext(); + + const updateCartTotal = (products: ICartProduct[]) => { + const productQuantity = products.reduce( + (sum: number, product: ICartProduct) => { + sum += product.quantity; + return sum; + }, + 0 + ); + + const totalPrice = products.reduce((sum: number, product: ICartProduct) => { + sum += product.price * product.quantity; + return sum; + }, 0); + + const installments = products.reduce( + (greater: number, product: ICartProduct) => { + greater = + product.installments > greater ? product.installments : greater; + return greater; + }, + 0 + ); + + const total = { + productQuantity, + installments, + totalPrice, + currencyId: 'USD', + currencyFormat: '$', + }; + + setTotal(total); + }; + + return { + total, + updateCartTotal, + }; +}; + +export default useCartTotal; diff --git a/typescript/food-ordering/webui/src/contexts/products-context/ProductsContextProvider.tsx b/typescript/food-ordering/webui/src/contexts/products-context/ProductsContextProvider.tsx new file mode 100644 index 00000000..86049561 --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/products-context/ProductsContextProvider.tsx @@ -0,0 +1,44 @@ +import { createContext, useContext, FC, useState } from 'react'; + +import { IProduct } from 'models'; + +export interface IProductsContext { + isFetching: boolean; + setIsFetching(state: boolean): void; + products: IProduct[]; + setProducts(products: IProduct[]): void; + filters: string[]; + setFilters(filters: string[]): void; +} + +const ProductsContext = createContext(undefined); +const useProductsContext = (): IProductsContext => { + const context = useContext(ProductsContext); + + if (!context) { + throw new Error( + 'useProductsContext must be used within a ProductsProvider' + ); + } + + return context; +}; + +const ProductsProvider: FC = (props) => { + const [isFetching, setIsFetching] = useState(false); + const [products, setProducts] = useState([]); + const [filters, setFilters] = useState([]); + + const ProductContextValue: IProductsContext = { + isFetching, + setIsFetching, + products, + setProducts, + filters, + setFilters, + }; + + return ; +}; + +export { ProductsProvider, useProductsContext }; diff --git a/typescript/food-ordering/webui/src/contexts/products-context/index.ts b/typescript/food-ordering/webui/src/contexts/products-context/index.ts new file mode 100644 index 00000000..5d899e77 --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/products-context/index.ts @@ -0,0 +1,2 @@ +export { ProductsProvider } from './ProductsContextProvider'; +export { default as useProducts } from './useProducts'; diff --git a/typescript/food-ordering/webui/src/contexts/products-context/useProducts.tsx b/typescript/food-ordering/webui/src/contexts/products-context/useProducts.tsx new file mode 100644 index 00000000..6a88662c --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/products-context/useProducts.tsx @@ -0,0 +1,56 @@ +import { useCallback } from 'react'; + +import { useProductsContext } from './ProductsContextProvider'; +import { IProduct } from 'models'; +import { getProducts } from 'services/products'; + +const useProducts = () => { + const { + isFetching, + setIsFetching, + products, + setProducts, + filters, + setFilters, + } = useProductsContext(); + + const fetchProducts = useCallback(() => { + setIsFetching(true); + getProducts().then((products: IProduct[]) => { + setIsFetching(false); + setProducts(products); + }); + }, [setIsFetching, setProducts]); + + const filterProducts = (filters: string[]) => { + setIsFetching(true); + + getProducts().then((products: IProduct[]) => { + setIsFetching(false); + let filteredProducts; + + if (filters && filters.length > 0) { + filteredProducts = products.filter((p: IProduct) => + filters.find((filter: string) => + p.availableSizes.find((size: string) => size === filter) + ) + ); + } else { + filteredProducts = products; + } + + setFilters(filters); + setProducts(filteredProducts); + }); + }; + + return { + isFetching, + fetchProducts, + products, + filterProducts, + filters, + }; +}; + +export default useProducts; diff --git a/typescript/food-ordering/webui/src/contexts/status-context/OrderStatusProvider.tsx b/typescript/food-ordering/webui/src/contexts/status-context/OrderStatusProvider.tsx new file mode 100644 index 00000000..816ad0ad --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/status-context/OrderStatusProvider.tsx @@ -0,0 +1,41 @@ +import { createContext, useContext, FC, useState } from 'react'; +import { IOrderStatus } from 'models'; + +export interface IOrderStatusContext { + orderStatus?: IOrderStatus; + setOrderStatus(orderStatus: IOrderStatus): void; +} + +const OrderStatusContext = createContext( + undefined +); + +const useOrderStatusContext = (): IOrderStatusContext => { + const context = useContext(OrderStatusContext); + + if (!context) { + throw new Error( + 'no UserOrderContext. You might be calling from the wrong place. ' + ); + } + + return context; +}; + +const OrderStatusProvider: FC = (props) => { + const [orderStatus, setOrderStatus] = useState({ + eta: 0, + status: 'NEW', + }); + + const OrderStatusContextValue: IOrderStatusContext = { + orderStatus, + setOrderStatus, + }; + + return ( + + ); +}; + +export { OrderStatusProvider, useOrderStatusContext }; diff --git a/typescript/food-ordering/webui/src/contexts/status-context/index.ts b/typescript/food-ordering/webui/src/contexts/status-context/index.ts new file mode 100644 index 00000000..fda1e385 --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/status-context/index.ts @@ -0,0 +1,2 @@ +export { OrderStatusProvider } from './OrderStatusProvider'; +export { default as useOrderStatus } from './useOrderStatus'; diff --git a/typescript/food-ordering/webui/src/contexts/status-context/useOrderStatus.tsx b/typescript/food-ordering/webui/src/contexts/status-context/useOrderStatus.tsx new file mode 100644 index 00000000..9df85995 --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/status-context/useOrderStatus.tsx @@ -0,0 +1,31 @@ +import { useCallback } from 'react'; +import { useOrderStatusContext } from './OrderStatusProvider'; +import { sendRequestToRestate } from '../../services/sendToRestate'; +import { useUserContext } from '../user-context/UserContextProvider'; + +const useOrderStatus = () => { + const { orderStatus, setOrderStatus } = useOrderStatusContext(); + const { user } = useUserContext(); + + const fetchOrderStatus = useCallback(() => { + if (user) { + console.debug(`Found user ${user}`); + sendRequestToRestate('orderStatus', 'get', { + key: user!.shopping_cart_id, + }).then((response) => { + setOrderStatus(response.response); + }); + } else { + console.debug("Didn't find user"); + setOrderStatus({ eta: 0, status: 'NEW' }); + } + }, []); + + return { + orderStatus, + fetchOrderStatus, + setOrderStatus, + }; +}; + +export default useOrderStatus; diff --git a/typescript/food-ordering/webui/src/contexts/user-context/UserContextProvider.tsx b/typescript/food-ordering/webui/src/contexts/user-context/UserContextProvider.tsx new file mode 100644 index 00000000..0a21c045 --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/user-context/UserContextProvider.tsx @@ -0,0 +1,37 @@ +import { createContext, useContext, FC, useState } from 'react'; + +import { IUser } from 'models'; + +export interface IUserContext { + user?: IUser; + setUser(user: IUser): void; + isLoadingUser: boolean; + setLoadingUser(loading: boolean): void; +} + +const UserContext = createContext(undefined); +const useUserContext = (): IUserContext => { + const context = useContext(UserContext); + + if (!context) { + throw new Error('useUserContext must be used within a ProductsProvider'); + } + + return context; +}; + +const UserProvider: FC = (props) => { + const [user, setUser] = useState(undefined); + const [isLoadingUser, setLoadingUser] = useState(false); + + const UserContextValue: IUserContext = { + user, + setUser, + isLoadingUser, + setLoadingUser, + }; + + return ; +}; + +export { UserProvider, useUserContext }; diff --git a/typescript/food-ordering/webui/src/contexts/user-context/index.ts b/typescript/food-ordering/webui/src/contexts/user-context/index.ts new file mode 100644 index 00000000..ea527531 --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/user-context/index.ts @@ -0,0 +1,2 @@ +export { UserProvider } from './UserContextProvider'; +export { default as useUser } from './useUser'; diff --git a/typescript/food-ordering/webui/src/contexts/user-context/useUser.tsx b/typescript/food-ordering/webui/src/contexts/user-context/useUser.tsx new file mode 100644 index 00000000..8e352acc --- /dev/null +++ b/typescript/food-ordering/webui/src/contexts/user-context/useUser.tsx @@ -0,0 +1,68 @@ +import { useCallback } from 'react'; + +import { useUserContext } from './UserContextProvider'; +import { IUser } from 'models'; +import { whoami } from 'services/whoami'; +import { v4 as uuidv4 } from 'uuid'; + +const useUser = () => { + const { user, setUser, isLoadingUser, setLoadingUser } = useUserContext(); + + const fetchUser = useCallback(() => { + setLoadingUser(true); + whoami().then((u: IUser) => { + setLoadingUser(false); + setUser(u); + }); + }, []); + + const setNewShoppingCartId = () => { + setLoadingUser(true); + + (async () => { + // + // fetch the updated user profile, with the recent purchase history. + // + // const { + // userId, + // userFullName, + // paymentMethodIdentifier, + // shippingAddress, + // emailAddress, + // purchaseHistory + // } = await sendRequestToRestate('UserProfileService', 'GetUserProfile', { user_id: user!.user_id }); + + // + // register a new shopping cart with the backend + // + const newShoppingCartId = uuidv4().replaceAll('-', ''); + + // await sendRequestToRestate('ShoppingCartService', 'CreateCart', {shopping_cart_id: newShoppingCartId, user_id: userId}); + + // + // set the new user + // + // const newUser: IUser = { + // user_id : userId, + // user_full_name: userFullName, + // payment_method_identifier: paymentMethodIdentifier, + // shipping_address: shippingAddress, + // email_address: emailAddress, + // purchase_history: purchaseHistory, + // shopping_cart_id: newShoppingCartId + // }; + + setLoadingUser(false); + // setUser(newUser); + })(); + }; + + return { + user, + fetchUser, + isLoadingUser, + setNewShoppingCartId, + }; +}; + +export default useUser; diff --git a/typescript/food-ordering/webui/src/index.tsx b/typescript/food-ordering/webui/src/index.tsx new file mode 100644 index 00000000..dfee1390 --- /dev/null +++ b/typescript/food-ordering/webui/src/index.tsx @@ -0,0 +1,35 @@ +import { StrictMode } from 'react'; +import * as ReactDOMClient from 'react-dom/client'; + +/* Theme */ +import { ThemeProvider } from 'commons/style/styled-components'; +import { theme } from 'commons/style/theme'; +import GlobalStyle from 'commons/style/global-style'; + +/* Context Providers */ +import { UserProvider } from 'contexts/user-context'; +import { ProductsProvider } from 'contexts/products-context'; +import { CartProvider } from 'contexts/cart-context'; + +import App from 'components/App'; +import { OrderStatusProvider } from './contexts/status-context'; + +const root = document.getElementById('root')!; +const container = ReactDOMClient.createRoot(root); + +container.render( + + + + + + + + + + + + + + +); diff --git a/typescript/food-ordering/webui/src/models/index.ts b/typescript/food-ordering/webui/src/models/index.ts new file mode 100644 index 00000000..ed88705e --- /dev/null +++ b/typescript/food-ordering/webui/src/models/index.ts @@ -0,0 +1,49 @@ +export interface IProduct { + id: number; + sku: number; + title: string; + description: string; + availableSizes: string[]; + style: string; + price: number; + installments: number; + currencyId: string; + currencyFormat: string; + isFreeShipping: boolean; +} + +export interface ICartProduct extends IProduct { + quantity: number; +} + +export interface ICartTotal { + productQuantity: number; + installments: number; + totalPrice: number; + currencyId: string; + currencyFormat: string; +} + +export interface IUser { + user_id: string; + user_full_name: string; + payment_method_identifier: string; + shipping_address: string; + email_address: string; + shopping_cart_id: string; + purchase_history: string[]; +} + +export interface IOrderStatus { + eta: number; + status: string; +} + +export interface ICartDetails { + delivery_delay: number; + delivery_delay_description: string; + delivery_time: string; + restaurant_id: string; + restaurant: string; + checked_out: boolean; +} diff --git a/typescript/food-ordering/webui/src/react-app-env.d.ts b/typescript/food-ordering/webui/src/react-app-env.d.ts new file mode 100644 index 00000000..6431bc5f --- /dev/null +++ b/typescript/food-ordering/webui/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/typescript/food-ordering/webui/src/services/products.ts b/typescript/food-ordering/webui/src/services/products.ts new file mode 100644 index 00000000..9c5be293 --- /dev/null +++ b/typescript/food-ordering/webui/src/services/products.ts @@ -0,0 +1,7 @@ +import axios from 'axios'; + +export const getProducts = async () => { + let response = await axios.get('/products.json'); + const { products } = response.data.data; + return products; +}; diff --git a/typescript/food-ordering/webui/src/services/sendToRestate.ts b/typescript/food-ordering/webui/src/services/sendToRestate.ts new file mode 100644 index 00000000..e2da37ac --- /dev/null +++ b/typescript/food-ordering/webui/src/services/sendToRestate.ts @@ -0,0 +1,44 @@ +import axios from 'axios'; + +const RESTATE_HOST = + process.env.REACT_APP_RESTATE_HOST || 'http://localhost:9090'; +const KAFKA_REST_PROXY_HOST = 'http://localhost:8088'; + +const challenge = (): {challenge: string, challengeTime: string} => { + const challengeTime = new Date().getTime(); + const challenge = challengeTime ^ 7925119523126 + return {challenge: challenge.toString(), challengeTime: challengeTime.toString()} +} + +export const sendRequestToRestate = async ( + service: string, + method: string, + data: any +) => { + const c = challenge(); + + return await ( + await axios.post(`${RESTATE_HOST}/${service}/${method}`, data, { + headers: { + 'Content-Type': 'application/json', + 'X-Challenge': c.challenge, + 'X-Challenge-Time': c.challengeTime, + }, + }) + ).data; +}; + +export const publishToKafka = async (record: any) => { + return await ( + await axios.post( + `${KAFKA_REST_PROXY_HOST}/topics/orders`, + `{"records":[${record}]}`, + { + headers: { + 'Content-Type': 'application/vnd.kafka.json.v2+json', + Accept: '*/*', + }, + } + ) + ).data; +}; diff --git a/typescript/food-ordering/webui/src/services/whoami.ts b/typescript/food-ordering/webui/src/services/whoami.ts new file mode 100644 index 00000000..f25557c5 --- /dev/null +++ b/typescript/food-ordering/webui/src/services/whoami.ts @@ -0,0 +1,32 @@ +import { IUser } from 'models'; + +const { + uniqueNamesGenerator, + names, + NumberDictionary, +} = require('unique-names-generator'); +const { v4: uuidv4 } = require('uuid'); + +export const whoami = async (): Promise => { + const nums = NumberDictionary.generate({ min: 100, max: 999 }); + const id = uniqueNamesGenerator({ dictionaries: [names, nums] }); + const profile = { + user_id: id, + user_full_name: id, + payment_method_identifier: `${uuidv4()}`, + shipping_address: '21 jmp street', + email_address: `${id}@mail.com`, + }; + const uid = uuidv4().replace(/\W/g, ''); + + const iuserprofile = { + user_id: id, + user_full_name: id, + payment_method_identifier: `${uuidv4()}`, + shipping_address: '21 jmp street', + email_address: `${id}@mail.com`, + shopping_cart_id: uid, + }; + + return iuserprofile; +}; diff --git a/typescript/food-ordering/webui/src/static/cart-icon.png b/typescript/food-ordering/webui/src/static/cart-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..68eaa1ba09a5b3bb385085f8781a9083869425b8 GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-GzZ+Rj;xUkjGiz z5m^kh={g8AI%&+V01C2~c>21sKjP*Q5Mon*|3Zv`fzip+#WBR=_|?f9y_g+ET;J#T zBr0Z1JmS&0QQkCDNJ6DA{=9Db&hF3Q;SBmmJ;9+>?d9>4j!y{WyZo&OS z%}bi*sRViPUrn-Owl29jP34xcXSCnD!$^q-IBbi8+%>V};yWm^5va>|Vqqb2hf z``o*C@8Q(+Rf?a=rAjnz)$MpVBQoLSCH>123Rd1=s5aU8R4)1D^Op}kxt(Myht753BO8vhEGx#ces;y(ZbShd78q9i4;B-JXpC>2OC7#SE^=o%X88XAQdnpqiI zSQ(gU8yH#{7`Ue0H$>5po1c=IR*74KiFJA}P=h4MhT#0PlJdl&REF~Ma=pyF?Be9a af>gcyqV(DCY@~pS7(8A5T-G@yGywpF^Xqf~ literal 0 HcmV?d00001 diff --git a/typescript/food-ordering/webui/src/static/delete-icon.png b/typescript/food-ordering/webui/src/static/delete-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8072d49afc3b4a876263ef3a1cc95587774343 GIT binary patch literal 1209 zcmeAS@N?(olHy`uVBq!ia0vp^vOvto!3HERUlg|jQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07??9MLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}t-3#_`hBq$Z(46Le)Ln;eW^@CE2 z^Gl18f$@>14ATq@JNy=b6armi~*` z%}orT`#p}!m{+`3tW-Ak*Hs~dTXSZVH>`X;VRaOf+ic;_uh`zFO=>Xw6mj^XkC1`e zyo*zW3s^$*cP*RKpuC{!;(IlwaEFKn=Lb73bNyjhWw>*@qzqGf25VaV`J>!VMFYMz zmaBfKo|+wg{PsVKdt$QrEKgG2oOOPb@}|y1QegE?R)N))C+fP7ZcKl8z|o>WgwKv` zXNO~%p@$<+kzn(iqzP`pT1Dl3&a-9(P2629GcS8T6A#1E)0{Q&9i>k|g^8!DpUXO@ GgeCxSWRN%j literal 0 HcmV?d00001 diff --git a/typescript/food-ordering/webui/src/static/json/products.json b/typescript/food-ordering/webui/src/static/json/products.json new file mode 100644 index 00000000..48ffd32d --- /dev/null +++ b/typescript/food-ordering/webui/src/static/json/products.json @@ -0,0 +1,58 @@ +{ + "data": { + "products": [ + { + "availableSizes": ["Pizza"], + "currencyFormat": "$", + "currencyId": "USD", + "description": "Pepperoni pizza", + "id": 1000, + "installments": 0, + "isFreeShipping": true, + "price": 10.9, + "sku": 1000, + "style": "Pepperoni pizza", + "title": "Pepperoni pizza" + }, + { + "availableSizes": ["Sushi"], + "currencyFormat": "$", + "currencyId": "USD", + "description": "Sushi box", + "id": 1001, + "installments": 0, + "isFreeShipping": true, + "price": 10.9, + "sku": 1001, + "style": "Sushi box", + "title": "Sushi box" + }, + { + "availableSizes": ["Burger"], + "currencyFormat": "$", + "currencyId": "USD", + "description": "Cheese burger", + "id": 1002, + "installments": 0, + "isFreeShipping": true, + "price": 10.9, + "sku": 1002, + "style": "Cheese burger", + "title": "Cheese burger" + }, + { + "availableSizes": ["Snacks"], + "currencyFormat": "$", + "currencyId": "USD", + "description": "Chicken wings", + "id": 1003, + "installments": 0, + "isFreeShipping": true, + "price": 10.9, + "sku": 1003, + "style": "Chicken wings", + "title": "Chicken wings" + } + ] + } +} diff --git a/typescript/food-ordering/webui/src/static/products/1000-1-product.webp b/typescript/food-ordering/webui/src/static/products/1000-1-product.webp new file mode 100644 index 0000000000000000000000000000000000000000..2042c54c079c7e2a4217e64ec1e49fd9ba34599f GIT binary patch literal 23710 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 literal 0 HcmV?d00001 diff --git a/typescript/food-ordering/webui/src/static/products/1001-1-product.webp b/typescript/food-ordering/webui/src/static/products/1001-1-product.webp new file mode 100644 index 0000000000000000000000000000000000000000..a2cdac4fd19d7e94d06132c2b1266f97bd0d0d73 GIT binary patch literal 19224 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 literal 0 HcmV?d00001 diff --git a/typescript/food-ordering/webui/src/static/products/1002-1-product.webp b/typescript/food-ordering/webui/src/static/products/1002-1-product.webp new file mode 100644 index 0000000000000000000000000000000000000000..fd765a52e6ca30857e9f44cf49212ad09c20b02b GIT binary patch literal 15206 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 MMr&T { + switch (currencyId) { + case 'BRL': + return price.toFixed(2).replace('.', ','); + default: + return price.toFixed(2); + } +}; + +export default formatPrice; diff --git a/typescript/food-ordering/webui/tsconfig.json b/typescript/food-ordering/webui/tsconfig.json new file mode 100644 index 00000000..545c6550 --- /dev/null +++ b/typescript/food-ordering/webui/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "baseUrl": "src", + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"] +}